Qualitätssicherung
Durch eine gut durchgeführte Qualitätssicherung können Fehler frühzeitig erkannt und behoben werden. Dies spart nicht nur Kosten, sondern sorgt vor allem für zufriedene Kunden. In diesem Beitrag zeigen wir dir, worauf es bei der Qualitätssicherung von Software ankommt, welche Qualitätsmerkmale es gibt und wie die Sicherung abläuft.
Das Wichtigste zusammengefasst
- Bei der Qualitätssicherung wird die zu entwickelnde Software auf die korrekte Umsetzung der Anforderungen geprüft und verbessert.
- Die sechs Qualitätsmerkmale einer Software stammen aus der Norm ISO/IEC 9126. Diese sind Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit und Übertragbarkeit.
- Die Qualitätssicherung lässt sich unkompliziert abbilden, indem Versionsverwaltungssysteme, kontinuierlicher Integration und Auslieferung, manuelle und automatisierte Tests sowie Code-Reviews etabliert werden.
- Auf der obersten Ebene gibt es Komponenten-, Integrations-, System- und Abnahmetests. Während die ersten drei von Entwicklern durchgeführt werden, werden Abnahmetests von dir und deinem Unternehmen durchgeführt.
- Es ist wichtig, die Qualitätssicherung nicht zu vernachlässigen, denn je später ein Fehler entdeckt wird, desto teurer wird er.
Was ist Software-Qualitätssicherung?
Die Qualitätssicherung prüft die zu entwickelnde Software auf die korrekte Umsetzung der Implementierung anhand der Anforderungen und anhand des Entwurfs. Es handelt sich um eine Phase der Softwareentwicklung, die sehr eng mit der Implementierung und dem Deployment zusammenhängt.
Die Qualitätssicherung setzt den Fokus auf die Qualität der resultierenden Software, nicht jedoch auf den Prozess selbst. Für eine mögliche Prüfung des Prozesses der Softwareentwicklung sind andere Normen zuständig.
Das Ziel ist es, Fehler, Mängel und Abweichungen ausfindig zu machen und zu korrigieren. Dies erfolgt, in dem es für verschiedene Bereiche unterschiedliche Testarten gibt.
Kriterien für Software-Qualität
Die Qualität einer Software lässt sich anhand sechs verschiedener Kriterien beurteilen. Diese werden von der Norm ISO/IEC 9126 vorgegeben, einem Modell zur Sicherstellung von Software-Qualität.
- Das Merkmal der Funktionalität prüft, ob die Software die gewünschten Funktionen besitzt. Dies erfolgt anhand der definierten Anforderungen Dabei wird besonders auf die Angemessenheit, Sicherheit, Interoperabilität, Konformität, Ordnungsmäßigkeit und Richtigkeit Wert gelegt.
- Bei der Zuverlässigkeit wird geprüft, ob die Software ein gewünschtes Leistungsniveau über einen definierten Zeitraum erbringen kann. Besonders wird dabei auf die Fehlertoleranz, die Konformität, die Reife und die Wiederherstellbarkeit der Software geachtet.
- Die Benutzbarkeit der Software achtet auf die Qualität aus Sicht der Anwender und prüft, ob die Software attraktiv, leicht bedienbar, einfach erlernbar, verständlich und konform mit gängigen Normen der Benutzbarkeit sind.
- Die Effizienz ist ein technisches Merkmal, das prüft, ob die Software die gewünschte Leistung mit einem angemessenen Ressourceneinsatz erbringen kann. Auch hier wird auf die Konformität geachtet, vor allem aber auf das Zeit- und Verbrauchsverhalten der Anwendung.
- Bei der Änderbarkeit wird geprüft, ob die Software einfach anpassbar ist. Dabei kann es sich um Fehlerkorrekturen, aber auch um neue Anforderungen handeln. Das Merkmal legt besonderen Wert auf die Analysierbarkeit, Modifizierbarkeit, Stabilität, Testbarkeit und die Konformität mit Normen.
- Die Übertragbarkeit sagt aus, wie einfach sich die Software auf andere Umgebungen übertragen lässt. Dabei wird geprüft, ob die Software gut anpassbar, austauschbar und installierbar ist. Auch die Koexistenz mit anderen Systemen parallel und die Konformität mit Normen wird geprüft.
Nicht jedes der Merkmale wird von jedem gleich stark wahrgenommen. Jeder Projektbeteiligte nimmt die Qualität unterschiedlich wahr:
- Innere Qualität: Entwickler einer Software beurteilen tendenziell eher die Wartbarkeit, die Effizienz, die Übertragbarkeit sowie die Änderbarkeit der Software.
- Äußere Qualität: Benutzer der Software oder du selbst als Kunde sehen tendenziell eher die Funktionalität und die Benutzbarkeit.
Wie wird die Qualitätssicherung durchgeführt?
Oftmals läuft die Qualitätssicherung parallel zur Implementierung ab, um Fehler frühzeitig zu erkennen und zu beheben.
Eine Herangehensweise, ist die testgetriebene Entwicklung, bei der automatisierte Software-Tests pro Funktionalität vor dem Schreiben von Programmcode geschrieben werden. Die Tests werden dabei so lange ausgeführt, bis sie letztendlich erfolgreich sind.
Aber auch andere Herangehensweisen sind denkbar. In einigen Fällen ist die Qualitätssicherung sogar ein vollständig eigenständiger Schritt. Interessanter als der genaue Ablauf sind die Mechanismen, die an verschiedenen Stellen im System greifen.
- Durch die Verwendung von Versionsverwaltungssystemen und den dazugehörigen Pull Requests, also Anfragen im Versionsverwaltungssystem, um neuen Code in die Software zu bringen, kann jede Änderung nachvollzogen und darauf reagiert werden. Beinhaltet die Änderung Qualitätsprobleme, wird diese abgelehnt und muss angepasst werden.
- Mithilfe der kontinuierlichen Integration (engl. Continous Integration, kurz CI), können Änderungen direkt nach einer Code-Änderung oder nach einem Pull-Request automatisiert gebaut und in der Folge getestet werden.
- Durch manuelle Entwicklertests können grobe Fehler aus Anwendersicht direkt abgefangen werden. Durch eine Testautomatisierung kann die Qualitätssicherung direkt nach jedem Pull-Request oder nach jeder Code-Änderung durchgeführt werden.
- Gemeinsame Code-Reviews sorgen dafür, dass Entwickler sich gegenseitig überprüfen, dessen Programmcode gemeinsam durcharbeiten und mögliche Problemstellen identifizieren und verbessern.
- Durch die Unterteilung in Entwicklungs-, Test- und Produktivsystem können Änderungen auf dem Entwicklungs-System vom Entwickler getestet werden und auf dem Test-System durch die Qualitätssicherung überprüft werden, bevor sie produktiv geschaltet werden. Dies erfolgt mithilfe der kontinuierlichen Auslieferung (engl. Continous Delivery, kurz CD).
Welche Arten von Software-Tests gibt es?
Des Weiteren gibt es verschiedene manuelle und automatisierte Testarten, die in der Qualitätssicherung eingesetzt werden können.
- Komponententests (engl. Unit Tests) testen unabhängig voneinander einzelne Module. Diese werden von Entwicklern geschrieben und automatisiert ausgeführt. Bei dieser Art von Tests werden nur einzelne Funktionen auf ein korrektes Ergebnis getestet, jedoch nicht das Zusammenspiel mit anderen Komponenten.
- Bei Integrationstests werden nur Komponenten im Zusammenspiel anhand deren Schnittstellen getestet. Auch diese werden von Entwicklern geschrieben und automatisiert ausgeführt.
- Die nächste Stufe sind die Systemtests, bei denen ein System als ganze Einheit getestet wird. Oftmals wird hier versucht, die produktive Umgebung nachzuahmen, um möglichst realitätsnahe Ergebnisse zu erhalten. An dieser Stelle werden sowohl funktionale Anforderungen als auch nicht-funktionale Anforderungen automatisiert getestet.
- Abnahmetests erfolgen manuell durch dich als Auftraggeber. In diesem Test prüfst du, ob die Software alle gewünschten Anforderungen zufriedenstellend erfüllt. Waren diese Tests erfolgreich, kann die Software in den produktiven Betrieb überführt werden.
Selbstverständlich gibt es noch eine ganze Menge an weiteren Testarten, die hier nicht aufgeführt sind. Diese sind jedoch meistens Unterarten der genannten Tests. Beispielsweise muss auch die Last- oder die Leistung der Software getestet werden, was Unterarten der Systemtests sind.
Gründe für Software-Qualitätssicherung
Die Gründe für die Qualitätssicherung sind vielfältig: Je früher ein Fehler entdeckt wird, desto weniger Kosten entstehen durch diesen. Werden Fehler erst im laufenden Betrieb erkannt, ist der Aufwand der Behebung oftmals weitaus höher als in den Phasen davor.
Es kommt aber noch schlimmer: Wenn die Kunden deines Unternehmens die ersten sind, die einen Fehler entdecken, sinkt das Vertrauen und die Zufriedenheit. Was das für Folgen hat, muss nicht weiter erläutert werden.
Daher ist es wichtig, die Qualitätssicherung nicht zu vernachlässigen. Die Vorteile sind ein besseres Produkt, zufriedenere Kunden und weniger Kosten. Davon profitieren die Entwickler, du als Auftraggeber und am meisten die Anwender der Software deines Unternehmens.
Berechne dein Projekt jetzt kostenfrei & unverbindlich für Webanwendungen & Apps.