Wie geht eigentlich gutes Qualitätsmanagement in der Software-Entwicklung?
„Qualität ist kein Zufall, sie ist immer das Ergebnis angestrengten Denkens.“ John Ruskin (britischer Schriftsteller)
Wir stellen hohe Ansprüche an die Qualität unserer Softwarelösungen. Als modernes und zukunftsorientiertes Unternehmen streben wir danach, unseren Kunden gute, nachhaltige und bedarfsgerechte Lösungen anzubieten. Unsere Lösungen sind in der Regel lange im Einsatz. Grundlage dafür sind die permanente Weiterentwicklung unserer Softwarelösungen und die fortlaufende Verbesserung von Prozessen und Standards innerhalb unseres Unternehmens.
Wie sieht das konkret aus? Die Qualitätssicherung und die Qualitätskontrolle stellen im Software-Qualitätsmanagement der vedisys® AG die beiden Hauptkomponenten dar. Beide basieren auf unserem Ticket-System sowie zusätzlichen Dokumentationen, insbesondere Projektdokumentationen und Patch Notes.
Das Ticket-System stellt das Hauptwerkzeug zur Dokumentation aller Produktänderungen jeglicher Art dar. Als zentrales Werkzeug im Software-Qualitätsmanagement erfasst es alle relevanten Vorfälle. Über Tickets werden alle mit dem jeweiligen Vorfall in Zusammenhang stehenden Abläufe, Planungen und Ergebnisse dokumentiert. Dazu gehören alle Kommunikationen mit den jeweils Beteiligten, Protokolle und Ergebnisse von Analysen und Abstimmungen, Projekt- und Zeitpläne.
Tickets können internen und externen Personen zur Bearbeitung oder Analyse zugewiesen werden. Über die Möglichkeit der Zuweisung und Priorisierung werden Workflows abgebildet. Außerdem können über die Zuweisungen auch Support-Stufen wie First- oder Second-Level-Support umgesetzt werden.
Softwareänderungen werden aus unterschiedlichen Gründen erforderlich. Auslöser können die Ergänzung von neuen oder die Verbesserung von vorhandenen Features sein oder die Fehlerbehebung, ausgelöst durch externe Anwender oder interne Qualitätskontrolle. Jeder Auslöser wird zunächst als Ticket erfasst und dem zuständigen Entwickler oder Projektleiter zugeordnet. Unabhängig von der auslösenden Quelle wird dann geprüft, ob die Anforderung in eine Softwareänderung umgesetzt wird. Dieses Vorgehen stellt sicher, dass sich die Qualitätssicherung bereits frühzeitig einen Überblick verschaffen und den weiteren Ablauf koordinieren kann.
Unter Berücksichtigung der Prioritäten und des Umsetzungsaufwandes werden üblicherweise mehrere Softwareänderungen durch die Release-Planung als Release Candidate (RC) zusammengefasst. Bei Bedarf kann ein geplantes Release auch aus nur einer einzigen Softwareänderung bestehen. Sobald ein Release Candidate an die Qualitätssicherung ausgeliefert wurde, beginnen die Testprozesse der Qualitätskontrolle. Die Basis hierfür sind alle zum Release Candidate gehörenden Tickets im Teststatus sowie die zugehörigen Patch Notes. Im Anschluss an diese Einzel-Modultests werden auch immer Integrationstests durchgeführt, um gegebenenfalls unerwünschte Wechselwirkungen mit dem Gesamtsystem aufzudecken. Werden Fehler entdeckt, geht das Ticket zurück an die Entwicklung. Die Entwicklung analysiert und behebt die Fehler, es wird getestet usw. Dieser Kreislauf wird solange fortgesetzt, bis alle Tests erfolgreich waren und alle Tickets erledigt sind.
Es liegt in der Verantwortung des Entwicklers beziehungsweise des zuständigen Teamleiters, welche Testmethoden in der Qualitätskontrolle zum Einsatz kommen. Neben dem normalen Ausführen des Codes und der manuellen Prüfung der Ergebnisse kommen gerne auch manuelle oder automatisierte Unit-Tests zum Einsatz. Im Web-Umfeld setzen wir z.B. Tools wie Swagger und Postman zur Dokumentation und zum Testen von Services ein.
Zur Vermeidung von Inselwissen erfolgt ein permanenter Austausch und Wissenstransfer zwischen den Entwicklern in regelmäßig stattfindenden Meetings unterstützt durch Methoden wie Pair Programming. Zudem existiert ein unternehmensinterner und für alle Entwickler verbindlicher Code Style Guide.
Nach erfolgreichem Abschluss aller Modul- und Integrationstests erfolgt die Auslieferung des neuen Release.