Beim großen Re-Release des Quizz2Go in der RWTHapp vor ein paar Wochen wurden viele Benutzer beim Aufruf eben dieser Quizz2Go-Seite mit einer Fehlermeldung begrüßt. Hier war also offensichtlich eines der Hauptfeatures “kaputt”.
Wie passiert sowas?
Dieser Blogbeitrag soll einen kleinen Einblick in unseren Entwicklungsprozess geben und dabei etwas auf die Frage eingehen, wie es dazu kommt, dass Software immer wieder doch scheinbar offensichtliche Fehler enthält.
Wie läuft ein Release der RWTHapp ab?
Wir arbeiten im Team mit agilen Prozessen, um flexibel auf neue Anforderungen reagieren zu können. Hierbei treffen wir uns durchschnittlich alle drei Wochen, um beispielsweise neue Ideen und Benutzerfeedback zu besprechen. Dabei setzen wir uns alle das Ziel, ein neues Release freizugeben. Dazu wird ein Zeitpunkt festgelegt, ab dem keine neuen Funktionalitäten mehr in die Release-Version aufgenommen werden und sich nur noch um Fehlerbehebung und kleine Verbesserungen gekümmert wird. Dieses Vorgehen ist auch als “feature freeze” bekannt. Der Sinn dahinter ist, zu vermeiden, dass durch ständiges Hinzufügen von Funktionalität die Software nie einen stabilen Zustand erreicht. In dieser Phase wird die App gründlich getestet, um potentielle weitere Fehler zu entdecken.
Jede Fehlerbehebung, die während der Testphase durchgeführt wird, zieht weitere Codeänderungen nach sich. Es wird also kontinuierlich weitergetestet, um sicherzustellen, dass keine neuen Probleme auftreten. Diese Tests sind sehr zeitintensiv. Da es schwierig ist Benutzeroberflächen automatisiert testen zu lassen, testen wir manuell auf mehreren Plattformen (Android, iOS, Windows) und unterschiedlichen Gerätetypen (Smartphones, Tablets, PCs).
Was ist jetzt also schiefgelaufen?
In der fast fertigen Version des Quizz2Go wurde standardmäßig immer nur das aktuelle Semester angezeigt. Weitere mussten durch einen Button nachgeladen werden. Mit dem bevorstehenden Semesterwechsel hätte das potentiell dafür gesorgt, dass die noch relevanten Quizze nicht angezeigt und jedes Mal nachgeladen werden müssten. Aus diesem Grund wurde beschlossen, dass immer direkt drei Semester angezeigt werden. Es wurde getestet, ob nun auch drei Semester angezeigt werden, und die App daraufhin veröffentlicht.
Was haben wir vergessen?
Natürlich haben wir getestet, ob das Quizz2Go noch funktioniert, allerdings nur für den geänderten Fall, bei dem Benutzern Quizze für drei anstatt nur für ein Semester zur Verfügung stehen. Diese kleine Änderung hat jedoch auch dazu geführt, dass oben auftritt, wenn der Benutzer keine verfügbaren Quizze hat. Der auftretende Fehler ist ein alter Bekannter in der Software-Entwicklung: ohne Daten wird eine Variable nicht initialisiert und der unscheinbare, neue Zugriff führt zu einer Fehlermeldung.
Letztendlich sind es wie in diesem Fall also meistens Kleinigkeiten, die dann zu so unglücklichen Fehlern führen.