Testgetriebene Entwicklung: Wie diese Methode funktioniert

Was ist testgetriebene Entwicklung?

Testgetriebene Entwicklung: Wie diese Methode funktioniert

Wenn Sie die Komplexität der Software erhöhen, wird die agile Methodik der testgetriebenen Entwicklung (TDD) es wird immer beliebter. Kein Wunder, denn mit TDD können Programmierer sicherstellen, dass vor dem Schreiben des Quellcodes keine Lücken im Software- Design verbleiben. Dies erhöht nicht nur die Qualität der endgültigen Software erheblich , sondern reduziert auch die Wartungskosten.

Testgetriebene Entwicklung wird unter anderem in der extremen Programmierung eingesetzt, die durch Überprüfungen , Tests sowie ständiges Design und Redesign gekennzeichnet ist. Die testgetriebene Entwicklung passt auch zu einem Entwicklungszyklus , der beachtet werden muss, um eine effektive Implementierung zu gewährleisten.

Index
  1. Was ist testgetriebene Entwicklung?
  2. Wie genau funktioniert testgetriebene Entwicklung?
  3. Wie unterscheidet sich TDD von anderen Testmethoden?

Was ist testgetriebene Entwicklung?

Es gibt seit langem verschiedene Methoden zum Testen der Qualität von Programmen. Bereits in den frühen Tagen der Softwareentwicklung wurde die Funktionalität der Programme in den Qualitätsabteilungen von unabhängigen Testern bewertet . Damals wurden die Entwicklung der Software selbst und die Testverfahren als separate Themen betrachtet. Diese Wahrnehmung änderte sich, als Kent Beck, der amerikanische Entwickler hinter extremer Programmierung , das erste Testkonzept startete , das die Reihenfolge der Aufgaben umkehrte: Anstatt zuerst den Quellcode zu schreiben und ihn dann zu testen, das Entwicklerteam Schreiben Sie zuerst die Tests und verwenden Sie dann die Testfälle, um den Code bestmöglich zu schreiben und zu implementieren.

Wenn Sie nicht viel Wissen über Softwareentwicklung haben , klingt dieser Prozess möglicherweise nicht intuitiv, macht aber tatsächlich viel Sinn und funktioniert besser. Während herkömmliche Testmethoden, die anschließend durchgeführt werden , ein Kaskadenmodell oder V anwenden, werden TDD-Prozesse als Zyklus entwickelt . Insbesondere werden Testfälle, die häufig fehlschlagen, absichtlich zuerst identifiziert, und dann wird nur der Code geschrieben, der zum Bestehen der Tests erforderlich ist. Die Komponenten werden dann überarbeitet: Unter Beibehaltung der Funktionen wird der Quellcode nach Bedarf erweitert oder umstrukturiert.

See also  Was ist Lua?: Eine Einführung in die Programmiersprache

Wie genau funktioniert testgetriebene Entwicklung?

Die testgetriebene Entwicklung orientiert sich an den Ergebnissen der von den Entwicklern definierten Testfälle. Seine zyklische Struktur stellt sicher, dass Code nur dann an das Produktionssystem übertragen wird, wenn alle Softwareanforderungen erfüllt sind . Mit anderen Worten, die Codeelemente werden so oft wie nötig überarbeitet und erneut getestet, bis der Test nicht mehr fehlschlägt. Diese Strategie ermöglicht es, die Software nach und nach mit neuen Funktionen anzureichern und nach jedem bestandenen Test neuen Quellcode zu schreiben. Aus diesem Grund wird TDD als inkrementelles Modell der Softwareentwicklung angesehen .

Jeder Test dauert in der Regel nicht länger als ein paar Sekunden oder Minuten, sodass die Ergebnisse schnell im Produktionscode angezeigt werden. Damit Wiederholungen ohne zusätzlichen Aufwand ausgeführt werden können, sind ein TDD- Tool und ein Framework erforderlich . Entwickler verwenden im Allgemeinen Tools zur Build- Automatisierung . wie CruiseControl oder Jenkins, mit denen Sie Komponenten kontinuierlich und fehlerfrei in den Quellcode integrieren können. Andere beliebte Frameworks und Tools für die Java-Entwicklung sind JUnit, Maven und Ant. In der Regel werden Tests immer in derselben Programmiersprache wie der Quellcode geschrieben. Für PHP gibt es unter anderem Ceedling und CMock.

Und wie genau sind die Tests entwickelt? Der Zyklus, dem Programmierer bei der testgetriebenen Entwicklung folgen, wird auch als Rot-Grün-Refaktor bezeichnet und beschreibt jede der Phasen, die erfüllt werden müssen, um eine höhere Effizienz zu erzielen:

  1. Rote Phase ( Phasennetzwerk ) : In dieser Phase muss der Benutzer in die Fußstapfen treten, der den Code problemlos verwenden möchte. Daher wird ein Test geschrieben, der Komponenten enthält, die noch nicht implementiert wurden, um später zu entscheiden, welche Elemente wirklich erforderlich sind, damit der Code funktioniert.
  2. Grüne Phase ( Phase grün ) : Unter der Annahme, dass der Test fehlschlägt und rot markiert ist, übernimmt er die Rolle des Programmierers und versucht , eine einfache Lösung zu finden. Es ist sehr wichtig, nur die erforderliche Codemenge zu schreiben. Der geschriebene Code wird dann in den Produktionscode integriert, so dass der Test grün markiert ist.
  3. Refactoring : In diesem Schritt wird der Produktivcode bereinigt und seine Struktur perfektioniert. Es wird wohl jetzt auf eine Weise fertiggestellt und umstrukturiert, die für Entwickler elegant und verständlich ist. Unter anderem werden Duplikate im Code entfernt und es wird professioneller.
See also  CSS-Tricks: nützliche Schnipsel für Ihr Webprojekt

Es muss berücksichtigt werden, dass sich die Aufgaben nicht überschneiden, dh dass in den Phasen 2 und 3 keine Tests geschrieben werden oder dass in den Phasen 1 und 3 produktiver Code geschrieben wird.

Wie unterscheidet sich TDD von anderen Testmethoden?

Die testgetriebene Entwicklung ist eine Methodik der Entwurfssoftware , die auf Tests oder Tests basiert, um den Prozess zu steuern. Im Gegensatz zu Methoden, die das Testen auf einen späteren Zeitpunkt verschieben, werden TDD-Testfälle früh im Entwurfsprozess durchgeführt. Die in dieser Methodik verwendeten Tests unterscheiden sich in Zweck und Umfang: Der einfachste ist der Modultest oder Unit-Test . Damit werden die einzelnen Komponenten eines Computerprogramms getestet. Andere komplexere Tests sind Funktions- und Integrationstests , die die Interaktion zwischen verschiedenen Teilen des Systems und die Funktionalität der gesamten Software untersuchen .

Aus TDD wurde vor einigen Jahren eine verhaltensgesteuerte Entwicklung (BDD) oder auf Spanisch eine verhaltensgesteuerte Entwicklung entwickelt . Diese Methode richtet sich zunächst nicht nach der Angemessenheit des Codes, sondern nach dem Verhalten, das Sie in der Software beobachten möchten . Einer der Vorteile dieser Strategie besteht darin, dass keine speziellen Codierungskenntnisse erforderlich sind, um die gewünschten Testfälle zu spezifizieren, sodass Qualitätsmanager und andere Interessengruppen in den Entwicklungsprozess einbezogen werden können. Im Allgemeinen kann gesagt werden, dass BDD die beste Methode beim Entwerfen von Tests ist, während TDD zu einer saubereren Architektur führt.

Die folgende Tabelle fasst die Vor- und Nachteile einer testgetriebenen Entwicklung zusammen:

Vorteil Nachteile
Die resultierende Software ist von hoher Qualität und weist weniger Fehler auf. Erfordert Vorkenntnisse in Codierung und längere Lernzeit.
Die Systemarchitektur und der Produktionscode sind leicht zu verstehen und gut strukturiert. Es wird nur die Angemessenheit des Codes überprüft, nicht die Funktionalität der Software.
Die Fehlererkennung ist schnell und die Wartungsarbeiten werden reduziert. In einigen Fällen muss es von anderen Testmethoden begleitet werden.
Durch das Eliminieren von Redundanzen im Code wird ein Überengineering vermieden, dh eine unnötige Komplexität des Produkts.  
See also  Symbolschriftarten: Webdesign mit Vektorpiktogrammen

Obwohl die verschiedenen Testmethoden einzeln implementiert werden können, führt die Anwendung einer Kombination aus testbasierten und verhaltensbasierten Methoden zu einer qualitativ hochwertigeren Software , die auch eine höhere Kundenzufriedenheit bietet.

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *