⚠️ Dieser Text wurde aus dem Englischen Original maschinell übersetzt.

Automatisierte Tests sind in der Softwareentwicklung immer noch nicht so verbreitet, wie man es sich wünschen würde. Tests sind anscheinend sehr teuer, aber die Erfahrung lehrt uns, dass die Abwesenheit von Tests oft noch teurer ist. Leider teilen Budgetentscheidungsträger diese Erfahrungen nicht mit den Softwareentwicklern und entscheiden sich daher gegen die Implementierung automatisierter Tests in einem Projekt.

Das Projekt, an dem ich als Projektmanager gearbeitet habe, hatte genau diese Konstellation. Das manuelle Testen der von den Entwicklern erstellten Softwareartefakte gehörte zu meinen Aufgaben, ebenso wie die Dokumentation der Testergebnisse.

Dies war offensichtlich keine optimale Lösung aus verschiedenen Gründen:

Als Projektmanager war ich recht teuer, Junior-Mitglieder wären besser geeignet gewesen, um die Benutzertests durchzuführen. Da das Software-Framework für das Entwicklungsteam neu war, mussten viele Funktionen nach ihrer ersten Implementierung neu gestaltet werden, was dazu führte, dass Features immer wieder kaputt gingen. Der Kommunikationsaufwand für all die Probleme verlangsamte die Entwicklung neuer Funktionen. Die Verwendung von Issues in JIRA war unpraktisch, da die ständige Regression durch das Refactoring bedeutet hätte, dass wir nie irgendwelche Issues und User Stories abschließen könnten. Außerdem waren die Informationsfelder, die für den Entwicklungsworkflow erforderlich waren, nicht dieselben wie für den Testworkflow.

Um diese Probleme zu beheben, benötigte ich eine Anwendung, mit der ich Folgendes tun konnte:

  • Die Testprozesse an Junior-Teammitglieder delegieren.
  • Die gleichen Probleme immer wieder testen.
  • Fortschritt und Rückschritte dauerhaft dokumentieren, um dem Entwicklerteam Feedback zu geben.
  • Sicherstellen, dass ausreichende Testabdeckung vorhanden ist und Aufzeichnungen darüber, wie kürzlich eine bestimmte Funktion getestet wurde.

Ich beschloss, eine Django-Anwendung zu erstellen, die mir bei der Umsetzung dieser Ziele helfen würde.

Funktionen Link to heading

Wir beginnen mit einer Übersichtsseite, auf der alle Probleme und deren Status sowie eine aggregierte Übersicht über alle vorhandenen Probleme nach ihrer Priorität aufgeführt sind.

Im Header gibt es auch Schaltflächen, mit denen Sie Probleme zufällig auswählen können.

Homepage - high level overview and list of all issues

Beim Hinzufügen eines neuen Testfalls ist es möglich, eine Priorität und ein Artefakt festzulegen, auf das sich der Testfall bezieht. Artefakte sind im Admin-Bereich von Django konfigurierbar.

Es können Bilder angehängt werden, die dazu dienen, das Problem zu beschreiben, und es können ein oder mehrere Satz Zugangsdaten wie Testbenutzerkontenzugriff angefügt werden.

Create new issue

Sobald ein Testfall erstellt wurde, ist es möglich, Kommentare hinzuzufügen, Bilder anzufügen und den Status des Testfalls (“in Ordnung”, “unsicher”, “kann nicht getestet werden”, “funktioniert nicht”) festzulegen. Die Historie der Statusänderungen wird auf der rechten Seite erfasst, sodass es einfach ist, visuell zu erkennen, wie stabil ein Problem ist und wie sorgfältig es erneut getestet werden muss.

Issue and testing status

Eine einfache facettierte Suche ist so ziemlich Out-of-the-Box in Django enthalten und erfordert nur eine geringfügige Konfiguration.

Simple search function

Eine Menge Kommunikationsaufwand geht in das Teilen von Anmeldedaten für Tests, wie beispielsweise Anmeldedaten für das Admin-Backend oder Testbenutzeranmeldeinformationen. Um diesen Prozess zu vereinfachen, können alle Anmeldeinformationen, die vom Testteam gemeinsam genutzt werden können, ohne die Sicherheit einer Live-Umgebung zu gefährden, auf einer Übersichtsseite gesammelt und geteilt werden, sowie mit den spezifischen Problemen verknüpft werden, mit denen sie verbunden sind.

Credentials overview

Zu guter Letzt werden alle an Problemen angehängten Kommentare chronologisch auf der Kommentarübersichtsseite angezeigt, um das aktuellste Feedback zu den Problemen für den Projektmanager zu sammeln und dieses Feedback an das Entwicklerteam weiterzugeben.

Comments section

Mit diesem Tool konnte ich Testfälle an Junior-Teammitglieder über das Django-Account-Management delegieren, eine Historie der Systemstabilität aufzeichnen, ein System für neues Feedback von den Testern für das Entwicklerteam entwickeln und eine konstante und gleichmäßig verteilte Abdeckung aller Testfälle sicherstellen.