Komplexe Tests und Qualitätssicherung (QA) von Online-Social-Games für Mobil- und Webanwendungen

ALLGEMEINE BESCHREIBUNG

Der Kunde ist ein renommierter Entwickler von „Social Games“, dessen Angebot eine breite Palette äußerst attraktiver Online-Handyspiele umfasst. Dank ihrer hohen Verfügbarkeit, ihres intuitiven Designs und ihrer lebendigen Animationen erfreuen sich diese Spiele bei den Endnutzern großer Beliebtheit.

SERVICIOS PRESTADOS
  • Funktionstests
  • Testen mobiler Anwendungen
  • Kompatibilitätstests
  • Lokalisierungs- und Internationalisierungstests
  • Testautomatisierung
  • Prozess- und Technikprüfungen
  • Integrationstest
  • Leistungstests
TECNOLOGÍAS Y HERRAMIENTAS
  • JDK
  • Appium
  • Allure Framework
  • Android Studio
  • Atlassian JIRA
  • Edge
  • Charles
  • Gradle
  • TestNG
  • CI: Bambus
  • Xcode
  • TestRail
  • Postman
  • Grafana
  • GameBench
  • BlazeMeter
  • GitHub Copilot
  • Code Rabbit
PROJEKTÜBERSICHT

Der Kunde begann mit der Entwicklung seines ersten mobilen Produkts mit dem Ziel, eine hochwertige und benutzerfreundliche Gaming-App anzubieten. Die Spezialisten von a1qa wurden in das Projekt eingebunden, um dessen Erfolg sicherzustellen. Infolgedessen wurde das Produkt erfolgreich auf den Markt gebracht und erzielte eine beachtliche Marktpräsenz. Nach diesem Erfolg beauftragte der Kunde a1qa mit der Qualitätssicherung der folgenden Apps für iOS und Android.

Zur Durchführung der Qualitätssicherungsmaßnahmen setzte a1qa zunächst drei Testingenieure für mobile Geräte ein, die Softwaretests auf den acht beliebtesten Mobilgeräten durchführten. Im Laufe der Zeit stieg die Anzahl der Produkte, und es ergab sich ein klarer Bedarf, das Team zu vergrößern.

Um das Team erfolgreich aufzustocken, verfolgte a1qa einen schrittweisen Ansatz. Der Prozess umfasst den Aufbau und Transfer von Wissen durch eine maßgeschneiderte Schulung. Darüber hinaus müssen die QA-Ingenieure eine Prüfung bestehen, um ihre reibungslose Integration in die Infrastruktur und die Arbeitsabläufe des Projekts zu gewährleisten. Derzeit führen 87 Experten, verteilt auf vier dedizierte QA-Teams, Tests auf mehr als 150 internen Geräten durch. Jeder Spezialist konzentriert sich auf einen bestimmten Bereich des Projekts, wie beispielsweise Backend-Tests.

Um von Anfang an eine gute Chemie zu gewährleisten und die Eignung für das Projekt zu bestätigen, legte der Kunde Wert darauf, die Kandidaten während der Vorstellungsgespräche persönlich kennenzulernen – was durch die gefestigten Beziehungen und die bestehende Kommunikation mit a1qa ermöglicht wurde.

Die Ingenieure von a1qa:

  • Sie unterstützen den Kunden bei der Umsetzung eines „Shift-Left“-Testansatzes, indem sie bereits in frühen Phasen des Entwicklungszyklus Qualitätssicherungsmaßnahmen durchführen, um Fehler von vornherein zu vermeiden.

 

  • Durch Automatisierung werden aufwendige und zeitintensive Regressionstests optimiert.
  • Sie sorgen für eine gleichbleibend hohe Qualität aller mobilen Produkte und unterstützen die erfolgreiche Einführung neuer Versionen.
  • Sie arbeiten effizient in einer Umgebung mit mehreren Anbietern. Derzeit sind die Prozesse so eingerichtet, dass die Leiter der QA-Teams von a1qa und anderer Anbieter Aufgaben erhalten und parallel daran arbeiten. Darüber hinaus weist a1qa gelegentlich Aufgaben an Ingenieure aus Teams anderer Anbieter zu.

Durchgeführte Arbeit

Als a1qa in das Projekt einstieg, erstellte das Team einen geeigneten Zeitplan, der an die Arbeitszeiten des Kunden angepasst war, integrierte sich reibungslos in die Infrastruktur des Kunden und begann mit der Durchführung der folgenden QA-Maßnahmen mit hoher Priorität.

Interne Prozess- und Technikprüfungen

Jedes Jahr oder bei einem Wechsel des Projektkoordinators führt a1qa ein Prozessaudit durch, um mögliche Verbesserungsbereiche zu ermitteln oder bestehende Engpässe zu identifizieren, die Qualität der erbrachten Dienstleistungen kontinuierlich zu verbessern und sicherzustellen, dass alle QA-Teams auf die festgelegten Geschäftsziele ausgerichtet sind.

Alle paar Jahre führt a1qa ein umfassendes technisches Audit durch, um technologische Lücken zu schließen, die Effizienz der Lösungen für die Testautomatisierung und die Leistungsprüfung zu überprüfen und Datenlecks zu verhindern.

Diese regelmäßig durchgeführten Aktivitäten tragen dazu bei, die Qualität der Auslieferung zu verbessern und das Vertrauen in die Aufrechterhaltung eines hochwertigen Codes zu stärken.

Funktionstests

Die Aufgaben der Teams variieren je nach Projektphase. Die Ingenieure begannen mit Front-End-Tests. Da sie dank ihrer umfassenden Erfahrung im Bereich Qualitätssicherung und ihrer fundierten Kenntnisse der Branche sowie der Kundensoftware eine hohe Leistungsfähigkeit unter Beweis stellten, wurden sie auch mit der Durchführung von Back-End-Tests betraut.

Die Ingenieure begannen mit der Erstellung einer Teststrategie, um einen Leitansatz für die Software-Qualitätssicherung festzulegen. Sie legten die am besten geeignete Art der Testdokumentation fest: Testfälle. Da das Backend komplexe Softwarelogik enthält und der Kunde eine Testautomatisierung plante, war es unerlässlich, jeden Schritt des Testprozesses zu beschreiben. Nachdem die Testmodelle erstellt und validiert sowie die Testfälle in TestRail erfasst worden waren, begannen die QA-Ingenieure mit den Testaktivitäten.

Zunächst führten die Ingenieure von a1qa nach Erhalt der Softwareversionen Plausibilitätsprüfungen durch, um sicherzustellen, dass die geplante Funktionalität im Großen und Ganzen wie erwartet funktionierte. Im Falle eines Fehlers wurden die Versionen zurückgewiesen, und die Engpässe mussten beseitigt werden, bevor sie zur gründlicheren Prüfung an die QA-Teams weitergeleitet wurden. Da es an einem einzigen Tag bis zu 20 davon geben konnte, führte a1qa eine Regel ein, wonach die Softwareentwickler die Sanity-Checks selbst anhand der a1qa-Checkliste durchführen und erst danach die Builds zur weiteren Prüfung weiterleiten mussten.

a1qa plant, alle Plausibilitätstests zu automatisieren, um die Qualitätssicherungsprozesse zu optimieren und den Ingenieuren Zeit für andere vorrangige Projektaktivitäten zu verschaffen.

Darüber hinaus führten die Ingenieure von a1qa Smoketests, Tests neuer Funktionen, Regressionstests und die Validierung von Fehlern durch.

Diese gemeinsamen Bemühungen trugen dazu bei, Softwareprobleme aufzudecken, bestätigten, dass die kürzlich hinzugefügten Funktionen die Produktlogik nicht beeinträchtigten, und stellten sicher, dass die zuvor eingeführten Verbesserungen einwandfrei funktionierten.

Testen mobiler Anwendungen

Die Ingenieure führten Tests an echten Geräten durch, die a1qa speziell für dieses Projekt angeschafft hatte, um eine Umgebung zu schaffen, die der tatsächlichen Benutzererfahrung so nahe wie möglich kommt, und um die Genauigkeit der Tests zu erhöhen. Die Spezialisten hielten sich an eine umfassende Checkliste, um verschiedene Aspekte der Anwendung zu überprüfen.

Neben den Softwaretests muss der QA-Koordinator die Testabdeckung kontinuierlich analysieren, um deren Vollständigkeit sicherzustellen. Daher hält er sich stets über die für die Durchführung relevanter Tests erforderlichen Geräte auf dem Laufenden. Bei Personalwechseln innerhalb des Projekts oder bei der Einführung neuer Smartphones kümmert sich der a1qa-Koordinator um die notwendigen Anschaffungen. Nach dem Erwerb werden die Geräte an die entsprechenden Teams verteilt. Falls erforderlich, werden die Geräte an die aktuellen Standorte der QA-Ingenieure versandt, um einen reibungslosen Ablauf zu gewährleisten.

Kompatibilitätstests

Um dem Kunden dabei zu helfen, eine Zielgruppe anzusprechen, die verschiedene Geräte nutzt, führten die QA-Experten Kompatibilitätsprüfungen durch. Sie stellten den reibungslosen Betrieb der Software auf verschiedenen Plattformen und deren Versionen sowohl für iOS als auch für Android sowie auf einer breiten Palette von Geräten mit unterschiedlichen Bildschirmgrößen und -auflösungen, CPUs, GPUs, Arbeitsspeichern und anderen technischen Parametern sicher. Das Team kümmert sich außerdem um die Veröffentlichungen in verschiedenen Vertriebskanälen wie Google Play, dem Apple App Store und dem Amazon App Store.

Während der Tests nutzt a1qa die Kundendaten, um die 10 am häufigsten für Zahlungen genutzten Geräte auf jeder Plattform zu ermitteln. Diese Listen werden alle drei Monate aktualisiert, um eine umfassende Testabdeckung zu gewährleisten.

Zudem veralten manche Geräte mit der Zeit, oder es kommen neue Geräte auf den Markt, deren wesentliche Merkmale sich von den derzeitigen unterscheiden. In diesen Fällen überprüfen die Ingenieure die Listen alle sechs Monate und beschaffen neue Geräte.

Lokalisierungstests

Um die Marktpräsenz auszubauen, ist es entscheidend, Kunden weltweit ein durchweg hervorragendes Nutzererlebnis zu bieten. Um dies zu erreichen, führte a1qa Lokalisierungstests durch.

Dank der Validierung kritischer Aspekte wie der korrekten Darstellung von Daten und kultureller Besonderheiten gelang es dem Kunden, die Software erfolgreich für internationale Märkte anzupassen, darunter die EU, die USA, Kanada, Australien und Teile Asiens. a1qa stellte sicher, dass alle Funktionen gemäß den Anforderungen des jeweiligen Ziellandes oder der jeweiligen Zielregion gestaltet wurden.

Testautomatisierung

Um aufwendige und zeitraubende Prüfungen zu optimieren, die Softwarebereitstellung zu beschleunigen und einen regelmäßigen Release-Rhythmus zu gewährleisten, hat a1qa einen Teil der Frontend- und Backend-Testaktivitäten automatisiert.

Automatisierung von Frontend-Tests

Der Kunde wollte die Tests für drei mit der Unity-Engine entwickelte mobile Anwendungen automatisieren, was beim Testen von UI-Elementen Einschränkungen mit sich brachte, da eine direkte Interaktion mit diesen nicht möglich war.

Anfangs nutzte der Kunde das Tool Unity in Verbindung mit Appium, um Tests zu automatisieren, indem er Anfragen an die App-Version sendete und Daten zu den Elementen der Benutzeroberfläche abrief. Aufgrund von Sicherheitsbedenken wurde jedoch ein internes Tool entwickelt, das auf dem WebSocket-Protokoll basierte. Dieses stellte eine sichere Verbindung her und ermöglichte eine reibungslose Datenübertragung, indem ein spezielles Plug-in in die App-Version eingebettet wurde, um auf die erforderlichen Elemente zugreifen zu können.

Darüber hinaus haben die Ingenieure des Kunden eine Lösung entwickelt, die alle Elemente auf dem Bildschirm auflistet, sodass die Tester das jeweilige Element auswählen können, mit dem sie interagieren möchten.

Im Rahmen dieser Aktivitäten konzentrierten sich die Automatisierungsingenieure der QA-Abteilung von a1qa darauf, die Funktionen der Open-Source-Lösung für die Testautomatisierung zu analysieren. Ihr Ziel war es, einen umfassenden Vergleich mit dem internen Tool zu erstellen, um den Entscheidungsprozess zu unterstützen und die am besten geeignete Option auszuwählen.

Zu den weiteren Aufgaben von a1qa mit hoher Priorität gehören:

  • Entwicklung einer maßgeschneiderten Lösung im Rahmen der Forschung und Entwicklung im Bereich der Testautomatisierung, um die Bereitstellung der Ergebnisse von Testläufen zu beschleunigen, da der gesamte Umfang der Regressionstests einer Anwendung derzeit mehr als 24 Stunden in Anspruch nimmt und die Automatisierungsingenieure drei Anwendungen testen müssen.
  • Ich arbeite daran, die Stabilität der automatisierten Tests zu verbessern, um den Zeitaufwand für die Behebung von Problemen nach jedem Durchlauf zu reduzieren. Stabilitätsprobleme entstehen, weil jedes zusätzliche Tool Anpassungen am Automatisierungs-Framework erfordert. Zudem gibt es mehr als 10 Releases pro Monat, und jedes davon beinhaltet Fehlerbehebungen und Änderungen an der Funktionsweise der Software.
  • Automatisierung der Testberichte und Visualisierung von Kennzahlen für die QA-Leiter, um eine Echtzeit-Überwachung des aktuellen Fortschritts zu ermöglichen und Verbesserungsmöglichkeiten zu identifizieren.
  • Unterstützung des Continuous-Integration-Systems im Hinblick auf automatisierte Testausführungen, um eine kontinuierliche Qualitätsbewertung zu gewährleisten.
  • Entwicklung neuer automatisierter Tests, um die Testabdeckung kontinuierlich zu erweitern.
  • Sicherstellung der Automatisierungsunterstützung für andere Teilprojekte (z. B. im Zusammenhang mit Tests von Webformularen).

Automatisierung von Backend-Tests

Um die Qualität des Backends zu überprüfen, automatisierte das Team von a1qa die Regressionstests der APIs sowohl für die neue mobile App, die noch nicht veröffentlicht worden war, als auch für die bereits in den App-Stores verfügbaren bestehenden Lösungen, die alle ein gemeinsames Backend nutzen.

Die neue Anwendung wurde auf Basis einer Microservice-Architektur entwickelt. Um sicherzustellen, dass die APIs Anfragen korrekt versendeten und die richtigen Antworten zurückgaben, erstellten die QA-Automatisierungsingenieure automatisierte Skripte in Java und entwickelten ein maßgeschneidertes Framework für die Testautomatisierung.

Was die bestehenden mobilen Anwendungen betrifft, so hat der Kunde mit der Umgestaltung seiner Architektur von einer monolithischen hin zu einer auf Microservices basierenden Architektur begonnen.

Dieser Teil des Backends war komplex und umfasste verschiedene Administrationsoberflächen und Dienste, die zusätzliche Funktionen boten, wie beispielsweise die Segmentierung der Endnutzer oder die Kontoverwaltung. Der Modernisierungsprozess war nicht standardisiert, sodass neue APIs für die Testautomatisierung nicht zügig zur Verfügung standen.

Um jedoch Zeitverluste zu vermeiden und bereits in den ersten Phasen der Neugestaltung einen Mehrwert zu schaffen, halfen die QA-Automatisierungsingenieure von a1qa dem Kunden dabei, den Umfang der Automatisierung festzulegen. Sie entwickelten automatisierte Tests, um die Qualität des alten Backends sicherzustellen, und pflegten diese, um Stabilitätsprobleme zu vermeiden – insbesondere da die Tests auch Elemente der Benutzeroberfläche umfassten.

Bei den Tests neuer und bestehender Anwendungen richteten die Spezialisten von a1qa die Integration mit Allure Report und TestRail ein, um die Testfälle effizient zu verwalten, eine automatisierte Überwachung der Ergebnisse zu etablieren und einen Echtzeit-Überblick über den QA-Prozess zu erhalten. Um eine kontinuierliche Qualitätsbewertung zu gewährleisten, wurden die Tests viermal im Monat durchgeführt.

Steigerung der Effizienz der Testautomatisierung durch künstliche Intelligenz (KI)

Um den Kunden bei der Verbesserung seiner Kosteneffizienz zu unterstützen, untersuchten die Automatisierungsingenieure von a1qa in Zusammenarbeit mit Spezialisten des Kunden die Möglichkeit, eine KI -gestützte Codierungsunterstützung sowohl bei Front-End- als auch bei Back-End-Qualitätssicherungsmaßnahmen einzuführen.

Die erste Analyse konzentrierte sich auf die Einführung eines KI-basierten Tools zur automatisierten Codeüberprüfung von Pull-Requests. Dies war dringend erforderlich, da das Automatisierungsteam aufgrund von Personalfluktuationen im Projekt größtenteils aus neuen Mitarbeitern bestand. Infolgedessen konnten nur wenige Spezialisten solche Überprüfungen durchführen, und der Prozess verlief zu langsam. Durch den Einsatz von KI für die Erstprüfung gelang es a1qa, den Prozess zu optimieren, die Bereitstellung automatisierter Tests und Software-Updates zu beschleunigen und den erfahrenen Ingenieuren Zeit für andere vorrangige Aufgaben zu verschaffen.

Nach einer gründlichen Analyse entschieden sich a1qa und der Kunde für Code Rabbit, da das Tool die Historie aller Commits im gesamten Code-Zweig vor einem Pull-Request nachverfolgen kann und so präzisere und kontextbezogene technische Rückmeldungen zur Codequalität nach jeder Änderung liefert. Der Einsatz von Code Rabbit im Projekt hat die erste Genehmigungsphase erfolgreich durchlaufen, und nun wird der QA-Leiter des Kunden die Initiative seiner KI-Abteilung vorstellen.

Die zweite wichtige Analyse konzentrierte sich auf die Auswahl eines KI-Tools zur Verkürzung der Entwicklungszeit für automatisierte Tests, die aufgrund der hohen Komplexität der Software im Durchschnitt acht Stunden betrug.

Im Rahmen des Auswahlverfahrens widmete a1qa dem Risikomanagement besondere Aufmerksamkeit. Durch das Verständnis der internen Projektanforderungen sowie der Bedenken und Erwartungen des Kunden identifizierte a1qa sensible Bereiche und hob diese hervor, um sie anschließend gemeinsam zu erörtern und Lösungen zu erarbeiten.

Konkret ist die Datensicherheit das Hauptanliegen des Kunden. Bei der Nutzung von KI kann niemand zu 100 % garantieren, dass die zum Trainieren von LLMs verwendeten Daten in der Vorbereitungsphase ausreichend geschützt wurden.

Nach Abschluss der Untersuchung schlug a1qa den Einsatz von GitHub Copilot vor. Der Einsatz dieser Lösung im Rahmen der Testautomatisierung erwies sich als äußerst effektiv: Die Entwicklungszeit für einen automatisierten Test verkürzte sich um 28 %, und innerhalb von neun Monaten sparte das QA-Team 788 Stunden ein, was der Implementierung von 225 zusätzlichen automatisierten Tests entspricht.

Darüber hinaus nutzt a1qa GitHub Copilot auch für andere Automatisierungsaufgaben, wie beispielsweise die Erstellung ergänzender Dokumentationen, und plant, in Zukunft weitere Erkenntnisse über dessen Wirksamkeit zu gewinnen.

Leistungstests

Um das Kundenerlebnis zu verbessern, die Fähigkeit der Software zur Bewältigung eines hohen Endnutzer-Aufkommens zu bewerten und einen reibungslosen Betrieb zu gewährleisten, führte der Kunde sowohl serverseitige als auch clientseitige Leistungstests durch.

Mithilfe von clientseitigen Tests bewerteten die QA-Ingenieure die Benutzerfreundlichkeit der Anwendungen sowie deren Übereinstimmung mit den festgelegten Anforderungen, identifizierten Probleme, die die Benutzererfahrung beeinträchtigten, und führten eine Reihe von Verbesserungen ein.

Was die serverseitigen Tests betrifft, so umfassten diese alle wichtigen Arten – von Belastungstests bis hin zu Volumentests –, wodurch das Team sicherstellen konnte, dass das Backend der mobilen Anwendungen nach der Migration in die Cloud in der Lage sein würde, die erwartete Last zu bewältigen, ohne dass die Qualität darunter litt.

Zusätzlich zu den Tests richteten die QA-Ingenieure ein System zur Leistungsüberwachung ein, beispielsweise Dashboards in Grafana und New Relic, um:

  • die Leistung der Software kontinuierlich in Echtzeit zu überwachen und zu messen
  • Leistungskennzahlen für die zukünftige Verwendung erfassen
  • Leistungsprobleme oder Engpässe diagnostizieren
  • Testergebnisse vergleichen (z. B. zwischen verschiedenen Versionen)
  • historische Daten aller durchgeführten Tests erfassen

Darüber hinaus hat das Team von a1qa im letzten Jahr die Leistungsprüfungen vollständig automatisiert, was dazu beigetragen hat, den QA-Prozess zu beschleunigen und eine frühzeitigere Erkennung von Leistungsengpässen zu gewährleisten.

Integrationstest

Für das QA-Team war es von entscheidender Bedeutung, sicherzustellen, dass die verschiedenen Komponenten und Module vollständig kompatibel blieben und keine Risiken für den ordnungsgemäßen Betrieb der Software darstellten.

Die QA-Ingenieure führten Integrationstests durch, um sicherzustellen, dass die verschiedenen Teile der Software nahtlos ineinandergreifen und keine Fehlerwahrscheinlichkeit besteht.

Durch die Überprüfung der Integrationen konnte bestätigt werden, dass sich Nutzer problemlos über soziale Netzwerke wie Facebook in der App anmelden können.

Im Rahmen dieser Aktivitäten haben die QA-Ingenieure jedes festgestellte Problem im Fehlerprotokoll des Projekts erfasst. Mindestens einmal im Monat überprüfen die Spezialisten diese Daten, analysieren mögliche zu behebende Probleme und werten die Ergebnisse der Behebung früherer Störungen aus.

 

FAZIT

Im Laufe der mehr als neunjährigen Zusammenarbeit hat das Team von a1qa über 600.000 Tests durchgeführt.

Dank gut eingespielter Kommunikationskanäle zwischen den zuständigen Teams und optimierter Abläufe bei der Zusammenarbeit mit den Entwicklern des Kunden konnten die QA-Ingenieure die strikte Einhaltung aller Fristen zuverlässig gewährleisten. Alle festgestellten Fehler wurden behoben, bevor mehr als 600 Software-Updates in die Produktion gingen.

Das Projekt läuft bis heute weiter. Der Kunde schätzt die verantwortungsbewusste Herangehensweise des Teams von a1qa und freut sich darauf, die Zusammenarbeit fortzusetzen.

RESULTADOS
  • Fehlerfreier Betrieb von mobilen Social-Gaming-Apps dank komplexer Softwaretests.
  • Verkürzung der Bereitstellungszeit durch die Einführung von Automatisierungstests auf Client- und Serverseite.
  • Höhere Effizienz bei den Softwareentwicklungsprozessen durch die Einführung des „Shift-Left“-Testansatzes.
EN CIFRAS
  • 9+
    Jahre der Projektlaufzeit
  • 4
    bewährte Plattformen
  • 150+
    mobile Geräte, die für Tests verwendet werden
  • 87
    beteiligte QA-Ingenieure
  • 788
    Eingesparte Stunden in 9 Monaten durch den Einsatz von GitHub Copilot bei der Entwicklung automatisierter Tests
  • 100 %
    Einhaltung von Fristen und Budget