Wie automatisiertes Testen und manuelle Testprozesse unsere smartmove Plattform verbesserten
In einem sich schnell wandelndem Mobilitätssektor, spielen Plattformen für Flottenmanagement und zugehörige Mobile Apps für Carsharing eine wichtige Rolle. Sie tragen entscheidend dazu bei, wie wir uns fortbewegen und wie wir Fahrzeugressourcen verwalten. Daher ist es essentiell, dass diese Softwareplattformen reibungslos funktionieren. Quality Assurance (QA) steht damit also im Mittelpunkt. In diesem Blogpost betrachten wir innovative QA-Techniken für Softwaretests und geben einen Einblick in Tools, die uns helfen höchste Performance-, Zuverlässigkeits- und User Experience-Standards in unserer smartmove-Plattform einzuhalten.
Ausgangslage
Aufgrund der schieren Komplexität einer großen Mobilitätsplattform passiert es, trotz umfangreicher Tests, dass Fehler unentdeckt bleiben. Zum Beispiel haben wir in unserer Plattform einmal einen Fehler gefunden, bei dem ganze Microservices aufgrund von zu großen Dateiuploads ausfallen konnten. Daraus konnten wir auch Verbesserungen in den Bereichen der Kommunikation zwischen mehrerer Microservices, der gleichzeitigen Verwendung unserer REST-Endpoints durch unterschiedliche Clients sowie der Abstimmung zwischen unseren internen Teams ableiten.
Testmethodologien und Tools, die wir benutzen
All die oben beschriebenen Probleme gleichzeitig zu beheben war ein kompliziertes Unterfangen. Daher haben wir uns für einen zweigleisigen Testansatz entschieden, bei dem automatisiertes Testen sowie manuelles, exploratives Testen gleichzeitig zum Einsatz kommt. Automatisiertes Testen hat dabei den Zweck, mit Softwaretools Testfälle zu schaffen, die sicherstellen, dass Updates nicht neue Fehler mit sich bringen. Exploratives Testen hingegen zielt auf das manuelle Ausprobieren ab, um vermeintliche, gänzlich unbekannte Fehlerquellen aufzuspüren. Unser Hauptziel war es, jeden entdeckten Fehler mit einem (automatisierten) Testfall abzudecken.
So haben wir z.B. End-to-End-Tests in Selenium implementiert. Diese ahmen automatisiert Benutzerinteraktionen im Web Portal nach und decken dadurch eine Vielzahl von Anwendungsfällen ab. Darunter auch jene Fehler, die beim explorativen Testen entdeckt wurden oder Fehler, die wiederkehrend auftraten. Weiters wird dadurch die komplette Softwareplattform abgetestet, da in den Tests vom Frontend-Client bis hin zu den Microservices im Backend alles eingebunden ist.
Zusätzlich implementierten wir API-Tests, die direkt die Schnittstellen des Backends der smartmove-Plattform testen. Dafür haben wir das Karate-Framework benutzt.
Der Einsatz dieser beiden Tools, gemeinsam mit explorativem Testen, ermöglichte es uns, die Anzahl an Fehlern zu reduzieren und die Systemstabilität signifikant anzuheben.
Wie bereits erwähnt, ist das explorative Testen dabei für uns eine wichtige Komponente in der Qualitätssicherung. Wir konnten dadurch Fehler entdecken, die durch automatisierte Tests nur schwer auffindbar waren, wie z.B. jene im Bereich der User Experience und dem User Interface Design. Darüberhinaus konnte sich unser QA-Team durch das manuelle Testen besser in die User-Sicht hineinversetzen und unsere Plattform aus einer neuen, wichtigen Perspektive kennenlernen. Die daraus erhaltenen Erkenntnisse erwirkten direkte Verbesserungen in unseren automatisierten Tests.
Nachdem wir mit den oben genannten Maßnahmen unsere Plattform schnell verbessern konnten, entschlossen wir uns dazu, eine umfangreiche Teststrategie und einen Testplan auszuarbeiten. Die Teststrategie baut auf all den Erfahrungen auf, die wir durch das bisherige Testen sammeln konnten, und ist für den Einsatz in allen zukünftigen Projekten geeignet. Dadurch sind wir nun in der Lage konsistente, penible und umfangreiche QA-Prozesse einzurichten und durchzuführen.
Qualitätsverbesserungen abseits von Software
Auch abseits von programmierter Software kann es zu Problemen kommen, insbesondere dann, wenn mehrere Teams zusammen arbeiten. Eine große Herausforderung war hierbei für uns, die Kommunikation zwischen den Backend- und Frontend-Teams zu verbessern. Unkoordinierte Releases von Bug Fixes oder neuen Funktionen waren nämlich oft Ursache für Probleme. Daher haben wir auch hier klare Prozesse ausgearbeitet, in denen Meetings koordiniert werden und Collaboration-Tools eingebunden sind. Dies stellt sicher, dass nun alle Teams mit dem selben Wissenstand zusammenarbeiten. Unsere Arbeit wurde dadurch weiter beschleunigt und vor allem fehlerfreier.
Zukünftige Pläne
Obwohl wir bereits immense Verbesserungen in der Qualität und Performance unserer Mobilitätsplattform verzeichnen konnten, ist aus unserer Sicht die QA-Reise noch lange nicht vorbei. Der Mobilitätssektor entwickelt sich stetig weiter, wodurch wir mit neuen Technologien und gesteigerten Erwartungshaltungen von Benutzern konfrontiert sind. Wir stellen hohe Ansprüche an unsere Arbeit, weshalb wir immer am Zahn der Zeit bleiben wollen, was QA-Innovationen betrifft. Unser Testsetup sowie unsere -prozesse möchten wir stets weiterentwickeln. So beinhalten unsere Pläne für die Zukunft die weitere Verbesserung von Securitytests und die Optimierung unserer CI/CD-Pipelines für noch schnellere und zuverlässigere Deployments. Mit Blick in Richtung Zukunft arbeiten wir überzeugt an der stetigen Verbesserung unserer QA-Prozesse, sodass wir weiterhin die besten Lösungen im wandelnden Mobilitätssektor anbieten können.
Wir sehen uns im nächsten Blogpost!