@funthomas424242

Testgetriebene Entwicklung Teil 1: Testwissen für Java-Entwickler - Mehr als Qualitätssicherung

. Java Magazin, (2013)

Abstract

Der Artikel bietet eine sehr gute Einführung in die testgetriebene Entwicklung. Es werden die Konzepte und die Für und Wider erläutert auch mit Ausblick auf BDD.

Description

* Die Tests in diesem Teil nutzen zur Verifikation ausschließlich den Zustand der Objekte - in weiteren Teilen werden andere Methoden aufgezeigt. * Der Test wird bei TDD als Mikro Entwurf betrachtet - Es darf nicht mehr in den Test geschrieben werden als unbedingt nötig um den Fehler aufzuzeigen (Fehlerbasierte Tests was dem Autor aber scheinbar nicht auffällt), es darf nur Änderungen am Produktivkode geben um Tests grün zu bekommen und es reicht das sie grün sind wenn Funktionalität fehlt - fehlt ein Test! * Es wird vom F.I.R.S.T. Prinzip ausgegangen ** (F)ast - Test muss schnell ablaufen um häufig ausgeführt zu werden ** (I)ndependent - Test müssen unabhängig sein ** (R)epeatable - Wiederholbarkeit muss garantiert sein. Heisst auch wiederholbar auf jeder Umgebung. ** (S)elf-validationg - Selbstvalidierend durch asserts (hier herscht noch die meine ein explizites Assert pro Test - das würde ich aber aufweichen auf asserts um ein Feature oder Aspekt zu prüfen - technisch also durchaus mehrere asserts) ** (T)imely - Produktiver Kode wird nur geschrieben wenn Tests fail schlagen * Im Artikel wird ein Aufbau für Bezeichnungen von Tests vorgeschlagen in denen das vorangestellte test fehlt - 2015 hat sich aber gezeigt, das ein testXXXX in der Aufrufhierarchie nützlich beim Sichten des Kodes sein kann. * Die Frameworks Hamcrest, FEST-assert und lambdaj werden empfohlen wobei FEST-assert gegenüber hamcrest bevorzugt dargestellt wird. Noch einige Zitate: "Testnamen sollten das getestete Verhalten und nicht die benutzten Funktionen beschreiben ... . Durch diese Sichtweise kommt man von der testgetriebenen zur verhaltensgetriebenen Softwareentwicklung (BDD) ..." "... Story. Sir repräsentiert eine ausführbare Geschäftsfunktion und besteht aus einem oder mehrereren Szenarien."

Links and resources

Tags