Mobile Testing

Bei der Entwicklung von Apps, sowohl für öffentliche App Stores wie auch für Enterprise B2B App Stores, muss die Qualitätssicherung einen hohen Stellenwert einnehmen, da bei einer fehlerhaften Software sehr schnell der Ruf ruiniert (Bewertungen z.B. im Apple App Store) und interne Geschäftsprozesse zum erliegen kommen können.  Apps welche nur im Unternehmen (also B2B) zur Anwendung kommen, wurden in den letzten Jahren stetig komplexer. Waren es zuerst nur einfache Anwendungen welche z.B. das Lesen von Geschäftsdokumenten ermöglichten, hat sich die Komplexität mit der gestiegenen Akzeptanz der neuen Geräteklassen (Smartphones, Tablets) in den Managementetagen erhöht. Mittlerweile werden Enterprise Apps verwendet um Produktionsprozesse zu steuern/kontrollieren, bisherige Medienbrüche werden mit Apps geschlossen welche die Daten unmittelbar an ein Backend senden und nicht wie bisher von Papier abgetippt werden müssen.

Dritthersteller entwickeln inzwischen Hardwarebasierte Aufsätze wie Kartenlesegeräte und Barcodescanner für iPhones welche ein komplexes SDK im Lieferumfang enthalten. Die Fehlerquellen steigen dadurch stetig an, aus meiner Erfahrung kann ich Anekdoten aufzählen wie:

  • „funktioniert nur mit iOS 5, nicht mit iOS 6. Ein Update ist nicht in Sicht…“
  • „wurde nur für ARMv6 kompiliert, ach Sie nutzen nun ARMv7″ (Gerätewechsel von iPhone 3G auf iPhone 4S)
  • „… im Simulator hat es immer funktioniert…“

Je komplexer die Geschäftsprozesse sind welche mit einer App abgedeckt werden, umso massiver wird der einhergehende Qualitätsverlust sein, wenn nicht schon während der Konzeptionsphase einer App-Entwicklung dementsprechend dagegen gehalten wird.

Es gibt eine Reihe an erprobten, standardisierten und qualitätssichernden Maßnahmen welche im Rahmen eines zu erstellendem „Fachkonzept für Mobile Testing“ auf die jeweiligen Belange Ihres Unternehmens angepasst werden müssten. Diese wären unter anderem:

  • Vorhandene Tool Unterstützung (siehe Continuous Integration)
  • Ein etablierter Geschäftsprozess zur Steuerung der App-Entwicklungskette (siehe Application Lifecycle Management)
  • Eine Auswahl an Basis Test-Services welche verpflichtend für jede App-Entwicklung sind
  • Definierte Quality Gates zur Abnahme der App
  • Die Test-Services (Anforderungsreview, Funktionales Testing, Robustheitstest, PenTest, etc…) welche im Rahmen eines „Testing as a Service“ (TaaS) flexibel für jede App-Entwicklung angeboten werden können
  • Regressionstest (Automatisiertes Testing der App-GUI)
  • Ein Defect Management z.B. mit der Unterstützung von HP QC

Das Wichtigste ist natürlich ein qualifizierter Test-Manager/Analyst welcher die App-Entwicklung von Anfang an begleitet und die obigen Punkte nach einer Art Baukastenprinzip für die jeweilige App-Entwicklung analysiert und anpasst.

Wie kann ich Ihnen nun helfen?

Auf Grund meiner jahrelangen Erfahrung in der Entwicklung von Java-Software im Enterprise Umfeld nach Art des „Test-Driven-Development“ und seit Mitte 2011 verstärkt nun die App-Entwicklung & Steuerung als meine Kernkompetenzen, kann ich aus meinem reichhaltigem Projekt-Wissen Fundus schöpfen (unter anderem auch als leitender „Qualitätssicherungsbeauftragter mobile Apps“) um Ihre Qualitätssicherung zu unterstützen/etablieren.