Was ist Software-Qualitätssicherung?
Die Softwarequalitätssicherung umfasst das Testen des Entwurfs und der Implementierung von Computersoftware und das Sicherstellen, dass diese einen Mindestqualitätsstandard erfüllt. Im Mittelpunkt des Qualitätssicherungsprozesses steht das Testen. Hierbei handelt es sich um die Methode, mit der jeder Schritt des Entwicklungszyklus analysiert wird, um Fehler wie Fehlfunktionen oder Sicherheitsprobleme zu ermitteln. Der bekannteste Teil des Softwarequalitätssicherungsprozesses ist das Testen von Software und Code. Es werden jedoch auch andere Aspekte des Entwicklungszyklus behandelt. Andere Aspekte des Software-Engineerings, die einer Qualitätsanalyse unterzogen werden, umfassen die Entwurfs- und Implementierungsphase.
Das Gesamtkonzept der Softwarequalitätssicherung erfordert, dass es in der Softwareplanungsphase beginnt. Schlecht geplante Software kann schwierig oder unmöglich in einer Weise zu schreiben sein, die den Erwartungen der Organisation entspricht, die sie sich vorgestellt hat. Das Qualitätsmanagement in der Entwurfsphase umfasst die Untersuchung der Auswirkungen der Projektspezifikationen oder -ziele sowie der Pläne der Organisation zur Erreichung ihrer Ziele. Der Vorteil der Qualitätsanalyse in der Entwurfsphase besteht darin, dass Fehler frühzeitig erkannt und beseitigt werden und nicht erst später im Entwicklungszyklus, wenn die Behebung von Entwurfsproblemen sehr viel teurer ist.
Ein Software-Testingenieur, auch als Software-Qualitätsanalyst bekannt, ist in erster Linie für die Durchführung des Testprozesses verantwortlich. Diese Person entwirft und führt die Testpläne aus, die eine Organisation bei der Verbesserung der Qualität ihrer Software unterstützen. Idealerweise sollte ein Programmierer niemals sein eigenes Produkt testen, was bedeutet, dass ein Programmierer und ein Testingenieur innerhalb eines Projekts zwei verschiedene Personen sind.
Testpläne sind ein wichtiger Bestandteil des Qualitätssicherungssystems, insbesondere in der Software-Testphase. Der Zweck von Testplänen besteht darin, Bedingungen zu bestimmen, die den Erfolg oder Misserfolg von Software kennzeichnen. Ein typischer Testplan enthält eine umfassende Liste von Programmen und Unterprogrammen oder Verfahren, die getestet werden müssen, sowie die mit dem Testen verbundenen Techniken. Eine weitere wichtige Funktion eines Testplans besteht darin, festzustellen, welche Fehler inakzeptabel sind. Testpläne werden normalerweise entworfen, bevor der eigentliche Software-Code des Projekts entwickelt wird.
Wenn Testingenieure Programme zur Implementierung von Testplänen schreiben, werden diese als Testskripte bezeichnet. Testskripte sind ein wesentlicher Bestandteil des Softwarequalitätssicherungsprozesses. Sie dienen dazu, das Testen des vorhandenen Codes eines Programms zu automatisieren, um Fehler zu finden. Darüber hinaus verwenden Testingenieure in der Regel kommerziell entwickelte Testwerkzeuge, um nach potenziellen Problemen zu suchen. Testpläne werden in der Codierungsphase der Softwareentwicklung implementiert.
In der eigentlichen Testphase des Softwarequalitätssicherungsprozesses gibt es eine Reihe wichtiger Schritte. Dazu gehören Unit-Tests, bei denen die Integrität verschiedener Abschnitte des Software-Codes bewertet wird, sowie Fehlerinjektionen, mit denen untersucht werden soll, wie die Programme auf fehlerhafte Daten reagieren. Zusätzliche Schritte umfassen Lasttests oder Stresstests, die die Funktionsweise eines Programms unter starker Beanspruchung anzeigen, sowie Intrusions- oder Sicherheitstests, um die Widerstandsfähigkeit eines Programms gegen unbefugten Zugriff zu testen. Ein Softwareprojekt wird in der Regel auch Usability-Tests unterzogen, um sicherzustellen, dass das resultierende Programm für andere Benutzer einfach zu verwenden ist.
Spezialisten, die sich mit dem Testen von Software-Code befassen, werden im Allgemeinen in zwei Gruppen eingeteilt, die als Black-Box-Tester und die als White-Box- oder Glass-Box-Tester bezeichnet werden. Black-Box-Tests sind eher oberflächliche Prozesse, die in der Software-Codierungsphase beginnen und keinen zugrunde liegenden Computercode untersuchen. Es untersucht die Benutzerfreundlichkeit, die kosmetische Konsistenz und das Auftreten von Fehlern und Fehlfunktionen einer Software.
White-Box-Test ist ein Prozess, der ganz am Anfang des Softwarequalitätssicherungsprozesses in der Entwurfsphase beginnt. Es umfasst die Vorhersage potenzieller Probleme, bevor der Code tatsächlich geschrieben wird, sowie das Schreiben von Testplänen und erweiterten Testskripten. Im Gegensatz zum Black-Box-Test wird beim White-Box-Test auch der zugrunde liegende Computercode untersucht.
Die Qualitätssicherung gilt auch für die Softwareimplementierungsphase, in der die Software kurz vor der Fertigstellung steht und zur Evaluierung auf Computersystemen installiert wird. Diese Phase wird oft als Alpha-Test bezeichnet und tritt auf, wenn das fast fertige Produkt vom Entwicklerteam installiert und getestet wird. Wenn die Software potenziellen Kunden außerhalb des Unternehmens präsentiert wird, spricht man von Beta-Tests. Wenn nach der Veröffentlichung der Software Fehler auftreten und ein Patch entwickelt werden muss, wird mithilfe von Regressionstests sichergestellt, dass durch die Updates keine neuen Fehler verursacht werden.