Automatisierte Tests
Mythen zu automatisieren Tests
Eine dieser Aussagen hat bestimmt jeder schonmal gehört, aber stimmen sie auch?
Tests verhindern Fehler
Durch automatisierte kann sicher gestellt werden, dass einmal entdeckte Fehler nicht wieder auftreten, oder zumindest vor der Inbetriebnahme erkannt und behoben werden können. Doch auch eine Testabdeckung von 100% bietet keinen 100 prozentigen Schutz. Softwareprogramme sind komplexe Systeme mit vielfältigen Wechselwirkungen. Diese können nicht immer alle im Voraus bedacht werden. Aber es kann sichergestellt werden, dass alle definierten Prozesse wie erwartet funktionieren.
Tests sind unnötig
Jeder gute Softwareentwickler prüft beim Entwickeln, od die umgesetzte Funktion auch funktioniert. Doch entwickeln sich Funktionalitäten in der Regel iterativ. Immer wieder kommen neue Anforderungen, die umgesetzt werden wollen. Diese zu testen ist einfach. In dem Fall aber auch sicher zu stellen, dass alle bisherigen Funktionalitäten weiterhin funktionieren, kann so nicht immer sicher gestellt werden. Besonders unter Zeitdruck werden Sonderfälle schnell außen vor gelassen. Hier können automatisierte Tests auf einfache, schnelle und kostengünstige Weise helfen.
Tests sind aufwändig
Das Erstellen von Tests während des Entwicklungsprozesses ist natürlich zeitaufwändig, schließlich müssen die Tests noch zusätzlich definiert werden. Bei einem Programm, welches nur für einen konkreten Anwendungsfall geschrieben wurde, ist dies wirklich zu aufwändig. Besonders dann wenn im Falle von neuen Anforderungen, das Programm einfach neu erstellt werden kann. Dies ist aber im gewerblichen Bereich selten der Fall. Hier sollen langfristige Lösungen entwickelt werden. Die Kunden erwarten, dass Änderungen schnell, preiswert und vor allem ohne Störfälle umgesetzt werden. Hier können automatisierte Tests punkten. Der Entwickler kann sich ganz auf die Umsetzung der Änderung konzentrieren und weiß auch im Anschluss, dass der Rest noch genauso funktioniert wie vorher. Ab diesem Zeitpunkt sparen automatisierte Tests Zeit, Geld und Nerven. Auch schaffen sie Vertrauen beim Kunden und dass ist manchmal das beste Verkaufsargument.
Tests bringen keinen Mehrwert
Wem einfachere und flexibleren Programmstrukturen nicht ausreichen, dem können besonders BDD (Behavior Driven Development) noch weitere Mehrwerte bieten:
- top aktuelle Bedienungsanleitung, die direkte mit dem Produkt erstellt wird und somit auch alle Bilder und Texte zur aktuellen Version passen
- Erstellen sie automatisiert Schulungsvideos für ihre Mitarbeiter und Kunden. Passend zum Stand ihrer Software.
Tests machen fit für die Zukunft
Dies gilt nur dann wenn die wirklich testgetrieben entwickelt wurde. Beim testgetrieben Entwickeln werden Komplexitäten reduziert und Abhängigkeiten flexibel gelöst. Kein Entwickler will sich das Entwickeln schwerer machen als nötig. Beim testgetrieben Entwickeln fallen komplexe Implementierungen schnell auf. Der Code wird kleinteiliger und einfacher zu verstehen. Abhängigkeiten erschweren das Testen ungemein. Da dies beim testgetriebenen Entwickeln in der Regel vermieden wird, sind die Lösungen am Ende flexibler nutzbar. Abhängigkeiten, auch wenn sie aus einer Anforderung stammen, werden nicht Teil des Codes, sondern nur seiner Parametrisierung. So kann der Code einfach auf geänderte Anforderungen reagieren.