Wir haben im Laufe der Jahre eine beträchtliche Anzahl von Komponententests für unser Hauptprogramm erstellt. Mehrere tausend. Das Problem ist, dass wir keine klare Vorstellung davon haben, welche Tests wir haben, weil es so viele gibt. Und das ist ein Problem, weil wir nicht wissen, wo wir bei Tests schwach sind (oder wo wir Duplikate haben).
Unsere App ist eine Berichts-Engine. Sie können also eine Vorlage erstellen, mit der Sie das Parsen testen (lesen Sie alle Tabelleneigenschaften), Daten zusammenführen (haben Sie bei der Zusammenführung die richtigen Tabelleneigenschaften beibehalten) und die letzte Seite formatieren (wird die Tabelle korrekt auf der Seite platziert) ) und / oder das Ausgabeformat (ist die erstellte DOCX-Datei korrekt).
Fügen Sie hinzu, was wir testen müssen. Nehmen Sie den Abstand zwischen den Tabellenzellen (wir verwenden Word, Excel und PowerPoint für das Berichtsdesign). Wir müssen den Seitenumbruch für eine Tabelle in einer Zelle, vertikal verbundene Zellen, horizontal verbundene Zellen, eine vertikal und horizontal verbundene Zelle testen, die eine Tabelle mit vertikal und horizontal verbundenen Zellen in der inneren Tabelle enthält, in der sich diese Tabelle befindet bricht über eine Seite.
In welche Kategorie fällt dieser Test? Tabellenauffüllung, Seitenumbrüche, verschachtelte Zellen, vertikal zusammengeführte Zellen, horizontal zusammengeführte Zellen oder etwas anderes?
Und wie dokumentieren wir diese Kategorien, benennen die Unit-Tests usw.?
Update: Eine Reihe von Personen hat vorgeschlagen, Abdeckungstools zu verwenden, um sicherzustellen, dass wir die vollständige Abdeckung haben. Leider ist dies in unserem Fall von begrenztem Nutzen, da die Fehler in der Regel auf bestimmte Kombinationen zurückzuführen sind, sodass der gesamte Code getestet wurde, jedoch nicht in dieser Kombination.
Zum Beispiel hatten wir gestern einen Kunden, der ein Word-Lesezeichen am Ende einer forEach-Schleife in seiner Vorlage (einem Word-Dokument) gestartet und am Anfang der nächsten forEach-Schleife beendet hat. Dies alles verwendete Code, für den Unit-Tests durchgeführt wurden, aber wir hatten nicht daran gedacht, dass die Kombination aus einer Vorlage, die ein Lesezeichen erweitert, 25-mal gestartet und dann 10-mal beendet werden sollte (die beiden forEach-Schleifen hatten eine unterschiedliche Anzahl von Zeilen).