Software Quality Assurance (SQA) ist ein gut geplanter und systematischer Ansatz zur Bewertung der Qualität von Software. Es überprüft die Einhaltung von Standards, Prozessen und Verfahren für Softwareprodukte. SQA umfasst den systematischen Prozess, mit dem sichergestellt wird, dass Standards und Verfahren festgelegt werden und auch während des gesamten Lebenszyklus der Softwareentwicklung und des Testzyklus eingehalten werden.
Das Hauptaugenmerk des Testens liegt darauf, die Fehler im System so früh wie möglich zu identifizieren, da die frühzeitige Behebung der Fehler kostengünstiger ist. Laut den Zahlen einer Studie wird die Behebung von Fehlern nach der Veröffentlichung teurer und wirkt sich auch auf das Vertrauen der Endbenutzer in die Anwendung aus.
Eine IBM-Studie zeigt, dass die Behebung von Fehlern, die nach der Freigabe der Anwendung festgestellt wurden, 100-mal teurer ist
- Zusammenfassend ist die Qualitätssicherung von Software wichtig, weil sie Folgendes ermöglicht:
- Stellen Sie sicher, dass das Projekt den Anforderungen entspricht
- Fehler frühzeitig verhindern, erkennen und beheben
- Projektrisiken minimieren
- Erhöhen Sie die Produktzuverlässigkeit
- Verbessern Sie die Endbenutzererfahrung
- Prüfung und Einhaltung von Standards
- Release-Management und Release-Kontrolle
- Reduzierte Entwicklungskosten
- Reduzierte Wartungskosten
Vorteile des Testens
- Verkürzte Markteinführungszeit
- Hohe Qualität
- Testressourcen auf dem neuesten Stand der Technik
- Flexible Beschaffung
- Fokus auf strategische Prioritäten
SQA-Aktivitäten finden in jeder Phase des Entwicklungslebenszyklus statt. Die Phasen sind in Bereiche unterteilt: Anforderungserfassung, Systemdesign sowie Codierung und Test und endgültige Freigabe.
- Überprüfung - Der Prozess der Bewertung eines Systems oder einer Komponente, um festzustellen, ob die Produkte einer bestimmten Entwicklungsphase die zu Beginn dieser Phase auferlegten Bedingungen erfüllen.
- Validierung - Der Prozess der Bewertung eines Systems oder einer Komponente während oder am Ende des Entwicklungsprozesses, um festzustellen, ob es bestimmte Anforderungen erfüllt
Während der Anforderungsanalyse, des Entwurfs und der Codierung der Anwendungsentwicklung müssen die Ausgaben jeder Stufe gemessen, überwacht und verwaltet werden, damit jede Ausgabe anhand ihrer vordefinierten Beendigungskriterien überprüft werden kann. Wenn der endgültige Antrag die Codierungs- und Integrationsphase abgeschlossen hat, muss er anhand der ursprünglichen Antragsanforderungen validiert und von der Geschäftsleitung als bestandener Validierungstest abgemeldet werden. In jeder Phase dieser Anwendungsentwicklung müssen die Anstrengungen während der Entwicklung nach Möglichkeit verbessert werden, um die Qualität zu verbessern und wettbewerbsfähig zu bleiben.
Der Unterschied zwischen Verifizierung, Validierung und Messung der Softwarequalität
Ein wirksamer Überprüfungsaufwand muss nachweisen, dass alle Anforderungen korrekt ausgeführt wurden. Dies erfolgt durch Testen der Anforderungen anhand der Produktlieferung. Diese Tests können erneut ausgeführt werden, um dieselben Ergebnisse zu erzielen, falls das System zu einem späteren Zeitpunkt geändert wird.
Die Überprüfung zeigt, dass ein Produkt seine festgelegten Anforderungen an vordefinierten Meilensteinen während des Entwicklungslebenszyklus erfüllt. Durch die Validierung wird überprüft, ob das System nach Abschluss des Entwicklungslebenszyklus die Anforderungen des Kunden erfüllt.
Bei der Validierung wird das Endprodukt bewertet, um zu überprüfen, ob die Anwendung den Erwartungen und Anforderungen des Kunden entspricht. Es ist ein dynamischer Mechanismus zum Validieren und Testen des tatsächlichen Produkts. Bei den Validierungstests werden Methoden wie Black-Box- (Funktions-) Tests, Gray-Box-Tests und White-Box- (Struktur-) Tests usw. verwendet.
Die Qualität der Software, die in jedem Prozess oder Modell erstellt wird, wird anhand der Anzahl der erzeugten Fehler beschrieben. In der Regel sind die häufigsten Metriken für Fehler:
- Gesamtzahl der Testfälle
- Anzahl der bestandenen Testfälle
- Anzahl der fehlgeschlagenen Testfälle
- Anzahl blockierter Testfälle
- Anzahl der gefundenen Mängel
- Anzahl der akzeptierten Mängel
- Anzahl der zurückgewiesenen Mängel
- Anzahl der zurückgestellten Mängel
- Anzahl kritischer Mängel
- Anzahl der geplanten Teststunden
- Anzahl der tatsächlichen Teststunden
- Anzahl der nach der Lieferung gefundenen Fehler
Verschiedene Aktivitäten der Qualitätssicherung sind wie folgt:
- Aufrechterhaltung der Qualität des Projekts gemäß den Spezifikationen und Geschäftsanforderungen.
- Fehlervermeidung und formale Methoden für andere Techniken zur Fehlervermeidung.
- Fehlerreduzierung.
- Inspektion, formelle und informelle Überprüfungen: Direkte Fehlererkennung und -beseitigung ohne Ausführung des Projektszenarios.
- Testen des Projekts auf Fehlerbeobachtung und Fehlerbehebung.
- Risiko-Einschätzung.
- Techniken und Methoden zur Fehlerverfolgung.
- Software-Fehlertoleranz.
- Abschließende Bemerkungen und Pflege der Berichte.
Warum die Software-Qualitätssicherung sehr wichtig ist
- Benutzerperspektive : Die Qualitätssicherung von Softwareanwendungen ist gut, um die Anwendung aus der Endbenutzerperspektive zu betrachten und abhängig davon ein Szenario zu erstellen.
- Fehler in der Testphase : Es ist gut, die Probleme frühzeitig zu finden und zu beheben, bevor der Kunde sie beispielsweise in der Produktion findet.
- Projektrisiko : Die Qualitätssicherung zu Beginn eines Projekts spielt eine Schlüsselrolle bei der Minderung der Risiken, die während der Spezifikationsphase identifiziert wurden.
- Zuverlässigkeit : Erhöht das Vertrauen der Endbenutzer, wenn sie feststellen, dass die Anwendung ihren Erwartungen entspricht. Selbst ein negatives Szenario mit vollständigem Ausfall erhöht das Vertrauen des Endbenutzers und macht die Anwendung intelligent.
- Erleichtert dem Endbenutzer : Es hilft dem Endbenutzer, Geschäftsaufgaben auszuführen, ohne über technische Kenntnisse in der Anwendung zu verfügen. Leicht verständliche Anwendungen haben mehr Benutzer als herkömmliche Anwendungen.
- Prävention von Sicherheitsverletzungen : Hilft Softwareentwicklern , die Benutzerdaten in der Produktionsumgebung zu schützen und Datenlecks in der Testumgebung zu erkennen.
- Lastverständnis : Es hilft, die unter Simulation arbeitende Anwendung zu verstehen und die Probleme zu beheben, nachdem Sie die tatsächliche Belastung des Systems in der Produktionsumgebung verstanden haben.
- Automatisierung : Testen der Software mit dem Ziel, den Testaufwand zu reduzieren und Funktionen schneller und kostengünstiger bereitzustellen. Es hilft beim Erstellen von Software mit besserer Qualität mit weniger Aufwand.