Verbesserung der Codekomplexität und Wartbarkeit durch Test-Driven Development

Bachelor Studiengang IT Security

Manuela Gastinger, BSc

Betreuer: FH-Prof. Dipl.-Ing. Dr. Sebastian Schrittwieser, Bakk.

Ausgangslage

Die Entwicklung von Programmen unterzieht sich einem ständigen Wandel. Neben neuen Werkzeugen werden auch immer wieder neue Methoden vorgestellt, welche den Programmierablauf optimieren sollen. Test-Driven Development (TDD) ist eine solche Methode. Sie wurde von Kent Beck vorgestellt und soll dabei helfen, Code schneller entwickeln zu können und eine optimale Designstruktur zu erstellen.

Bei der Methode TDD werden zuerst die Softwaretests geschrieben, welche die Logik des Programmcodes überprüfen, bevor der eigentliche Code geschrieben wird. Hierzu muss man sich zu Anfang den Verlauf des Programmes gut überlegen und sich ein genaues Bild über das zu schreibende Programm und dessen Überprüfungen machen.

In vielen Arbeiten wurde TDD kritisch, aber auch lobend erwähnt. Oftmals gilt es als zu „langsam“ und „umständlich“, da das Schreiben der Tests einige Zeit in Anspruch nimmt, und die Entwicklung so langsamer voran geht.

Ziel

Diese Arbeit vergleicht die beiden Programmiermethoden Test-Driven Development und Test-Last Development (TLD). Dabei wird ermittelt, welche der beiden Methoden bei einem sehr einfachen Beispiel bessere Ergebnisse liefert.

Hierzu wurde ein Experiment durchgeführt, welches mit den Visual-Studio-Werkzeugen Code Metrics und Code Metrices durchgeführt wurde. Dabei wurden die jeweiligen Werte der Methoden TDD und TLD verglichen. Zusätzlich wurde ein Experteninterview durchgeführt, um die Meinung eines langjährigen Softwareentwicklers (Thomas Goldberger) bezüglich TDD zu erheben.

Ergebnis

Im Zuge dieser Arbeit wurden die Begriffe TDD und TLD erklärt und im Experiment zwei identische Codebeispiele mit den oben genannten Messwerkzeugen verglichen. Die Messungen ergaben, dass in dem Fall dieser Arbeit TDD schlechtere Werte in der Codekomplexität im Tool Code Metrics erzeugt hat. Dieses Tool analysiert das Programm als Ganzes und berechnet einen Wert. Im Gegensatz dazu zeigt Code Metrices die Codekomplexität der einzelnen Funktionen an. Hierbei sind die Werte von TDD besser als bei TLD. Der Wartbarkeitsindex von Code Metrics zeigte hingegen bessere Werte bei TDD, dies bedeutet, dass die Wartbarkeit des Codebeispiels von TDD besser ist als die von TLD.

Beim Experteninterview wurden die positiven und negativen Aspekte von TLD und TDD erläutert. Schlussendlich konnte als Fazit gezogen werden, dass T. Goldberger sich positiv gegenüber der Wartbarkeit durch TDD ausspricht und die Codekomplexität sich ebenfalls durch diese Methode verringert.