Gute Qualität garantiert einen reibungslosen Betrieb. Probleme können frühzeitig erkannt und behoben werden. Das spart mittel- und langfristig Kosten. Dem gegenüber hat Qualität kurzfristig ihren Preis, da sich die Qualitätssicherung durch alle Tätigkeiten der Software-Entwicklung zieht. Alle Mitarbeitenden sowie der Kunde sind im Prozess integriert.
Sämtliche Dokumente durchlaufen einen internen Review-Prozess. Richtlinien und GUI-Guidelines müssen aufgestellt werden, Unittests dienen der automatisierten Prüfung der Kernfunktionalität.
Code-Reviews gewährleisten eine gute Qualität des Codes und die Einhaltung der Richtlinien.
Anforderungen müssen präzisiert und auf dem aktuellen Stand gehalten werden.
Automatisierte Build-Prozesse bauen unsere aktuellen Projekte und Produkte über Nacht auf, führen automatisierte Tests (Unit-Tests) durch und stellen neben einer installierbaren Softwareversion und Auswertungen die notwendige Infrastruktur für das Testing (Testdatenbanken, Testdaten) bereit.
Tests erlauben eine strukturierte, durchgängige Qualitätssicherung. Eine Systematische Auswertung dieser Resultate liefert dem Kunden jederzeit einen raschen Einblick in den aktuellen Stand und den Fortschritt der Entwicklung. Am Ende jeder Iteration findet ein vollständiger Systemtest statt. Dieser umfasst alle Testfälle zu den bereits umgesetzten Anwendungsfällen. Im Anschluss an den Systemtest und die Korrektur der gefundenen Mängel kann die Iteration von den Endanwendern im Rahmen eines Anwendertests abgenommen werden.
Bei Abschluss einzelner Pakete wird ein Komponenten-Test durchgeführt.
Bei grösseren Projekten findet wöchentlich ein freier Test statt. Ziel ist es, die neuen Funktionen zu prüfen und ein rasches Feedback bei Abweichungen oder unzureichender Umsetzung zu geben. Ergänzt werden diese Tests durch Simulationen. Dies ist vor allem dann interessant, wenn die Entwicklung einer Komponente abgeschlossen ist und es keine grossen Anpassungen an der Funktionalität und der Benutzeroberfläche gibt.
Voraussetzungen eines guten Test-Prozesses sind sowohl gute Tests als auch geeignete Testumgebungen (in der Regel alle gängigen Umgebungen, die bei den Kunden angetroffen werden), gute Testdaten (keine Abhängigkeiten zwischen Anwendungen) und ein unkompliziertes Handling von Testdatenbanken (einfaches Zurücksetzen und Aufsetzten).