Das HMI-Projekt besteht aus vielen Komponenten an denen hunderte Entwickler arbeiten und es täglich Neuerungen gibt. Natürlich spielt dabei, wie auch in jedem anderen Softwareprojekt das Qualitäts- und Testmanagement eine große Rolle. Insbesondere da die Entwicklung für die msg DAVID als Dienstleister erfolgt, hat die Zufriedenstellung des Kunden hohe Priorität, da andernfalls die Zusammenarbeit und Bezahlung gefährdet werden kann. Um die Qualität zu gewährleisten gibt es einige Strategien und Tools welche das Testen der Funktionen und des dazugehörigen Codes unterstützen. Zum einen muss sichergestellt werden, dass der Code auf unterster Ebene funktioniert. Dies bedeutet, dass möglichst jede neue Zeile oder Methode auf ihren Output getestet wird. Dafür sind die Entwickler zuständig, die solche Tests direkt nach dem programmieren neuer Funktionen anfertigen.
Um jedoch die eigentlichen Funktionen der Software zu testen, die für den Endnutzer interessant sind, kommen in diesem Projekt Tester ins Spiel. Für den Multimedia Kontext habe ich diese Aufgabe übernommen und programmierte Tests, die das Bedienen der Benutzeroberfläche(UI) nachstellten. Dafür muss zunächst erst einmal ein Verständnis von der Funktionalität der Software herrschen, sodass ich mich erstmal mit den festgehaltenen Anforderungen auseinandersetzen durfte. Außerdem half natürlich das „Herumspielen“ innerhalb der Software, um zu erkennen was nach bestimmten Aktionen erwartet werden sollte.
Mit dem Wissen war ich in der Lage mir Testfälle auszudenken und diese dann umzusetzen. Das bedeutet hier konkret, dass ich ein Python-Skript programmiert habe, welches dann in die bestehende Testsuites integriert und somit täglich automatisiert ausgeführt wird. Mit den vorhandenen Monitoring-Tools konnte ich dann die Ergebnisse der Tests überwachen und Erfolg oder Fehlschlag erkennen. Wird ein Fehlschlag ausgemacht, muss anhand der Logs genau hingeguckt und identifiziert werden, ob es sich um einen Fehler im Test oder in der Software handelt. Um das zu erkennen ist oft ein enger Austausch mit den Entwicklern nötig. Wenn ein Fehler der Software erkannt wird, kann ein Ticket für die Entwickler erstellt und der Fehler behoben werden. In diesem Fall hat die Testautomatisierung seine Wirkung gezeigt.
Ein erheblicher Teil meiner Arbeit ist jedoch auch das ständige Verbessern und Warten der Tests. Denn durch die ständige Veränderung der Software, können die Tests evtl. nicht mehr stabil ablaufen und werden dann als Fehlschlag aufgezeigt, obwohl der Produktivcode und die Funktionen eigentlich in Ordnung sind. Das können manchmal banale Sachen wie die Umbenennung eines Buttons sein, der dann nicht mehr betätigt werden kann. Oft sind es aber auch komplexere Probleme, bei denen tiefer geguckt und die Stabilität des Tests überarbeitet werden muss.