Visualisierung der Selen-Testabdeckung
Wir haben eine riesige Legacy-Anwendung, bei der Unit- / Integrationstests unpraktisch sind und der größte Teil der Automatisierung in Selen mit der Programmiersprache Java in einem separaten Automatisierungsprojekt durchgeführt wird.
Es sind ungefähr 1000 @ Tests geschrieben, die Tests verwenden die Implementierung von Page Object Factory und prüfen:
- Geschäftsregeln (Anforderungen)
- kritische Benutzerreisen
- UI-Interaktionen
Wenn man es einzeln betrachtet, ist es ziemlich klar, was jeder Test tut. Was uns fehlt, ist ein klares Bild auf hoher Ebene, welche Testabdeckung wir tatsächlich haben.
Unsere Ziele sind:
- Visualisieren Sie, was wir behandelt haben
- herauszufinden, welche Tests uns fehlen
- Identifizierung möglicher doppelter Tests
Ist es möglich, eine Art Visualisierung automatisch zu generieren?
Ansonsten, wie man sogar die Testabdeckung einer komplexen Geschäftsregel-schweren Anwendung ohne schreckliche manuelle Grunzarbeit in den Griff bekommt. Wenn jedoch der manuelle Ansatz die einzige Lösung ist, wie sollten wir dann all diese Daten überhaupt präsentieren, damit sie nützlich sind?
Antworten
Ich fühle deinen Schmerz. Ich lebe deinen Schmerz: Ich bin in der gleichen Situation, außer dass ich der einzige Tester in der Gruppe bin und ich Jahre gebraucht habe, um eine stabile, funktionierende Testautomatisierung zum Laufen zu bringen.
Mir sind keine Werkzeuge bekannt, mit denen die Abdeckung in solchen Situationen gemessen werden kann. Wenn Sie mit großer Legacy-Software arbeiten, bei der Unit-Tests und Integrationstests nicht praktikabel sind, haben Sie keine werkzeugfreundliche Möglichkeit, Ihre Abdeckung zu melden.
Trotzdem habe ich einen Vorschlag:
Bauen Sie Ihre Abdeckungsberichte in Ihre Automatisierung ein
Sie können nicht sagen, dass Sie x % der Codezweige in der Anwendung abdecken . Was Sie können tun , ist ein wenig Zeit in Anspruch nehmen zu erstellen - Dokumentation oder acquire von Hilfe oder einer anderen Quelle - einen umfassenden Überblick über die Anwendungsfunktionen, und ordnen Sie Ihre bestehende und neue Tests auf Anwendungsfunktionalität Liste.
Wenn Ihre Software beispielsweise ein Webshop ist, können Sie Funktionen wie "Produkte zum Warenkorb hinzufügen", "Warenkorb löschen", "Produkte durchsuchen", "Produkte suchen", "Kundenkonto erstellen", "Anmelden", "Anmelden" auflisten aus "," kaufen "und so weiter. Diese werden zu Kategorien, die Sie Ihren Tests zuordnen, möglicherweise gruppiert in größere Kategorien wie "Produkte", "Warenkorb", "Konten". Abhängig von Ihrer Anwendung kann die Kategorisierung mehrere Ebenen umfassen. Sie beginnen jedoch auf der höchsten Ebene und werden im Laufe der Zeit detaillierter.
Sobald Sie Ihre Tests kategorisiert haben (ich würde in Betracht ziehen, mit den sehr einfachen Begriffen "kategorisiert" und "nicht kategorisiert" zu beginnen, damit der Prozess immer dann abläuft, wenn Sie an dem Testcode arbeiten - im Wesentlichen, wenn Sie beispielsweise kategorisieren möchten 5 Tests Jedes Mal, wenn Sie einen neuen Test bearbeiten oder hinzufügen, wird das Ganze irgendwann erledigt. Sie können daran arbeiten, Ihre Berichterstellung um die Kategorien zu erweitern.
Letztendlich möchten Sie mit einer Tabelle mit einer Beschreibung abschließen, die die Anzahl der Tests in jeder Kategorie und die Anzahl der Tests zeigt, die bei jedem Testlauf bestanden wurden.
Wenn Sie dies in Ihre Automatisierung integrieren und die Testergebnisberichte zum Generieren des Diagramms verwenden, haben Sie einen großen (und wahrscheinlich langsamen und schmerzhaften) Start in die Berichterstellung, der jedoch wartbar und erweiterbar ist - jedes Mal, wenn neue Funktionen hinzugefügt werden. Sie fügen eine neue Kategorie hinzu, die mit 0 Tests beginnt und wächst.
Dies hat nicht die gleiche Genauigkeit oder Detailgenauigkeit, die Coverage-Tools für Unit- / Integrationstests bieten, gibt Ihnen jedoch eine Vorstellung davon, welche Bereiche der Anwendung weniger Coverage aufweisen als andere.