Es ist keine Überraschung, dass die meisten kritischen Fehler in diesem Bereich das Ergebnis einer Mischung von Parametern sind, die so nicht erwartet wurden. Der sagenumwobene »Heisenbug« zum Beispiel ist ein Fehler, der verschwindet oder sich verändert, sobald versucht wird, ihn zu ergründen oder zu isolieren. Für C-Programmierer ist er das Ergebnis von nicht-initialisierten automatischen Variablen, gleichwohl aber auch eine Frustrationsquelle, da sogar die Beobachtung des Codes ausreicht, um ihn zu verändern. Hier gilt ein systemnahes Unit-Testen als kritisch. Modul- oder Unit-Tests ermöglichen das Einfügen von Fehlern und somit das Testen der Fehlerhandhabung in einer Weise, wie es in einer Produktionsumgebung nicht möglich wäre.
In der Theorie hört es sich an wie ein simpler Plan: die Tests einfach durchführbar und die Testergebnisse einfach verständlich machen. Praktisch allerdings kann dies eine große Herausforderung bedeuten. In der Vergangenheit wurden diverse Varianten von Tests erstellt und von verschiedenen Entwicklern gepflegt, oftmals auch mit verschiedenen Werkzeugen:
Werden Tests auf diese Weise partitioniert, lässt sich jede Testvariante einer anderen Entwicklergruppe zuordnen und von dieser pflegen, anstatt auf alle Mitarbeiter des gesamten Entwicklungsteams aufgeteilt zu werden. In der Tat ist es in den meisten Unternehmen ziemlich unmöglich, dass ein QS-Ingenieur einen Entwicklertest durchführt oder ein Entwickler einen Systemtest.
Um die Qualität zu verbessern, müssen diese Barrieren überwunden werden. Es muss für jedes Mitglied des Entwicklungsteams möglich sein, jeden Test zu jeder Zeit auf jeder Version der Anwendung durchzuführen. Der Schlüssel zu einem solchen Arbeitsablauf ist eine gemeinsame Test-Kollaborationsplattform, die alle Tests mit ihren Voraussetzungen und erwarteten Ergebnissen erfasst (Bild 2). Entwickler sollten einzelne Test oder aber alle Tests per Knopfdruck durchführen können. Zusätzlich ist es essenziell, dass die Entwickler in der Lage sind, die Fehler in fehlerhaften Tests schnell zu beseitigen.