BDD vs TDD vs ATDD: Hauptunterschiede
Dieser Leitfaden beschreibt verschiedene Testmethoden oder -praktiken wie Behavioral Driven Development (BDD) und Test Driven Development (TDD) ), Acceptance Test-Driven Development (TDD). Es wird auch helfen, die Hauptunterschiede zwischen diesen Techniken zu klären. Am Ende dieses Artikels wird erwartet, dass man versteht, wie jede Methode funktioniert, welche Hauptunterschiede und welche besonderen Rollen sie im Entwicklungsprozess spielt.
Beginnen wir zunächst mit der testgetriebenen Entwicklung.
Was ist Test Driven Development (TDD)?
Test Driven Development ist eine Testmethode oder Programmierpraxis, die aus Entwicklersicht implementiert wird. Bei dieser Technik beginnt ein QS-Ingenieur mit dem Entwerfen und Schreiben von Testfällen für jede kleine Funktionalität einer Anwendung. Diese Technik versucht eine einfache Frage zu beantworten: Ist der Code gültig? Die Hauptabsicht dieser Technik besteht darin, einen neuen Code nur dann zu ändern oder zu schreiben, wenn der Test fehlschlägt. Daher führt dies zu einer geringeren Duplizierung von Testskripten. Diese Technik ist in agilen Entwicklungsökosystemen weitgehend beliebt. Bei einem TDD-Ansatz werden automatisierte Testskripte vor funktionalen Codeteilen geschrieben. Die TDD-Methodik umfasst die folgenden Schritte:
- Basierend auf den in den Dokumenten angegebenen Anforderungen schreibt ein Entwickler einen automatisierten Testfall.
- Diese Tests werden in einigen Fällen ausgeführt Sie schlagen fehl, da sie vor der Entwicklung eines tatsächlichen Features entwickelt werden.
- Das Entwicklungsteam faktorisiert dann den Code neu, damit der Test erfolgreich bestanden werden kann.
Re-Factoring bezieht sich auf den Prozess des Änderns des Codes, ohne dessen Hauptfunktionalität oder Verhalten zu ändern.
Vorteile der testgetriebenen Entwicklung:
- Reduziert den Zeitaufwand für Nacharbeiten
- Hilft, Fehler oder Fehler sehr schnell zu untersuchen
- Hilft dabei, schnelleres Feedback zu erhalten
- Fördert die Entwicklung sauberer und besserer Designs
- Verbessert die Produktivität des Programmierers
- Ermöglicht jedem Teammitglied, in Abwesenheit eines bestimmten Teammitglieds mit der Arbeit am Code zu beginnen. Dies fördert den Wissensaustausch und die Zusammenarbeit.
- Gibt dem Programmierer das Vertrauen, die große Architektur einer Anwendung einfach zu ändern.
- führt zur Erstellung eines umfangreichen Codes, der flexibel und einfach zu warten ist.
Lassen Sie uns nun alles über verhaltensgesteuerte Entwicklung verstehen.
Was ist verhaltensgesteuerte Entwicklung (BDD)?
Geschäftsgesteuerte Entwicklung (BDD) ist ein Testansatz, der aus der TDD-Methode (Test-Driven Development) abgeleitet wurde. In BDD basieren Tests hauptsächlich auf dem Systemverhalten. Dieser Ansatz definiert verschiedene Möglichkeiten, um ein Feature basierend auf seinem Verhalten zu entwickeln. In den meisten Fällen wird der Given-When-Then-Ansatz zum Schreiben von Testfällen verwendet. Nehmen wir zum besseren Verständnis ein Beispiel:
- Wenn der Benutzer gültige Anmeldeinformationen eingegeben hat
- Wenn ein Benutzer auf die Anmeldeschaltfläche klickt
- , wird diese angezeigt Die erfolgreiche Validierungsnachricht
Wie oben gezeigt, wird das Verhalten in einer sehr einfachen englischen Sprache dargestellt, die auch als gemeinsame Sprache bezeichnet wird. Dies hilft jedem im Team, der für die Entwicklung verantwortlich ist, das Funktionsverhalten zu verstehen.
Beispielsweise kann versucht werden, einen einfachen browserübergreifenden Test basierend auf Anweisungen durchzuführen, die auf mehreren Geräten getestet werden sollen, wie in der Abbildung gezeigt Video.
Probieren Sie kostenlose Browsertests in der Real Device Cloud aus.
Hauptvorteile von Behavioral-Driven Entwicklungsansatz:
- Hilft durch die Verwendung einer nichttechnischen Sprache, ein breiteres Publikum zu erreichen.
- Konzentriert sich darauf, wie sich das System aus Sicht des Kunden und des Entwicklers verhalten soll
- BDD ist eine kostengünstige Technik.
- Reduziert den Aufwand zur Überprüfung von Fehlern nach der Bereitstellung.
Das folgende Bild zeigt einen typischen BDD-Vorgang:
Bildquelle: Tutorialspoint
Wie hilft BDD in SDLC?
Das Debuggen der Fehler in den letzten Phasen des Entwicklungslebenszyklus erweist sich häufig als sehr teuer Ich habe. In den meisten Fällen ist die Unklarheit beim Verständnis der Anforderungen die Hauptursache dafür. Man muss sicherstellen, dass alle Entwicklungsanstrengungen auf die Erfüllung vorgegebener Anforderungen ausgerichtet bleiben. Mit BDD können Entwickler Folgendes tun:
- Ermöglichen, dass die Anforderungen in einem Standardansatz mit einfachem Englisch definiert werden.
- Bietet verschiedene Möglichkeiten, um reale Szenarien zum Verständnis zu veranschaulichen Anforderungen
- Bereitstellung einer Plattform, auf der Tech- und Non-Tech-Teams zusammenarbeiten und die Anforderungen verstehen können.
Was ist eine durch Akzeptanztests gesteuerte Entwicklung?
Bei der ATDD-Technik (Acceptance Test-Driven Development) wird ein einzelner Abnahmetest aus Sicht des Benutzers geschrieben.Es konzentriert sich hauptsächlich auf die Befriedigung des Funktionsverhaltens des Systems. Diese Technik versucht, die Frage zu beantworten: Funktioniert der Code wie erwartet?
Diese Technik verbessert die Zusammenarbeit zwischen Entwicklern, Benutzern und Qualitätssicherungsdiensten mit einem gemeinsamen Fokus zur Definition der Akzeptanzkriterien. Im Folgenden sind einige der wichtigsten Vorgehensweisen bei ATDD aufgeführt:
- Analyse und Diskussion der realen Szenarien
- Festlegen der Akzeptanzkriterien für diese Szenarien
- Automatisierung der Abnahmetestfälle
- Konzentration auf die Entwicklung dieser Anforderungsfälle
Vorteile von ATDD
- Anforderungen werden ohne sehr klar analysiert Unklarheiten
- Fördert die Zusammenarbeit zwischen teamübergreifenden Mitgliedern
- Der Abnahmetest dient als Leitfaden für den gesamten Entwicklungsprozess.
Hauptunterschiede: TDD vs BDD vs ATDD
Parameter | TDD | BDD | ATDD |
Definition | TDD ist eine Entwicklungstechnik, die sich mehr auf die Implementierung eines Features BDD ist eine Entwicklungstechnik, die sich auf das Systemverhalten konzentriert. |
ATDD ist eine ähnliche Technik wie BDD und konzentriert sich mehr auf die Erfassung der Anforderungen |
|
Teilnehmer | Entwickler | Entwickler, Kunden, QAs | Entwickler, Kunden, QAs |
Verwendete Sprache | Geschrieben in einer Sprache, die der für die Feature-Entwicklung verwendeten ähnlich ist (z. Java, Python usw.) | Einfaches Englisch, (Gurke) | Einfaches Englisch, Essiggurke |
Hauptfokus | Unit-Tests | Grundlegendes zu Anforderungen | Schreiben von Abnahmetests |
Verwendete Tools | JDave, Cucumber , JBehave, Spec Flow, BeanSpec, Gherkin Concordian, FitNesse | Gherkin, Dave, Gurke, JBehave, Spec Flow, BeanSpec, Concordian | TestNG, FitNesse, EasyB, Spectacular, Concordian, Thukydides |
Das Verständnis der Funktionsweise dieser Methoden kann Entwicklern und anderen an Software beteiligten Personen helfen Entwicklung herausfinden, welche Strategie am besten funktioniert, um ihren Zweck zu erfüllen. Abhängig von der Art des Projekts und den angestrebten Ergebnissen kann die richtige Methode (oder sogar ein Methodenmix) eingesetzt werden, um bestimmte Anforderungen auf effizienteste Weise zu erfüllen.