Apps & Software

11 Wissenswertes zur Software-Qualitätssicherung (SQA)

11 Wissenswertes zur Software-Qualitätssicherung (SQA)


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Qualitätssicherung ist für die Softwareentwicklung ebenso wichtig wie für jedes andere Produkt oder jede andere Dienstleistung. Während es der Fluch vieler Softwareentwickler sein kann, existiert es aus gutem Grund.

Hier ist der Grund.

Was ist Qualitätssicherung in der Softwareentwicklung?

SQA, kurz für Software Quality Assurance, ist der Prozess der kritischen Analyse und Aufrechterhaltung festgelegter Anforderungen für die Entwicklung zuverlässiger Produkte wie Software. Ein gut konzipiertes SQA-System umfasst alle Softwareentwicklungsprozesse, angefangen von der Definition der Anforderungen bis hin zur Codierung, zum Testen und zu allen anderen dazwischen liegenden Prozessen vor der Veröffentlichung.

Es muss wiederholt werden, dass das Hauptziel einer SQA darin besteht, vor allem Qualität zu gewährleisten.

Dies kann die externe Festlegung von Standards durch eine Einrichtung wie die Internationale Organisation für Normung (ISO) sein, kann aber auch für interne und branchenübliche Standards gelten.

Der Prozess ist unglaublich wichtig, um die Glaubwürdigkeit eines Unternehmens in einem ausgewählten Bereich aufrechtzuerhalten und das Vertrauen der Kunden in ihre Produkte zu stärken. Es trägt auch zur Verbesserung der Workflow-Effizienz bei und bietet häufig einen echten Wettbewerbsvorteil gegenüber weniger QS-orientierten Wettbewerbern.

Für viele ISO-Standards kann ein Unternehmen die Akkreditierung durch eine externe Wirtschaftsprüfungsgesellschaft beantragen. Auf diese Weise erhält eine Organisation eine offizielle Akkreditierung durch einen externen Prüfer, mit der sie nachweisen können, dass sie diesen Standards entsprechen.

VERBINDUNG: 15 LUSTIGE SOFTWARE-GLITCHES, DIE SIE GIGGELN WERDEN

Ein häufiges Beispiel hierfür ist die ISO / IEC 9000-Reihe, die viele Unternehmen suchen, um dafür zu werben, dass ihre QS-Verfahren "zweckmäßig" sind. Unternehmen werden versuchen, eine Akkreditierung in den relevanten Standards innerhalb der Serie zu erhalten, die für ihre Aktivitäten und Produkte am besten geeignet ist.

Die Qualitätssicherung der Softwareentwicklung als formalisierter Prozess kann ihre Wurzeln in der Fertigungsindustrie haben. Es wurde seitdem von vielen anderen Branchen auf der ganzen Welt übernommen.

Jeder QS-Prozess wie bei der Softwareentwicklung soll sicherstellen, dass das Endprodukt den Anforderungen und Erwartungen des Kunden entspricht. Fachleute in diesem Sektor arbeiten während des gesamten Lebenszyklus der Entwicklung bestimmter Software sowohl an der Entwicklung als auch an der Implementierung des Prozesses.

Es ist von Natur aus ein proaktiver Prozess, bei dem Prozessentwicklung, Fehlererkennung / -behebung / -prävention und kontinuierliche Verbesserung im Vordergrund stehen.

Die Qualitätssicherung in der Softwareentwicklung sollte nicht mit Softwaretests verwechselt werden. Während es auch von entscheidender Bedeutung ist und normalerweise einen großen Teil des QS-Prozesses ausmacht, konzentriert es sich normalerweise darauf, einfach Fehler und Irrtümer in der Software zu identifizieren.

Software-Tester wenden in der Regel strenge Testverfahren an, um Abweichungen von den festgelegten Anforderungen oder Mängel ("Fehler") zu beseitigen, die vor der Veröffentlichung des Produkts behoben werden müssen.

Softwaretests sind praktisch nur ein Zahnrad im Rad der Softwarequalitätssicherung, nicht der gesamte Prozess. Beispielsweise werden beim Testen normalerweise nur Probleme erkannt, nicht behoben oder behoben - im Gegensatz zu Software-QS-Spezialisten.

Sie können es mit dem Unterschied zwischen Qualitätssicherung und Qualitätskontrolle vergleichen. Letzteres ist eher ein Korrekturinstrument, das produktorientiert und reaktiv ist. Ersteres soll proaktiv und prozessorientiert sein und die Parameter der Qualitätskontrolle definieren. Mit anderen Worten, QA ist der General und QC die Truppen.

Fachleute für Software-Qualitätssicherung verwalten, verfolgen und bewerten den gesamten Prozess von der Wiege bis zur Bahre über einen festgelegten, standardisierten Prozess. Theoretisch hilft dies dabei, Schluckauf im Entwurfsprozess zu identifizieren, um Verbesserungsmaßnahmen zu ermöglichen, die den Prozess in Zukunft rationalisieren können.

Durch eine strenge und ehrliche Bewertung aller Teile des Software-Design-Prozesses kann das Entwicklungsunternehmen seinen Kunden versichern, dass alle angemessenen Maßnahmen ergriffen wurden, um sicherzustellen, dass ihre Produkte von höchster Qualität sind.

Warum ist eine Qualitätssicherung für die Softwareentwicklung erforderlich?

Wie bereits erwähnt, ist SQA eine wichtige Komponente bei der Entwicklung vieler Produkte, einschließlich Software. Der QS-Prozess in der Softwareentwicklung hilft Unternehmen dabei, Produkte und Dienstleistungen zu entwickeln, die zumindest den Erwartungen und Anforderungen ihrer Kunden entsprechen.

Durch die formelle Erstellung von Methoden und Verfahren, die internationalen oder branchenüblichen Standards entsprechen, sollten Qualitätssicherungsprozesse in der Lage sein, Fehler zu erkennen und zu beheben, bevor sie zu einem ernsthaften Problem werden.

"Abhängig von der Größe des Unternehmens kann die Qualitätssicherung verschiedene Unteraufgaben umfassen. Im Kern schafft der Qualitätssicherungsprozess eine bestimmte Qualität. Da sich die Softwareanforderungen ständig ändern und die Teams neue Ziele hinzufügen, muss das Qualitätssicherungsteam dies sicherstellen Die neu hinzugefügten Ziele oder Anforderungen wirken sich nicht negativ auf die Softwarequalität aus. " - Mittel.

Aus diesem Grund benötigen QA-Teammitglieder andere Fähigkeiten als Softwareentwickler. Qualitätssicherung erfordert in der Regel disziplinierte, sich wiederholende Menschen, die nicht akzeptieren, dass das Nichtfinden von Fehlern bedeutet, dass ein Produkt fehlerfrei ist.

Mitarbeiter der Qualitätssicherung müssen außerdem über ausreichend Selbstvertrauen, Selbstsicherheit und die Fähigkeit verfügen, jederzeit kreativ zu denken. Die besten QS-Experten werden sich mit den Nuancen der gesamten Anwendung in der Entwicklung vertraut machen und sollten bei ihren Aufgaben sehr effizient sein. Gut konzipierte QS-Systeme sollten den Prozess jedoch so reibungslos wie möglich gestalten.

QS-Experten für Softwareentwicklung sind von Natur aus ebenfalls umstritten, was Entwickler häufig irritieren kann. Auf der anderen Seite bleiben sie jedoch gerade und schmal, ohne dass ein Mikromanagement erforderlich ist.

In der Branche wächst der Glaube, dass Entwickler wahrscheinlich am besten in der Lage sind, auch die Qualitätssicherung für die von ihnen entwickelte Software zu gewährleisten. Dies kann jedoch eine falsche Wirtschaft sein. Wie bei jeder kreativen Rolle in jeder Branche kann es manchmal schwierig sein, etwas, das Sie selbst erstellt haben, kritisch zu bewerten.

Softwareentwickler sind, um es anders auszudrücken, oft zu sehr auf die feineren Details fokussiert, um die Auswirkungen auf das Gesamtbild zu sehen - das endgültige Softwareprodukt.

Der Prozess der Qualitätssicherung der Softwareentwicklung, einschließlich Tests, kann entweder von einer engagierten Person oder von einem kleinen Team durchgeführt werden. und entweder intern oder an unabhängige Stellen ausgelagert werden. Um optimale Ergebnisse zu erzielen, sollten QS-Teams eng mit Entwicklern zusammenarbeiten, da dies tendenziell zu einer produktiveren Arbeitsumgebung für alle Beteiligten führt.

Dies ermöglicht auch persönliche Gespräche, die einige interessante Lösungen für die unzähligen Probleme liefern können, auf die etwas so Komplexes wie die Softwareentwicklung unweigerlich stößt. Es bietet auch ein dringend benötigtes Gleichgewicht zwischen der Rolle des Entwicklers, da QS-Teams den Nutzen des Produkts für Dritte, ihre Kunden, prüfen.

Während einige Unternehmen begonnen haben, den Bedarf an engagierten QS-Mitarbeitern neu zu bewerten, stellen viele andere fest, dass eine geringere Berücksichtigung der Qualität tendenziell zu einer Zunahme von Kundenbeschwerden und Umsatzverlusten führt.

Welche SQA-Standards gibt es?

Es gibt verschiedene internationale Qualitätssicherungsstandards auf der ganzen Welt, aber einige der beliebtesten sind die folgenden.

  • ISO / IEC 9000-Serie - Als einer der anerkanntesten und angesehensten Qualitätssicherungsstandards basieren diese auf 7 grundlegenden Managementprinzipien. Diese sind; Kundenorientierung, Führung, Mitarbeiterengagement, Prozessansatz, Verbesserung, evidenzbasierte Entscheidungsfindung und Beziehungsmanagement. Von den Serien sind einige der relevantesten ISO / IEC 9126 und ISO / IEC 9241-11.
  • ISO / IEC 25000 - Dieser Standard ist allgemein als Standard bekannt, der Richtlinien für Softwarequalitätsanforderungen und -bewertung (SQuaRE) enthält. Er hilft Unternehmen dabei, die Prozesse in Bezug auf Softwarequalitätsanforderungen und deren Bewertungen zu verbessern. Diese Norm hat seitdem ISO 9126 und ISO 14598 ersetzt.
  • ISO / IEC 12119 - Dieser Standard behandelt Softwarepakete, die an den Kunden geliefert werden. Es konzentriert sich nicht auf den Produktionsprozess der Kunden.
  • CMMI-Stufen 1-5 - Dieser Standard steht für Capability Maturity Model Integration und ist einer der vielen Softwareentwicklungsprozesse, die Standards gewidmet sind. Es kann eingesetzt werden, um die Prozessverbesserung während eines Projekts, in einer bestimmten Abteilung oder in der gesamten Organisation zu steuern. Jedes Level von 1 bis 5 (Level 5 am höchsten sein) wird basierend auf der Integrität und Wirksamkeit der Prozesse eines Unternehmens vergeben.
  • IEEE-Standards - IEEE hat verschiedene Standards, die sich auf Softwareentwicklung und -tests beziehen. Dazu gehören: IEEE 829, IEEE 1061, IEEE 1059, IEEE 1008, IEEE 1012, IEEE 1028, IEEE 1044, IEEE 1044-1, IEEE 830, IEEE 730, IEEE 1061 und IEEE 12207.
  • BS EN-Normen - BS EN oder British Standard haben auch verschiedene Standards, die für die Softwareentwicklung relevant sind. Einige der relevantesten sind BS 7925-1 und 7925-2.

Was beinhaltet der SQA-Prozess?

Jeder SQA-Prozess besteht in der Regel aus zehn wesentlichen Elementen. Dies sind im Großen und Ganzen:

  • Software-Engineering-Standards
  • Technische Überprüfungen und Audits
  • Softwaretests zur Qualitätskontrolle
  • Fehlersammlung und -analyse
  • Änderungsmanagement
  • Bildungsprogramme
  • Lieferantenverwaltung
  • Sicherheitsmanagement
  • Sicherheit
  • Risikomanagement

Wie jedes Qualitätssicherungssystem umfasst der SQA-Prozess im Allgemeinen auch die folgenden allgemeinen Aktivitäten. Diese Liste ist alles andere als erschöpfend und soll nur auf einige der kritischeren Elemente hinweisen.

1. Es muss ein übergreifender Managementplan erstellt werden

Einer der wichtigsten Schritte in jedem Qualitätssicherungssystem ist die Formulierung eines Managementplans.

Dies schließt Verweise auf relevante internationale Standards sowie gegebenenfalls auf bestimmte Industriestandards ein.

Der Plan wird dann die Verfahren, Richtlinien und anderen Prozesse des Unternehmens diesen Standards zuordnen, um zumindest deren Einhaltung sicherzustellen. Dies kann auch Aktivitäten umfassen, die die erwarteten Mindeststandards überschreiten.

Ein SQA-Managementplan sollte auch den allgemeinen Ansatz beschreiben, den die Organisation während des gesamten Entwicklungsprozesses verfolgen wird, z. B. welche bestimmten Engineering-Aktivitäten durchgeführt werden.

Außerdem wird sichergestellt, dass das Entwicklungsteam über eine ausreichende Anzahl von entsprechend erfahrenen, qualifizierten und gegebenenfalls zertifizierten Mitarbeitern verfügt, um das Projekt abzuschließen. Es sollte auch enthalten, welche Maßnahmen gegebenenfalls ergriffen werden, wenn Teile des Entwicklungsprozesses an Drittunternehmen oder Auftragnehmer ausgelagert werden.

2. Der SQA-Prozess umfasst eine Reihe von Prüfpunkten und Audits

Jedes gut entwickelte SQA-System wird auch eine Reihe von Kontrollpunkten entlang des Lebenszyklus des Entwicklungsprogramms festlegen. Diese dienen als regelmäßige Bewertungen des Projektfortschritts mit Überprüfungen der Standards und des Entwicklungsumfangs der Arbeiten, um sicherzustellen, dass das Projekt nicht aus der Bahn gerät.

Solche Überprüfungen stellen auch die Qualität des Produkts zu diesem bestimmten Zeitpunkt sicher und bewerten häufig (aber nicht immer) die Kompetenz und Leistung des technischen Personals. Solche Kontrollen sollten an strategischen Punkten des Entwicklungsprozesses durchgeführt werden und regelmäßige, unangekündigte "Stichproben" durchführen, um sicherzustellen, dass das Mandat des Qualitätssicherungssystems eingehalten wird.

3. Eine gute SQA wendet Software-Engineering-Techniken an

Jede SQA, die es wert ist, gesalzen zu werden, wird einige Hilfsmittel auch für Software-Engineering-Techniken anwenden. Diese helfen Softwareentwicklern dabei, die höchstmögliche Qualität zu erzielen und die oft engen Zeitpläne einzuhalten.

Beispiele hierfür sind: Interviews, Funktionsanalysesystemtechniken (FAST), Projektstrukturpläne (PSP), Quellcodezeile (SLOC) und Funktionspunktschätzung.

4. SQA-Systeme stützen sich stark auf formale technische Überprüfungen

Formale technische Überprüfungen (FTR) sind ein weiterer unglaublich wichtiger Bestandteil von SQA-Systemen. Diese bewerten, wie der Name schon sagt, die Qualität und das Design jeder Prototypsoftware.

Diese Überprüfungen werden normalerweise zu Beginn des Projekts durchgeführt und helfen dabei, Fehler so schnell wie möglich zu erkennen, sodass später keine Nacharbeiten mehr erforderlich sind.

5. Multitests sind ein wichtiger Teil des Prozesses

Ein gutes SQA-Verfahren basiert nicht nur auf einem Testansatz. Es sollten mehrere Testtypen verwendet werden, um sicherzustellen, dass jedes Softwareprodukt aus mehreren Blickwinkeln getestet wird, um seine Qualität weiter zu gewährleisten.

6. Die Durchsetzung der Prozesseinhaltung ist wichtig

Die Einhaltung von Prozessen ist in der Regel eine Mischung aus zwei Unteraktivitäten: Produktbewertung und Prozessüberwachung. Ersteres bestätigt, dass das Softwareprodukt tatsächlich die Anforderungen erfüllt, für die es entwickelt wird, und stellt sicher, dass es alle vorgegebenen Standards erfüllt.

Letzterer überprüft, ob während des gesamten Softwareentwicklungsprozesses die richtigen Schritte unternommen wurden. Dies wird normalerweise erreicht, indem die tatsächlich unternommenen Schritte mit den dokumentierten Schritten im SQA-Managementplan verglichen werden.

7. SQA-Systeme müssen flexibel sein

Jeder gute SQA-Plan muss flexibel genug sein, um sich an Änderungen anzupassen. Sie sollten Verfahren integrieren, die erforderlich sind, um die Änderungen zu bewältigen, die während eines Softwareentwicklungsprozesses auftreten müssen.

Änderungen müssen über ein formalisiertes System behandelt werden, das jedes einzelne protokolliert und validiert. Der Validierungsprozess prüft, ob alle vorgenommenen Änderungen den festgelegten Standards entsprechen und realisierbar sind.

Alle vorgenommenen Änderungen, unabhängig davon, ob Fehler behoben wurden oder nicht, müssen ebenfalls bewertet und ihre Auswirkungen, falls vorhanden, gemessen werden. Durch diese Überprüfungen wird sichergestellt, dass alle zur Behebung von Fehlern vorgenommenen Änderungen wirksam sind und dass sie mit dem gesamten Projekt kompatibel sind.

Dies wird normalerweise mithilfe verschiedener Softwarequalitätsmetriken erreicht, mit denen Manager und Entwickler Aktivitäten beobachten und Änderungen von Anfang bis Ende verfolgen können. Bei Bedarf werden auch Korrekturmaßnahmen durchgeführt.

9. Das große "A" - Audits

Audits sind für viele technische Mitarbeiter ein Fluch und von grundlegender Bedeutung für eine gut geölte SQA. Diese überprüfen die allgemeine "Fitness" des Managementsystems und "Drilldown" in den Fortschritt des Softwareentwicklungsprozesses sowie die Einhaltung von Standards.

Durch Audits wird auch überprüft, ob die Statusberichte aller Teammitglieder den tatsächlichen Status des Projekts korrekt wiedergeben und etwaige Verstöße aufdecken.

10. Aufzeichnungen, Aufzeichnungen, Aufzeichnungen

Jeder, der jemals das "Vergnügen" hatte, ein Qualitätssystem jeglicher Art zu verwalten, weiß, wie wichtig gute Aufzeichnungen und Berichte sind. Der SQA-Prozess ist nicht anders, und alle erforderlichen Dokumente sollten auf dem neuesten Stand gehalten und unter allen relevanten Aktionären verbreitet werden.

Dinge wie Testergebnisse, Prüfungsergebnisse, Überprüfungsberichte, Dokumentation von Änderungsanforderungen usw. sollten zur späteren Bezugnahme aufbewahrt werden.

11. Ein großartiges SQA-System wird auch dazu beitragen, gute Beziehungen zwischen allen Parteien aufzubauen

Und schließlich ist ein sehr wichtiger Teil einer SQA die Aufrechterhaltung guter Beziehungen. Der gesamte Prozess verläuft reibungsloser, wenn die Harmonie zwischen der Qualitätssicherung und den Entwicklungsteams aufrechterhalten wird.

Dies "schmiert nicht nur die Räder" und ermöglicht es Qualitätssicherungsaktivitäten, Hindernisse zu überwinden, sondern trägt auch dazu bei, ein Gefühl der Kameradschaft zwischen verschiedenen Abteilungen aufzubauen. Niemand lässt seine Arbeit gerne von jemand anderem überprüfen, daher ist es am besten, den Prozess freundlich und konstruktiv zu gestalten.

Und das ist ein Wrap. Wir hoffen, dass Sie es inzwischen geschafft haben, zu verstehen, warum es SQA gibt und warum Sie es ernst nehmen sollten.

Ja, es kann schmerzhaft sein, aber letztendlich stellt die Qualitätssicherung sicher, dass das Endprodukt das Beste ist, das es sein kann, und dass Ihre Kunden es tatsächlich kaufen.

Die Aufrechterhaltung einer hohen Qualität und der Aufbau von Vertrauen in Ihren Kundenstamm sind, wie sie sagen, Gold wert.


Schau das Video: Was ist ein QMS Qualitätsmanagement System nach ISO 9001? (Januar 2023).