Testergesteuerte Entwicklung - Tester-driven development
In der Softwareentwicklung ist testergesteuerte Entwicklung oder fehlergesteuerte Entwicklung ein Anti-Pattern, bei dem die Anforderungen durch Fehlerberichte oder Testergebnisse und nicht beispielsweise durch den Wert oder die Kosten einer Funktion bestimmt werden . Das Konzept wird im Allgemeinen scherzhaft beschworen und impliziert, dass große Mengen an Computercode ohne Rücksicht auf Unit-Tests durch die Programmierer geschrieben werden.
Der Begriff selbst ist ein ironischer Hinweis auf testgetriebene Entwicklung , eine weit verbreitete Methodik in agilen Softwarepraktiken . In der testgetriebenen Entwicklung werden Tests verwendet, um die Implementierung in Richtung auf die Erfüllung der Anforderungen voranzutreiben. Tester-getriebene Entwicklung verkürzt stattdessen den Prozess, indem die Bestimmung von Anforderungen entfernt wird und die Tester (oder das QA-Team ) das ihrer Meinung nach die Software durch den Test- (oder QA-)Prozess steuern lassen.
Projekte , die nach diesem Anti-Pattern entwickelt werden, leiden oft unter extremer Verspätung. Ein weiteres häufiges Problem ist die schlechte Codequalität .
Häufige Ursachen dafür, dass Projekte auf diese Weise durchgeführt werden, sind oft:
- Die Testphase begann zu früh;
- Unvollständige Anforderungen;
- Unerfahrene Tester;
- Unerfahrene Entwickler;
- Schlechtes Projektmanagement .
Die Dinge werden noch schlimmer, wenn die Tester feststellen, dass sie die Anforderungen nicht kennen und daher nicht wissen, wie sie bestimmte Codeänderungen testen können. Die Entwickler der einzelnen Änderungen müssen dann eigene Testfälle schreiben und tun dies gerne, da ihre eigenen Tests normalerweise bestehen und sich ihre Leistungsmessungen verbessern. Auch die Projektleiter freuen sich über die rasante Reduzierung der offenen Change Requests.
Siehe auch
- Extremes Programmieren
- Extreme Programmierpraktiken
- Merkmalskriechen
- Anforderungsmanagement
- Software-Prototyping – Erstellen von Prototypen von Softwareanwendungen, um zu Beginn eines Projekts Feedback von Benutzern zu erhalten