Qualitätssicherung (QS)
Was ist Qualitätssicherung (QS)?
Qualitätssicherung (QS), auf Englisch Quality Assurance (QA), ist jeder systematische Prozess, mit dem festgestellt wird, ob ein Produkt oder eine Dienstleistung bestimmte Anforderungen erfüllt.
Die Qualitätssicherung legt Anforderungen für die Entwicklung oder Herstellung zuverlässiger Produkte fest und hält diese aufrecht. Ein Qualitätssicherungssystem soll das Kundenvertrauen und die Glaubwürdigkeit eines Unternehmens erhöhen, gleichzeitig aber auch die Arbeitsprozesse und die Effizienz verbessern und die Firma wettbewerbsfähiger machen.
Die ISO (Internationale Organisation für Normung) ist eine treibende Kraft hinter den Qualitätssicherungspraktiken und der Abbildung der Prozesse, die zur Umsetzung der Qualitätssicherung verwendet werden. Die Qualitätssicherung wird oft mit der internationalen Norm ISO 9000 verbunden. Viele Unternehmen verwenden ISO 9000, um sicherzustellen, dass ihr Qualitätssicherungssystem richtig funktioniert.
Das Konzept der Qualitätssicherung als formalisierte Praxis begann in der Fertigungsindustrie und hat sich seither auf die meisten Industriezweige, einschließlich der Softwareentwicklung, ausgebreitet.
Welche Bedeutung hat die Qualitätssicherung?
Die Qualitätssicherung unterstützt ein Unternehmen, Produkte und Dienstleistungen zu schaffen, die den Bedürfnissen, Erwartungen und Anforderungen der Kunden entsprechen. Sie führt zu hochwertigen Produktangeboten, die Vertrauen und Loyalität bei den Kunden aufbauen. Die durch ein Qualitätssicherungsprogramm definierten Standards und Verfahren helfen, Produktfehler zu vermeiden, bevor sie entstehen.
Methoden der Qualitätssicherung
Bei der Qualitätssicherung kommt eine von drei Methoden zum Einsatz:
Ausfalltest
Bei Ausfalltests wird ein Produkt kontinuierlich getestet wird, um festzustellen, ob es bricht oder versagt. Bei physischen Produkten, die Belastungen standhalten müssen, kann dies die Prüfung des Produkts unter Hitze, Druck oder Vibration beinhalten. Bei Softwareprodukten können Ausfalltests umfassen, dass die Software unter hohen Nutzungs- oder Lastbedingungen getestet wird.
Statistische Prozesskontrolle
Statistische Prozesskontrolle ist eine Methodik, die auf objektiven Daten und Analysen basiert und von Walter Shewhart bei Western Electric Company und Bell Telephone Laboratories in den 1920er und 1930er Jahren entwickelt wurde. Diese Methode verwendet statistische Methoden zur Verwaltung und Kontrolle der Herstellung von Produkten.
Total Quality Management (TQM)
Beim Total Quality Management (TQM) werden quantitative Methoden als Grundlage für eine kontinuierliche Verbesserung angewendet. TQM stützt sich auf Fakten, Daten und Analysen zur Unterstützung der Produktplanung und Leistungsüberprüfung.
Qualitätssicherung versus Qualitätskontrolle
Manche verwechseln den Begriff Qualitätssicherung mit Qualitätskontrolle. Obwohl die beiden Begriffe Ähnlichkeiten aufweisen, gibt es wichtige Unterschiede.
Tatsächlich liefert die Qualitätssicherung die allgemeinen Richtlinien, die überall verwendet werden, und die Qualitätskontrolle ist ein produktionsorientierter Prozess, beispielsweise für Inspektionen. Qualitätssicherung ist jeder systematische Prozess, mit dem sichergestellt werden soll, dass ein Produkt bestimmte Anforderungen erfüllt, während sich die Qualitätskontrolle mit anderen Fragen befasst, zum Beispiel mit einzelnen Inspektionen oder Mängeln.
Im Hinblick auf die Softwareentwicklung zielen Qualitätssicherungspraktiken darauf ab, fehlerhaften Code oder fehlerhafte Produkte zu verhindern, während die Qualitätskontrolle das Testen und die Fehlerbehebung implementiert und den Code behebt.
Geschichte von ISO und Qualitätssicherung
Obwohl sich einfache Konzepte der Qualitätssicherung bis ins Mittelalter zurückverfolgen lassen, gewannen Qualitätssicherungspraktiken vor allem während des Zweiten Weltkriegs an Bedeutung, als große Mengen von Munition inspiziert werden mussten.
Die ISO wurde 1947 in Genf gegründet und veröffentlichte 1951 ihre erste Norm über Referenztemperaturen für industrielle Messungen. Die ISO wuchs allmählich und erweiterte ihren Normenbereich.
Die ISO 9000er-Normenfamilie wurde 1987 veröffentlicht. Jede 9000er-Nummer bietet verschiedene Normen für verschiedene Szenarien. Qualitätssicherungsnormen haben sich im Laufe der Zeit geändert und wurden aktualisiert, und ISO-Normen müssen sich ändern, um für die heutigen Unternehmen relevant zu bleiben.
Qualitätssicherungsstandards
Qualitätssicherungsstandards haben sich im Laufe der Zeit geändert und wurden aktualisiert, und ISO-Standards müssen sich ändern, um für die Unternehmen von heute relevant zu bleiben.
Die neueste Version der ISO 9000-Reihe ist ISO 9001:2015. Die Vorgaben in ISO 9001:2015 umfasst eine stärkere Kundenorientierung, Praktiken der obersten Führungsebene und wie diese ein Unternehmen verändern können, sowie die kontinuierliche Verbesserung. Neben allgemeinen Verbesserungen der ISO 9001 enthält die ISO 9001:2015 auch Verbesserungen ihrer Struktur und mehr Informationen für eine risikobasierte Entscheidungsfindung.
Qualitätssicherung bei Software
Die Softwarequalitätssicherung findet systematisch Muster und die zur Verbesserung der Entwicklungszyklen erforderlichen Maßnahmen. Das Finden und Beheben von Codierungsfehlern kann unbeabsichtigte Folgen haben. Es ist möglich, eine Sache zu beheben und gleichzeitig andere Merkmale und Funktionen zu zerstören.
Softwarequalitätssicherung ist für Entwickler wichtig geworden, um Fehler zu vermeiden, bevor sie auftreten, und um Entwicklungszeit und -kosten zu sparen. Selbst wenn Softwarequalitätssicherungsprozesse vorhanden sind, kann ein Update andere Funktionen zerstören und Fehler – allgemein als Bugs bekannt – verursachen.
Es gibt zahlreiche Strategien für die Softwarequalitätssicherung. Zum Beispiel ist die Capability Maturity Model Integration (CMMI) ein auf Leistungsverbesserung ausgerichtetes Modell. CMMI funktioniert, indem es Reifegrade von Bereichen innerhalb einer Organisation in eine Rangfolge bringt und Optimierungen identifiziert, die zur Verbesserung genutzt werden können. Die Reifegrade reichen von unorganisiert bis hin zu vollständig optimal.
Im Laufe der Zeit haben sich Softwareentwicklungsmethoden entwickelt, die sich auf Softwarequalitätssicherung stützen, wie zum Beispiel das Wasserfallmodell, Agile und Scrum. Jeder Entwicklungsprozess versucht, die Arbeitseffizienz zu optimieren.
Das Wasserfallmodell ist der traditionelle lineare Ansatz bei der Softwareentwicklung. Es ist ein Schritt-für-Schritt-Prozess, der typischerweise das Sammeln von Anforderungen, die Formalisierung eines Entwurfs, die Implementierung von Code, das Testen von Code sowie die Korrektur und Freigabe umfasst. Er wird oft als zu langsam angesehen, weshalb alternative Methoden entwickelt wurden.
Agile ist eine teamorientierte Softwareentwicklungsmethodik, bei der jeder Schritt im Arbeitsprozess als Sprint angegangen wird. Agile Softwareentwicklung ist in hohem Maße anpassungsfähig, aber sie ist weniger vorausschauend, da sich der Umfang des Projekts leicht ändern kann.
Scrum ist eine Kombination beider Prozesse, bei der Entwickler in Teams aufgeteilt werden, um bestimmte Aufgaben zu bearbeiten, und jede Aufgabe in mehrere Sprints aufgeteilt wird.
Um ein Qualitätssicherungssystem zu implementieren, müssen zunächst Ziele für den Standard festgelegt werden. Man sollte die Vorteile und Kompromisse jedes Ansatzes berücksichtigen, wie zum Beispiel Maximierung der Effizienz, Reduzierung der Kosten oder Minimierung der Fehler. Das Management muss bereit sein, Prozessänderungen zu implementieren und zusammenzuarbeiten, um das Qualitätssicherungssystem zu unterstützen und Qualitätsstandards festzulegen.
Qualitätssicherungsteams
Ein Teil der Karrieremöglichkeiten im Bereich Qualitätssicherung umfasst Joboptionen wie Ingenieure, Analysten und Testautomatisierer für die Qualitätssicherung. Ingenieure überwachen und testen Software während der Entwicklung. Ein Analyst überwacht die Auswirkungen und Praktiken der Qualitätssicherung über Softwarentwicklungszyklen hinweg. Bei der Testautomatisierung muss die Person Programme erstellen, um den Qualitätssicherungsprozess zu automatisieren.
Diese Programme vergleichen die prognostizierten Ergebnisse mit den tatsächlichen Ergebnissen. Diese Arbeit wird für ständige Tests verwendet.
Tools für die Softwarequalitätssicherung
Das Testen von Software ist ein integraler Bestandteil der Softwarequalitätssicherung. Testen spart Zeit, Aufwand und Kosten und ermöglicht es, ein qualitativ hochwertiges Endprodukt optimal herzustellen. Es gibt zahlreiche Werkzeuge und Plattformen, die Entwickler zur Automatisierung und Orchestrierung des Testens einsetzen können, um die Ziele zu erleichtern.
Selenium ist ein Open-Source-Testprogramm, das Tests in einer Vielzahl von gängigen Softwaresprachen wie C#, Java und Python durchführen kann.
Ein weiteres Open-Source-Programm ist Jenkins. Dieses ermöglicht es Entwicklern und Mitarbeitern in der Qualitätssicherung, Code in Echtzeit auszuführen und zu testen. Es eignet sich gut für eine schnelllebige Umgebung, da es Aufgaben im Zusammenhang mit dem Erstellen und Testen von Software automatisiert.
Für Webanwendungen oder Programmierschnittstellen (APIs) automatisiert Postman Tests. Er ist für macOS, Windows und Linux erhältlich und kann Swagger- und RAML-Formatierung unterstützen.
Einsatz der Qualitätssicherung in der Industrie
Im Folgenden sind einige Beispiele für die Qualitätssicherung in der Industrie aufgeführt:
- Die Fertigung ist die Industrie, die die Qualitätssicherungsdisziplin formalisiert hat. Hersteller müssen sicherstellen, dass montierte Produkte fehlerfrei hergestellt werden und den definierten Produktspezifikationen und Anforderungen entsprechen.
- Die Lebensmittelproduktion setzt für die Qualitätssicherung unter anderem Röntgensysteme ein, um physikalische Verunreinigungen im Lebensmittelherstellungsprozess zu erkennen. Die Röntgensysteme stellen sicher, dass die Verunreinigungen entfernt werden, bevor die Produkte die Fabrik verlassen.
- In der Pharmazeutik werden in jeder Phase der Entwicklung eines Medikaments unterschiedliche Qualitätssicherungsansätze angewendet. Über die verschiedenen Stufen hinweg umfassen die Qualitätssicherungsprozesse die Überprüfung von Dokumenten, die Genehmigung der Gerätekalibrierung, die Überprüfung von Schulungsaufzeichnungen, die Überprüfung von Herstellungsaufzeichnungen und die Untersuchung von Marktrenditen.
Qualitätssicherung versus Tests
Qualitätssicherung unterscheidet sich vom Testen. Die Qualitätssicherung konzentriert sich mehr auf Prozesse und Verfahren, während das Testen sich auf die Logistik bei der Verwendung eines Produkts konzentriert, um Fehler zu finden.
Die Qualitätssicherung definiert die Standards rund um das Testen, um sicherzustellen, dass ein Produkt die definierten Geschäftsanforderungen erfüllt. Testen beinhaltet den eher taktischen Prozess der Validierung der Funktion eines Produkts und der Identifizierung von Problemen.
Vor- und Nachteile der Qualitätssicherung
Die Qualität von Produkten und Dienstleistungen ist ein wesentliches Unterscheidungsmerkmal im Wettbewerb. Die Qualitätssicherung trägt dazu bei, dass Unternehmen Produkte entwickeln und ausliefern, die frei von Mängeln sind und den Bedürfnissen und Erwartungen der Kunden entsprechen. Qualitativ hochwertige Produkte führen zu zufriedenen Kunden, was zu Kundentreue, Wiederholungskäufen und Empfehlungen führen kann.
Die Qualitätssicherung senkt Kosten, die sich aus der Vermeidung von Produktfehlern ergeben. Wenn ein Produkt an Kunden ausgeliefert und ein Defekt entdeckt wird, entstehen einem Unternehmen Kosten für den Kunden-Support, zum Beispiel für den Empfang des Fehlerberichts und die Fehlerbehebung.
Die Qualitätssicherung erfordert eine erhebliche Investition in Mitarbeiter und Prozesse. Die Mitarbeiter müssen einen Prozessablauf definieren und dessen Umsetzung durch Mitglieder eines Qualitätssicherungsteams beaufsichtigen. Dies kann ein zeitaufwendiger Prozess sein, der sich auf das Lieferdatum der Produkte auswirkt.
Mit wenigen Ausnahmen ist der Nachteil der Qualitätssicherung eher eine Anforderung – ein notwendiger Schritt, der unternommen werden muss, um ein Qualitätsprodukt zu liefern. Ohne Qualitätssicherung entstehen schwerwiegendere Nachteile, wie zum Beispiel Produktfehler und die Unzufriedenheit oder Ablehnung des Produkts durch den Markt.