Development of a mobile payment service with focus on evaluating API recording for automated mocking

Überblick

Problemdarstellung

Die Softgames GmbH entwickelt und veröffentlicht mobile Spiele, die auf HTML 5 basieren. Diese Spiele folgen dem Free-to-play-Modell und bieten dem Spieler die Möglichkeit, durch den Kauf von virtuellen Gegenständen, Vorteile im Spiel zu erwerben. Derzeit sind einige Zahlungsanbieter (Paypal, Google Wallet, Mobile) fest im Hauptsystem integriert. Die Funktionalitäten des Hauptsystems sind derzeit unzureichend durch Tests abgedeckt und dokumentiert.

Dies erschwert auf der einen Seite das Einarbeiten von neuen Entwicklern in das System, da das Aufsetzen einer lokalen Entwicklungsumgebung und die Einarbeitung sehr langwierige Prozesse sind.

Auf der anderen Seite macht es die Integration von neuen Features wie A/B Testing oder verbessertem Tracking zur Optimierung der Prozesse sehr kompliziert.

Ziel

Meine Bachelorarbeit hat das Ziel, den bisherigen Teil der Software, welcher Zahlungen abwickelt, als eigenständigen Service neu zu entwickeln und die oben genannten Probleme zu beseitigen. Zusätzlich soll dieser Service später als eigenständiges Produkt vermarktet werden können, da nach längerer Recherche kein Anbieter gefunden wurde, der Zahlungen über verschiedene Anbieter in diversen Ländern unter einer einheitlichen Schnittstelle im mobilen Bereich anbietet.

Umsetzung

Der Bezahlservice wird auf Ruby on Rails basieren und unter dem Verfahren der testgetriebenen Entwicklung (auch test-driven-development) entwickelt. Da dieser Service viele externe Abhängigkeiten hat (die diversen Paymentanbieter), sollen Tests gegen diese externen API mittels sogenannten API-Recordern aufgezeichnet werden und nur in spezifizierten Abständen oder bei Bedarf automatisch aktualisiert werden. Dabei möchte ich evaluieren, welche Möglichkeiten es dazu im Rubyumfeld bisher gibt und diese vergleichen.

Tests & Qualität

Nach der Methode der testgetriebenen Entwicklung werden Tests vor der eigentlichen Implementierung entwickelt und von einem CI-System bei jedem Commit automatisch ausgeführt. Zusätzlich wird bei jedem Commit der Code statisch analysiert um im Vorfeld zirkuläre Abhängigkeiten, zu komplexe Methoden und Codewiederholungen zu erkennen.

Arbeitsweise

Die Softgames GmbH arbeitet nach einer angepassten Scrum Methode. Die Entwicklung des Paymentservice erfolgt dabei aber weitestgehend unabhängig von den anderen Arbeiten der Firma.

Durchführung

  • Anforderungsanalyse mit den Mitarbeitern der Firma
  • Aufsetzen einer Buildumgebung, welche möglichst alle Schritte automatisiert (Durchführung der Tests, Codeanalyse, Deployment von Stagingsystemen) und bei Fehlern Warnungen verschickt
  • Konzeptionierung des Services
  • Implementierung des Services
  • Integration des Services in das bestehende System

Zeitplan

Schritt Status ZeitraumSorted ascending Beschreibung
2 choice-yes Anfang - Mitte Dezember Testintegration von Google Wallet und Forumo (Bezahlanbieter)
6   Januar Zusammenfassung und Aufbereitung der Ergebnisse
7   Januar Liveschaltung in weiteren Ländern / von weiteren Anbietern nach bedarf
3 choice-yes Mitte Dezember Interne Präsentation der Ergebnisse
4 choice-yes Mitte Dezember (ETA 14.12.) Integration von Index Corp. (Bezahlanbieter) und Livetest in Thailand
5 choice-yes Mitte Dezember - Ende Dezember API-Recording mit PayPal (RESTähnlich) und IPX (SOAP)
1 choice-yes November Modellierung und Implementierung eines Basissystems

 
Topic revision: r6 - 19 Feb 2013, JohannesWuerbach
 
  • Printable version of this topic (p) Printable version of this topic (p)