Was sind TDD und ATDD?
In diesem Artikel beleuchten wir die Gemeinsamkeiten und Unterschiede zwischen zwei beliebten Testmethoden, die allgemein als TDD und ATDD bekannt sind.
TDD steht für testgetriebene Entwicklung, während ATDD für akzeptanztestgetriebene Entwicklung steht. Zu verstehen, wie diese beiden Testansätze funktionieren, ist für Testexperten von entscheidender Bedeutung, und dieser Beitrag soll Ihnen einen Einstieg in die Entdeckung der beiden Methoden bieten. Sie werden TDD vs. ATDD verstehen.
Was ist testgetriebene Entwicklung (TDD)?
TDD ist ein System zur Entwicklung von Software nach den Prinzipien von Extreme Programming (XP), das sich jedoch im Laufe der Zeit als eigenständige Softwareentwicklungstechnik abspaltete.
Bei TDD werden Unit-Tests direkt am Quellcode durchgeführt.
Erst schreibt der Tester einen automatisierten Testfall, der die gewünschte Funktion definiert, die das System idealerweise ausführen sollte, aber den Testfall absichtlich so gestaltet, dass er vom System in seinem jetzigen Zustand nicht erfüllt werden kann.
Zweitens notiert der Entwickler die Gründe, warum das System den Test nicht erfüllt hat, und schreibt den Code, der erforderlich ist, um das System zu überarbeiten und es in die Lage zu versetzen, den Test im zweiten Versuch zu bestehen. Dieser Prozess ist in der folgenden Grafik zusammengefasst.
Der TDD-Prozess setzt sich auf diese Weise fort, im Zickzack zwischen Misserfolg und Erfolg, so dass jede Iteration das System an seine Grenzen bringt und ihm dann hilft, diese durch das erzeugte Feedback zu überwinden.
Das TDD-Verfahren ist ein Experiment des freiwilligen Scheiterns, und es erfordert einiges an Mut, sich mit dieser kontraintuitiven Technik vertraut zu machen. Sobald Sie es jedoch getan haben, werden Sie mit einer einfachen, aber hocheffektiven Methode belohnt, mit der Sie die Angst vor dem Scheitern beim Testen bekämpfen und gleichzeitig Ihre Arbeit verbessern können.
Was ist Acceptance Test-Driven Development (ATDD)?
ATDD ist eine kollaborative Testmethode, die alle an der Erstellung neuer Software beteiligten Personen (z. B. Tester, Entwickler und Benutzer) dazu zwingt, ihre Arbeit zu tun.
Dieser Schritt soll sicherstellen, dass sich alle Beteiligten über die Hauptziele des Projekts einig sind, insbesondere in Bezug auf die Funktionalität, die der Endbenutzer erwarten kann. In dieser Phase von ATDD können Techniken wie User Personas und User Stories sehr hilfreich sein.
Wenn die Akzeptanztests schließlich auf dem System laufen, werden Fehler notiert und die Entwickler werden dann die fehlerhaften Komponenten refaktorisieren, indem sie den Code schreiben, der benötigt wird, um die Akzeptanzkriterien beim nächsten Versuch zu erfüllen.
Dieser Prozess wird iterativ durchgeführt, normalerweise am Ende jedes Sprints, bis das Endprodukt für die Bereitstellung bereit ist. Die Grafik unten erklärt dies.
ATDD gibt dem Team eine klarere Vorstellung davon, wie das Endprodukt funktionieren wird, so dass sich alle auf die langfristigen Ziele konzentrieren können, anstatt sich in einzelnen Codezeilen zu verlieren.
Zusammenfassung
Jetzt haben Sie ein gutes Verständnis für die grundlegenden Unterschiede zwischen TDD und ATDD. Diese beiden Testmethoden sind eng miteinander verwandt, allerdings schließt ATDD auch Akzeptanztests in den Prozess ein und legt mehr Wert auf die Zusammenarbeit im Team als TDD.
Beide Ansätze passen gut zu den agilen Prinzipien, da beide die Sammlung von Feedback fördern, um auf früheren Fehlern aufzubauen. Da Sie das System kontinuierlich überarbeiten und die Probleme angehen, mit denen Sie beim vorherigen Versuch konfrontiert wurden, helfen Ihnen diese Methoden, ein wertvolleres Endprodukt auf inkrementelle Weise zu entwickeln.
Mit 60.000+ Abonnenten
Für neueste Blogs, Branchen-Updates und exklusive Tipps.
*Ihre E-Mail ist bei uns sicher, wir hassen auch Spam
Leave a Reply