what is software quality assurance
Was ist Software-Qualitätssicherung?
Software-Qualitätssicherung (SQA) ist ein Prozess, der sicherstellt, dass alle Softwareentwicklungsprozesse, -methoden, -aktivitäten und -arbeitselemente überwacht werden und den definierten Standards entsprechen. Diese definierten Standards können eine oder eine Kombination von ISO 9000, CMMI-Modell, ISO15504 usw. sein.
SQA umfasst alle Softwareentwicklungsprozesse von der Definition der Anforderungen über die Codierung bis zur Veröffentlichung. Hauptziel ist die Qualitätssicherung.
Was du lernen wirst:
- Software-Qualitätssicherungsplan
- SQA-Aktivitäten
- Standards zur Qualitätssicherung von Software
- Elemente der Software-Qualitätssicherung
- SQA-Techniken
- Fazit
- Literatur-Empfehlungen
Software-Qualitätssicherungsplan
Der als SQAP abgekürzte Softwarequalitätssicherungsplan umfasst die Verfahren, Techniken und Tools, mit denen sichergestellt wird, dass ein Produkt oder eine Dienstleistung den in der SRS (Software Requirement Specification) definierten Anforderungen entspricht.
Der Plan identifiziert die SQA-Verantwortlichkeiten eines Teams und listet die Bereiche auf, die überprüft und geprüft werden müssen. Außerdem werden die SQA-Arbeitsprodukte identifiziert.
Das SQA-Planungsdokument besteht aus den folgenden Abschnitten:
- Zweckabschnitt
- Referenzteil
- Abschnitt zur Verwaltung der Softwarekonfiguration
- Abschnitt zur Problemberichterstattung und Korrekturmaßnahmen
- Abschnitt Tools, Technologien und Methoden
- Codesteuerungsabschnitt
- Aufzeichnungen: Sammlung, Wartung und Aufbewahrung
- Testmethode
SQA-Aktivitäten
Nachstehend finden Sie eine Liste der SQA-Aktivitäten:
# 1) Erstellen eines SQA-Managementplans:
Zu den wichtigsten Aktivitäten gehört die Festlegung eines geeigneten Plans für die Durchführung der SQA in Ihrem Projekt.
Zusammen mit dem SQA-Ansatz, den Sie verfolgen werden, den Engineering-Aktivitäten und der Sicherstellung, dass Sie einen richtigen Talentmix in Ihrem Team haben.
# 2) Einstellen der Checkpoints:
Das SQA-Team richtet verschiedene Kontrollpunkte ein, anhand derer es die Qualität der Projektaktivitäten an jedem Kontrollpunkt / jeder Projektphase bewertet. Dies gewährleistet eine regelmäßige Qualitätsprüfung und ein planmäßiges Arbeiten.
# 3) Software-Engineering-Techniken anwenden:
Was ist der beste Musik-Downloader für Android
Die Anwendung einiger Software-Engineering-Techniken hilft einem Software-Designer, eine qualitativ hochwertige Spezifikation zu erreichen. Zum Sammeln von Informationen kann ein Designer Techniken wie Interviews und FAST (Functional Analysis System Technique) verwenden.
Auf der Grundlage der gesammelten Informationen kann der Softwareentwickler später die Projektschätzung mithilfe von Techniken wie PSP (Projektstrukturplan), SLOC (Quellcodezeile) und FP (Funktionspunkt) vorbereiten.
# 4) Durchführung formeller technischer Überprüfungen:
Eine FTR wird durchgeführt, um die Qualität und das Design des Prototyps zu bewerten.
In diesem Prozess wird ein Treffen mit dem technischen Personal durchgeführt, um die tatsächlichen Qualitätsanforderungen der Software und die Designqualität des Prototyps zu erörtern. Diese Aktivität hilft bei der Erkennung von Fehlern in der frühen Phase von SDLC und reduziert den Nacharbeitsaufwand in den späteren Phasen.
# 5) Eine Multiteststrategie haben:
Mit Multi-Test-Strategie meinen wir, dass man sich nicht auf einen einzelnen Testansatz verlassen sollte, sondern dass mehrere Testarten durchgeführt werden sollten, damit das Softwareprodukt aus allen Blickwinkeln gut getestet werden kann, um eine bessere Qualität sicherzustellen.
# 6) Durchsetzung der Prozesseinhaltung:
Diese Aktivität besteht auf der Notwendigkeit der Einhaltung von Prozessen während des Softwareentwicklungsprozesses. Der Entwicklungsprozess sollte sich auch an die definierten Verfahren halten.
Diese Aktivität ist eine Mischung aus zwei Unteraktivitäten, die im Folgenden ausführlich erläutert werden:
(i) Produktbewertung:
Diese Aktivität bestätigt, dass das Softwareprodukt die Anforderungen erfüllt, die im Projektmanagementplan ermittelt wurden. Es stellt sicher, dass die festgelegten Standards für das Projekt korrekt eingehalten werden.
(ii) Prozessüberwachung:
Diese Aktivität überprüft, ob während der Softwareentwicklung die richtigen Schritte ausgeführt wurden. Dies erfolgt durch Abgleichen der tatsächlich durchgeführten Schritte mit den dokumentierten Schritten.
# 7) Kontrolle des Wandels:
In dieser Aktivität verwenden wir eine Mischung aus manuellen Verfahren und automatisierten Tools, um einen Mechanismus für die Änderungskontrolle zu erhalten.
Durch die Validierung der Änderungsanforderungen, die Bewertung der Art der Änderung und die Steuerung des Änderungseffekts wird sichergestellt, dass die Softwarequalität während der Entwicklungs- und Wartungsphase erhalten bleibt.
# 8) Auswirkungen von Änderungen messen:
Wenn das QA-Team einen Fehler meldet, behebt das betreffende Team den Fehler.
Danach sollte das QS-Team die Auswirkungen der Änderung ermitteln, die durch diese Fehlerbehebung hervorgerufen wird. Sie müssen nicht nur testen, ob die Änderung den Fehler behoben hat, sondern auch, ob die Änderung mit dem gesamten Projekt kompatibel ist.
Zu diesem Zweck verwenden wir Softwarequalitätsmetriken, mit denen Manager und Entwickler die Aktivitäten und vorgeschlagenen Änderungen vom Beginn bis zum Ende von SDLC beobachten und erforderlichenfalls Korrekturmaßnahmen einleiten können.
# 9) Durchführen von SQA-Audits:
Das SQA-Audit überprüft den gesamten tatsächlichen SDLC-Prozess und vergleicht ihn anschließend mit dem festgelegten Prozess.
Es wird auch überprüft, ob das Team in den Statusberichten tatsächlich berichtet hat oder nicht. Diese Aktivität deckt auch Probleme mit Verstößen auf.
# 10) Aufzeichnungen und Berichte pflegen:
Es ist wichtig, die erforderlichen Unterlagen zu SQA aufzubewahren und die erforderlichen SQA-Informationen mit den Stakeholdern zu teilen. Die Testergebnisse, Prüfungsergebnisse, Überprüfungsberichte, Dokumentationen zu Änderungsanforderungen usw. sollten zur späteren Bezugnahme aufbewahrt werden.
# 11) Gute Beziehungen verwalten:
In der Tat ist es sehr wichtig, die Harmonie zwischen der Qualitätssicherung und dem Entwicklungsteam aufrechtzuerhalten.
Wir hören oft, dass sich Tester und Entwickler oft überlegen fühlen. Dies sollte vermieden werden, da dies die Gesamtqualität des Projekts beeinträchtigen kann.
Standards zur Qualitätssicherung von Software
Im Allgemeinen kann SQA die Einhaltung eines oder mehrerer Standards verlangen.
Einige der beliebtesten Standards werden nachfolgend erläutert:
ISO 9000: Dieser Standard basiert auf sieben Qualitätsmanagementprinzipien, mit denen die Unternehmen sicherstellen können, dass ihre Produkte oder Dienstleistungen auf die Kundenbedürfnisse abgestimmt sind. “
Die folgenden 7 Prinzipien von ISO 9000 sind in der folgenden Abbildung dargestellt:
CMMI-Ebene: CMMI steht für Capability Maturity Model Integration . Dieses Modell stammt ursprünglich aus der Softwareentwicklung. Es kann verwendet werden, um die Prozessverbesserung in einem Projekt, einer Abteilung oder einer gesamten Organisation zu steuern.
5 CMMI-Pegel und ihre Eigenschaften sind im folgenden Bild beschrieben:
Eine Organisation wird bewertet und mit einem Reifegrad (1-5) bewertet, der auf der Art der Bewertung basiert.
Test Maturity Model Integration (TMMi): Basierend auf CMMi konzentriert sich dieses Modell auf den Reifegrad beim Softwarequalitätsmanagement und -test.
Das folgende Bild zeigt 5 TMMi-Werte:
Wenn sich ein Unternehmen auf einem höheren Reifegrad bewegt, erreicht es eine höhere Fähigkeit zur Herstellung hochwertiger Produkte mit weniger Fehlern und erfüllt die Geschäftsanforderungen genau.
Elemente der Software-Qualitätssicherung
Es gibt 10 wesentliche Elemente von SQA, die unten als Referenz aufgeführt sind:
- Software Engineering Standards
- Technische Überprüfungen und Audits
- Softwaretests zur Qualitätskontrolle
- Fehlersammlung und -analyse
- Änderungsmanagement
- Bildungsprogramme
- Lieferantenverwaltung
- Sicherheitsmanagement
- Sicherheit
- Risikomanagement
SQA-Techniken
Es gibt verschiedene Techniken für SQA. Auditing ist die weit verbreitete Haupttechnik. Wir haben jedoch auch einige andere wichtige Techniken.
Verschiedene SQA-Techniken umfassen:
- Prüfung: Die Prüfung umfasst die Überprüfung der Arbeitsprodukte und der zugehörigen Informationen, um festzustellen, ob die Standardprozesse eingehalten wurden oder nicht.
- Überprüfung : Ein Meeting, bei dem das Softwareprodukt sowohl von internen als auch von externen Stakeholdern geprüft wird, um deren Kommentare und Zustimmung einzuholen.
- Code-Inspektion: Es ist die formalste Art der Überprüfung, bei der statische Tests durchgeführt werden, um Fehler zu finden und das Wachstum von Fehlern in späteren Stadien zu vermeiden. Es wird von einem ausgebildeten Mediator / Peer durchgeführt und basiert auf Regeln, Checklisten, Ein- und Ausstiegskriterien. Der Prüfer sollte nicht der Autor des Codes sein.
- Konstruktionsinspektion: Die Entwurfsprüfung erfolgt anhand einer Checkliste, die die folgenden Bereiche des Software-Entwurfs prüft:
- Allgemeine Anforderungen und Design
- Funktions- und Schnittstellenspezifikationen
- Konventionen
- Rückverfolgbarkeit der Anforderungen
- Strukturen und Schnittstellen
- Logik
- Performance
- Fehlerbehandlung und Wiederherstellung
- Testbarkeit, Erweiterbarkeit
- Kopplung und Zusammenhalt
- Simulation: Die Simulation ist ein Werkzeug, das die reale Situation modelliert, um das Verhalten des untersuchten Systems virtuell zu untersuchen.
- Funktionsprüfung: Es ist eine QS-Technik, die überprüft, was das System tut, ohne zu berücksichtigen, wie es funktioniert. Diese Art von Black-Box-Test konzentriert sich hauptsächlich auf das Testen der Systemspezifikationen oder -funktionen.
- Standardisierung: Standardisierung spielt eine entscheidende Rolle bei der Qualitätssicherung. Es verringert die Mehrdeutigkeit und das Rätselraten und sichert so die Qualität.
- Statische Analyse: Es handelt sich um eine Softwareanalyse, die von einem automatisierten Tool durchgeführt wird, ohne das Programm tatsächlich auszuführen. Diese Technik wird häufig zur Qualitätssicherung in medizinischen, nuklearen und Luftfahrtsoftware eingesetzt. Softwaremetriken und Reverse Engineering sind einige beliebte Formen der statischen Analyse.
- Exemplarische Vorgehensweisen: Software-Walkthrough oder Code-Walkthrough ist eine Art Peer-Review, bei dem der Entwickler die Mitglieder des Entwicklungsteams anleitet, das Produkt durchzugehen und Fragen zu stellen, Alternativen vorzuschlagen, Kommentare zu möglichen Fehlern, Standardverletzungen oder anderen Problemen abzugeben.
- Pfadtest: Es ist ein White-Box-Testtechnik Dabei wird die vollständige Zweigabdeckung sichergestellt, indem jeder unabhängige Pfad mindestens einmal ausgeführt wird.
- Belastbarkeitstest: Diese Art von Tests wird durchgeführt, um zu überprüfen, wie robust ein System ist, indem es unter hoher Last getestet wird, d. H. Über normale Bedingungen hinaus.
- Six Sigma: Six Sigma ist ein Qualitätssicherungsansatz, der auf nahezu perfekte Produkte oder Dienstleistungen abzielt. Es ist in vielen Bereichen einschließlich Software weit verbreitet. Das Hauptziel von Six Sigma ist die Prozessverbesserung, sodass die produzierte Software zu 99,76% fehlerfrei ist.
Fazit
SQA ist eine Dachaktivität, die während des gesamten Software-Lebenszyklus eingesetzt wird.
Die Qualitätssicherung von Software ist sehr wichtig, damit Ihr Softwareprodukt oder Ihre Dienstleistung auf dem Markt erfolgreich ist und die Erwartungen des Kunden erfüllt.
Es gibt verschiedene Aktivitäten, Standards und Techniken, die Sie befolgen müssen, um sicherzustellen, dass die zu liefernde Software von hoher Qualität ist und eng mit den Geschäftsanforderungen übereinstimmt.
Ich hoffe, Sie hätten durch diesen informativen Artikel eine klare Vorstellung vom Konzept der Software-Qualitätssicherung bekommen !!
Literatur-Empfehlungen
- Zertifizierungen für Softwaretests und Qualitätssicherung - Teil 2
- Was sind die Qualitätsmerkmale?
- Falscher Gott der Qualität gegen wahre Menschen - Wer ist für die Softwarequalität verantwortlich?
- Unterschied zwischen Qualitätssicherung und Qualitätskontrolle (QA vs QC)
- Perfect Software Testing Resume Guide (mit Software Tester Resume Sample)
- Verwendung der Poka-Yoke-Technik (Fehlerprüfung) zur Verbesserung der Softwarequalität
- Gegenseitiges Verständnis beim Testen: Ein Schlüssel für die Bereitstellung einer Qualitätssoftware
- Software Testing QA Assistant Job