So starte ich glaube nicht , das ist eine Wiederholung von Fragen auf Unit - Tests . Was ich brauche, ist Hilfe, um seinen Wert einem Team von Programmierern, Analysten, Managern und Testern zu vermitteln. Bei automatisierten Tests muss ich meines Erachtens nicht zwischen Komponententests (z. B. JUnit), BDD (z. B. JBehave, Fitness) und UI (Selen, Watir) unterscheiden, da ich denke, dass sie alle einen ähnlichen Wert haben (aber es steht mir frei, dies zu tun) schreibe eine Antwort, die nicht einverstanden ist :))
Das Folgende ist eine Liste, die ich identifiziert habe. Ich suche nach Antworten, die helfen, sie zu erweitern oder zu verfeinern:
- Zeit- / Kostenersparnis : Das Schreiben von automatisierten Tests kann mehr Zeit in Anspruch nehmen als das Schreiben von Testfällen. Angesichts der Tatsache, dass Tests mehrmals ausgeführt werden, ist der Grenzaufwand (dh Kosten / Zeit) für die Ausführung automatisierter Tests jedoch um mehrere Größenordnungen geringer. Die Tatsache, dass die automatisierten Tests kostengünstig sind, erleichtert das Ändern des Systems im Laufe der Zeit.
- Dokumentation : Es gibt keinen besseren Weg zu wissen, wie ein System funktioniert als seine Tests. Jede andere Dokumentation ist normalerweise nicht mehr aktuell, aber Tests (zumindest die, die bestanden wurden) zeigen, wie die Dinge tatsächlich funktionieren. Dies gilt sowohl für die Endbenutzer- als auch für die API-Dokumentation.
- Code-Qualität : Testschreiben zwingt Sie zu:
- Betrachten Sie Kunden, weil Tests ein Kunde sind
- Bricht Abhängigkeiten auf, bei denen das Testen von Code oft bedeutet, herauszufinden, wie dieser Code erstellt werden kann, ohne dass ein anderes großes System verfügbar sein muss