Softwaresysteme sind aus dem täglichen Leben nicht wegzudenken, angefangen von Business-Software (z.B. Bankanwendungen) bis hin zu Gebrauchsgegenständen (z.B. Autos). Die meisten Endanwender haben bereits schlechte Erfahrungen mit Softwaresystemen gemacht, die nicht so funktioniert haben wie erwartet. Software, die nicht korrekt funktioniert, kann zu vielerlei Problemen führen, wie Geld-, Zeit- oder Imageverlust oder sogar zu Personenschäden, wie Verletzungen oder Tod.

 

Ursachen von Softwarefehlern

Ein Mensch kann eine Fehlhandlung begehen, die einen Fehlerzustand im Programmcode oder in einem Dokument verursacht. Wenn der fehlerhafte Code ausgeführt wird, wird das System möglicherweise nicht das tun, was es tun sollte (oder etwas tun, was es nicht tun sollte) und dabei eine Fehlerwirkung hervorrufen. Fehler in Software, Systemen oder Dokumenten können, müssen aber nicht zu einer Fehlerwirkung führen.

Fehlerzustände treten auf, weil Menschen Fehlhandlungen begehen, z.B. unter Zeitdruck, bei komplexem Code, durch Komplexität der Infrastruktur, bei sich ändernden Technologien, und/oder vielen Systemwechselbeziehungen.

Fehlerwirkungen können aber auch durch Umgebungsbedingungen hervorgerufen werden. Zum Beispiel können Strahlung, elektromagnetische Felder oder Schmutz Fehlerzustände in der Firmware verursachen; ebenso kann die Ausführung der Software durch das Ändern von Hardwarezuständen beeinflusst werden.

 

Die Rolle des Testens bei Entwicklung, Wartung und Betrieb von Software

Intensives Testen von Systemen und Dokumentation kann helfen das Risiko zu reduzieren, dass Probleme im operativen Betrieb auftreten. Weiterhin kann es dazu beitragen, die Qualität des Softwaresystems zu erhöhen, indem Fehlerzustände vor der betrieblichen Freigabe gefunden und behoben werden.

Softwaretesten kann auch notwendig sein, um vertragliche oder gesetzliche Vorgaben oder spezielle Industrienormen zu erfüllen.

 

Testen und Qualität

Testen ermöglicht es, die Qualität von Software zu messen. Qualität wird hier ausgedrückt durch die Anzahl gefundener Fehlerzustände. Das gilt sowohl für funktionale als auch für nicht-funktionale Anforderungen und Qualitätsmerkmale (z.B. Zuverlässigkeit, Gebrauchstauglichkeit, Effizienz, Änderbarkeit und Übertragbarkeit).

Die größte Änderung war, dass IT-Sicherheit und Kompatibilität eigenständige Qualitätsmerkmale wurden und nicht mehr Unterkategorien des Qualitätsmerkmals Funktionalität sind.

Wenn wenige oder keine Fehlerzustände gefunden werden, kann Testen Vertrauen in die Qualität eines Systems schaffen. Ein angemessen spezifizierter Test, der keine Fehler zeigt, reduziert das allgemeine Risikoniveau in einem System. Falls Testen Fehlerzustände findet und diese Fehlerzustände behoben werden, steigt die Qualität des Softwaresystems.

Aus den Fehlern vorangegangener Projekte sollte gelernt werden. Wenn man die Fehlerursachen verstanden hat, die beim Test in anderen Projekten gefunden wurden, kann man Entwicklungsprozesse zielgerichtet verbessern. Das wiederum beugt dem erneuten Auftreten der Fehlerzustände vor und sollte als Konsequenz die Qualität zukünftiger Systeme verbessern. Das ist ein Aspekt der Qualitätssicherung.

Testen sollte als eine Qualitätssicherungsmaßnahme in den Entwicklungsprozess integriert sein (neben beispielsweise Entwicklungsstandards, Schulung und Fehlerursachenanalyse).

 

Wie viel Testaufwand ist notwendig?

Um zu entscheiden, wie viel Testen notwendig ist, sollte das Risikoniveau berücksichtigt werden. Das schließt sowohl technische, Betriebssicherheits- und wirtschaftliche Risiken, als auch Projektrandbedingungen, wie Zeit und Budget ein.

Testen sollte den Beteiligten genügend Informationen liefern, um fundierte Entscheidungen über die Freigabe der getesteten Software oder des Systems treffen zu können. Die Freigabe kann die Übergabe des Systems an den nächsten Entwicklungsschritt bedeuten oder die Übergabe des Systems an die Kunden.

Pin It on Pinterest

Shares