Samstag, 31. Dezember 2011

Essentielle Aufgabe der Testautomatisierung

Ich habe bislang in den letzten 3 Jahren 4 erfolgreiche Automatisierungsprojekte abgeschlossen. 3 Punkte waren in jedem Projekt wichtig:
1. Klarheit-Verständnis
Man kann keine Automatisierungsaufgabe mit unklaren Vorgaben lösen. Deshalb war immer die erste Aufgabe für Vollständigkeit und Klarheit in der Softwareentwicklung zu sorgen!
2. Air-Bag- Transparenz
Essentielle Triebkraft der Automatisierungsaufgabe war jeweils der Wunsch des Kunden oder PL's einen Air-Bag zu bekommen und möglichst vor Auslieferung einfach zu wissen wo das Projekt steht. Da beide Parteien in der Regel die Finanzierung übernehmen, ist Transparenz wohl aktuell die Hauptaufgabe
3. Zusammenarbeit-Entwicklungsprozess
Es gibt verschiedene Wege einen Testautomaten zu erstellen. Will man im Projekt jedoch Klarheit und Transparenz erreichen, so ist das eine Aufgabe von allen Projektbeteiligten deren Denken möglichst über das Projekteinführungsende hinaus gehen sollte. Wenn der Software-Code auch über das erste Release hinaus nicht als unveränderbares Artefakt angesehen wird, sondern jede Codezeile, jede Anforderungsbeschreibung, jedes Meeting und jede Dokumentation als Ort und Thema der Zusammenbetrachtet wird, um ein gemeinsames Ziel zu erreichen, dann ist die Testautomatisierung ein geeignetes Mittel der qualitativen Zusammenarbeit in Softwareprojekten

Ich wünsche uns allen eine guten Start ins Jahr 2012!

Donnerstag, 29. Dezember 2011

Was sind kritische Frage zum Erfolgsset?

Die Wahrheit liegt natürlich auch hier auf dem Platz!
Man muss auch Fehler finden! Dazu brauchts natürlich Tester, die mit dem Werkzeug umgehen können! Und unter Tester verstehe ich Fachbereiche, Entwickler und Testingenieure. Hier gilt natürlich für Klarheit zu sorgen. Die Fachlichkeit formalisieren und als Testfälle beschreiben ist gar nicht leicht. Gerade dafür brauchts die Testfixtures (also die Buchstaben zur Testsprache) zeitnah. Und dafür muss der PL sorgen. Hinzu kommt noch eine geeignete Konfigmanagementstrategie. Der verantwortliche Testmanager muss auch unbedingt bedient werden. Die sind typischer Weise ein Testmanagementtool gewöhnt. Eine solche "Konkurrenz" lenkt nur vom Thema Testen ab! Also unbedingt beim Betrieb von Fitnesse planbar und transparent sein!  
Wenns jetzt noch eine Idee zum Refaktoring der Fixtures und Testfälle gibt, dann hat man alle Karten in der Hand die Entwickler zur Erfolgreichen Umsetzung zu treiben. Also agiles Testen ist angesagt!

Was macht das Erfolgsset so erfolgreich?

Gerade Fitnesse (Fitnesse.org) ist im Erfolgsset ein echtes Pfund. Das kleine aber nicht einfach zu handhabende Framework ist nicht nur ein Tool mit Wiki, sondern vor allem regelt es die Zusammenarbeit im Projekt. Philosophisch gesprochen vielleicht das Einzige auf das es ankommt ;-). Es fordert ganz klar die Frage nach der Verantwortlichkeit zum Testen im Projekt. Wo überall die Schuld an Fehlern und die Verschleierung des Aufwands hin und her geschoben werden, findet man mit Fitnesse klare Antworten auf Vorgehensweise und Aufwand, wenn man das Framework bereits früh genug einsetzt. Fitnesse erst in der Endphase eines Projektes einzusetzen macht natürlich auch Sinn. Doch Achtung Manager, es werden fachliche Fragen aufkommen, die man vielleicht nicht hören mag ;-)

Erfolgs-Set für Open Source

Im Open Source Bereich gibt es ein konstruktives Set an Testtools:
Meiner Meinung nach, sollte man diese Tools jedoch gesteuert durch ein übergreifendes Konzept und möglichst vollständig anwenden
- Hudson Automatisierte Buildprozesse mit Subversion. 
- JUnit Bietet Möglichkeiten zum Testen von Codemodulen. 
- Maven ist ein standardisiertes "Makefile" und ermöglicht automatischen Download von Abhängigkeiten und bindet viele Testtools ein
Fitnesse Tests werden in einem Wiki oder Excel erstellt und ermöglichen die direkte Prüfung gegen die Anwendung.
- Selenium ein Web-Testing Framework