Die meisten Softwarefehler beruhen auf mangelhaften Testprozessen oder Testinfrastrukturen und nicht auf Problemen bei der Softwarearchitektur. Dies ist das Ergebnis einer Umfrage, die im Auftrag von Electric Cloud, einem Anbieter von Softwareentwicklungslösungen, durchgeführt worden ist.
Befragt wurden 144 Softwareentwickler aus vorwiegend nordamerikanischen Unternehmen, die mindestens 1.000 Mitarbeiter und 50 Entwickler beschäftigen.
- 58% der Befragten bezeichnen Mängel im Testverfahren und in der Test-Infrastruktur als Grund für den letzten größeren Softwarefehler, der in bereits ausgelieferter Software aufgetreten ist. 53% sehen Softwaretests beschränkt durch Rechner-Ressourcen.
- 46% der Softwareentwickler sind der Ansicht, dass für Tests zu wenig Zeit zur Verfügung steht.
- Mehr als ein Drittel der Befragten (36%) glaubt, dass ihr Unternehmen generell zu wenig testet.
Diese Zahlen zeigen, dass sich das Bananenprinzip, also die Lieferung unausgereifter Produkte, deren Fehler erst nachträglich beim Kunden behoben werden, nach wie vor einiger Beliebtheit erfreut. Vollautomatische Software-Testsysteme, die das Testprozedere effizienter und weniger fehleranfällig machen würden, sind noch nicht sehr verbreitet. Nur 12% der an der Umfrage beteiligten Unternehmen setzen solche Systeme ein. 10% der Unternehmen führen Softwaretests sogar noch vollständig manuell durch. Gleichzeitig empfinden Entwickler Softwaretests als eine besonders lästige Tätigkeit, der viele sogar ihre Steuererklärung vorziehen würden.
Für die vertragliche Gestaltung von Software-Projekten ergibt sich daraus, dass der Testphase und ihrer vertraglichen Ausgestaltung besonderes Augenmerk geschenkt werden sollte. Schon bei der Projektplanung sollte genügend Zeit zum Testen reserviert werden. Außerdem sollten klare Regelungen zur Verantwortlichkeit für die durchzuführenden Tests getroffen werden. Schließlich sollten auch Teststandards sowie die Nutzung bestimmer Werkzeuge und Frameworks für automatisierte Software-Tests vertraglich festgelegt werden.
