TDD with Contracts - ein Erfahrungsbericht

 
Conference Day - 21. Mai
 
16:45
 
Testen
Raum Kraichgau
 
Basic

Der Einsatz von Softwareverträgen (Contracts) in der Agilen Software-Entwicklung mit Java ist ein noch junger Ansatz, obwohl die zugrunde liegenden Kernkonzepte aus den Anfängen der Objektorientierten Programmierung (OOP) stammen.

Die Verbindung von Test Driven Development (TDD) mit Softwareverträgen zu "TDD with Contracts" verspricht die Verfeinerung des aus Testfällen bestehenden Sicherheitsnetzes von TDD durch Vertragsklauseln.

Dieses verfeinerte Sicherheitsnetz sollte - so die erste These der Referenten - auch subtile Fehlerkonstellationen schon in der Entwicklung des Systems durch Verletzungen von Post-Conditions und Klassen-Invarianten aufdecken können.

Die zweite These besagt, dass durch die explizite Anzeige der Vertragsklauseln in der Entwicklungsumgebung (Eclipse JDT) eine der Hauptursachen von Softwarefehlern adressiert wird: Fehlerhafte Annahmen über die Semantik der öffentlichen Schnittstelle einer Klasse.

Erfahrungen in Schweden zeigen, dass 80% aller Fehler in Softwaresystemen auf die Verletzung von Pre-Conditions und Klassen-Invarianten zurückzuführen sind. Ursache sind fehlerhafte Annahmen über die Bedingungen, die erfüllt sein müssen, damit eine Methode korrekt ausgeführt werden kann. Und dies gilt nicht nur für Klassen, die von dritter Seite erstellt wurden, sondern ebenso für selbsterstellte Klassen.

Die zugrunde liegenden impliziten Annahmen für die Nutzung der öffentlichen Schnittstelle der Klassen explizit zu formulieren und zur Entwicklungszeit in Erinnerung zu rufen und die Einhaltung dieser Verträge zur Laufzeit zu überwachen, das ist das Ziel von Softwareverträgen.

Prof. Dr. Roland Küstermann und Hagen Buchwald stellen erste Erfahrungen mit TDD with Contracts in einem Pilotprojekt mit Java und C4J (Contracts for Java) an der DHBW Karlsruhe vor.

Hagen Buchwald

andrena objects ag
Hagen Buchwald, Vorstand der andrena objects ag, Karlsruhe, studierte von 1988 bis 1994 Wirtschaftsingenieurwesen am Karlsruhe Institute of Technology (KIT), der damaligen Universität Karlsruhe. Er ist seit 1994 in der IT Industrie tätig und hat als Vorstand eines IT-Beratungsunternehmens viel Erfahrung in der Konzeption und Durchführung von Software-Projekten für Banken und Versicherungen aufgebaut. Seit Oktober 2011 verstärkt er das Vorstandsteam der andrena objects bei der Umsetzung der Vision, dass Software Made in Germany zum Qualitätsbegriff werden kann, wenn es gelingt, die Stärken des deutschen Ingenieurdenkens auf das Software-Engineering zu übertragen.

Prof. Dr. Roland Küstermann

DHBW Karlsruhe
Prof. Dr. Roland Küstermann ist Professor an der DHBW Karlsruhe.