Automatisieren der testgetriebenen Entwicklung (TDD)
Von Parasoft
20. Januar 2011
3 min lesen
Durch die Automatisierung kann Test Driven Development (TDD) weniger schmerzhaft und wertvoller werden. Erfahren Sie, wie Sie mithilfe der Automatisierung TDD zu einem nahtlosen Bestandteil des Entwicklungsworkflows machen.
Da wir uns bei Parasoft auf die Automatisierung von Softwaretests konzentrieren, werden wir häufig gefragt: Wie wirkt sich die Automatisierung auf die testgetriebene Entwicklung (TDD) aus? Die meisten Teams führen ihre TDD-Tests im Rahmen des kontinuierlichen Integrationsprozesses automatisch durch. Aber was können Sie noch automatisieren, wenn der Prozess des Entwerfens effektiver Tests notwendigerweise kreativ ist?
Es gibt verschiedene Möglichkeiten, wie Automatisierung kann eine noch größere Rolle spielen TDD zu einem weniger schmerzhaften und wertvolleren Prozess zu machen.
Hindernisse für die Einführung von TDD
Das Haupthindernis für Entwicklungsteams bei der tatsächlichen Einführung von TDD ist die Zeit, die erforderlich ist, um die erforderlichen Testfälle zu erstellen und zu warten. Ohne Prozessautomatisierung kann die TDD-Praxis aufgrund zeitlicher Einschränkungen „optional“ werden.
Zeitliche Einschränkungen ergeben sich aus zwei Hauptquellen:
- Das Einrichten guter Tests kann komplex sein: Das Schreiben eines Tests, mit dem eine Anforderung effektiv überprüft wird, umfasst sowohl Kreativität als auch solide Codierungs- / Testfähigkeiten. Die Komplexität der Erstellung effektiver Komponententests erhöht die Herausforderung: Das Einrichten der richtigen Anfangsbedingungen für realistische Komponententests kann schwierig und zeitaufwändig sein.
- Die Testsuite muss mit der sich entwickelnden Anwendung synchronisiert werden: Wenn jeder TDD-Test erstellt wird, wird er idealerweise zu einer Regressionstestsuite hinzugefügt und dann regelmäßig für die sich entwickelnde Codebasis ausgeführt, um das Team zu benachrichtigen, wenn Änderungen an der Codebasis die bereits getesteten Funktionen beschädigen oder ändern. Damit diese Strategie jedoch die gewünschten Ergebnisse liefert, muss das Team die Testsuite mit der sich entwickelnden Anwendung synchron halten. Andernfalls sind die Testergebnisse so verrauscht, dass sie ignoriert werden - oder die gesamte Testsuite wird abgebrochen.
Angesichts der Komprimierung der heutigen Entwicklungspläne und des ständigen Drucks, mit weniger mehr zu erreichen, ist es nicht verwunderlich, dass dies der Fall ist Aufgaben werden in der Regel gelöscht, es sei denn, TDD-Aufgaben sind ein natürlicher und nicht verhandelbarer Bestandteil des täglichen Arbeitsablaufs des Teams.
Und hier kommt die Automatisierung ins Spiel.
Die Rolle der Automatisierung in TDD
Automatisierung ist hilfreich, um TDD-Aufgaben zu einem nahtlosen Bestandteil des Entwicklungsworkflows zu machen. Berücksichtigen Sie beispielsweise die folgenden Vorteile der Automatisierung:
- Um Tests wertvoller zu machen…Mithilfe der Automatisierung können Sie Anforderungen, Aufgaben, Code, Tests, Builds, Entwickler und Artefakte korrelieren sowie während der Testausführung Deckungsverfolgung, erweiterte Berichterstellung und Laufzeitfehlererkennung hinzufügen.
- Um sicherzustellen, dass die TDD-Praktiken beibehalten werden…Mithilfe der Automatisierung können Sie eine Infrastruktur einrichten, die den Entwickler benachrichtigt, wenn ein Komponententest noch keiner Aufgabe oder Anforderung zugeordnet ist.
- Um die Entwicklung von Unit-Tests zu erleichtern…Mithilfe der Automatisierung können Sie den Arbeitsaufwand für die Implementierung realistischer und nützlicher Testfälle reduzieren.
- Zur Erleichterung der Wartung der Unit Test Suite…Sie können die Automatisierung verwenden, um jeden Testfehler dem verantwortlichen Entwickler zuzuweisen und an seine IDE zu verteilen, um die Überprüfung und Reaktion zu erleichtern.
- So entfernen Sie Testeinschränkungen…Sie können die Dienstvirtualisierung verwenden, um Interaktionen mit unvollständigen oder sich entwickelnden Systemen oder Komponenten zu simulieren, die an Ihren Tests beteiligt sind. Dies hilft Ihnen, Tests zu schreiben und auszuführen, lange bevor das komplette System bereit/verfügbar ist.
- Um sicherzustellen, dass manuelle Aufgaben werden ein kontinuierlicher und natürlicher Teil des Workflows…Mithilfe der Automatisierung können Sie einen richtliniengesteuerten Prozess koordinieren. In einem solchen Prozess werden die Erwartungen des Managements festgelegt, indem definiert wird, welche Praktiken erforderlich sind und wann und wie sie anzuwenden sind. Verwandte Aufgaben werden dann nahtlos in den SDLC integriert und unauffällig auf Compliance überwacht.
Wie haben Sie die Automatisierung angewendet, um den TDD-Prozess zu optimieren? Teilen Sie Ihre Geschichten darüber, was funktioniert hat und welchen Herausforderungen Sie begegnet sind, in den Kommentaren unten mit.