Qualitätssicherung durch automatisierte Tests

Die Sicherheit von Benutzerdaten sowie insbesondere Patientendaten unterliegt in Deutschland strengen Gesetzen. Um den gesetzlichen Vorgaben gerecht zu werden, setzen Softwareentwickler immer komplexere Programmiertechniken für Applikationen und Services ein. Diese stellen Techniken und Hilfsmittel bereit, um sich wiederholende Aufgaben schneller und sicherer umzusetzen, aber auch, um z. B. im Internet den meisten der bekannten Angriffszenarien begegnen zu können, ohne die gesetzlich vorgeschriebene Sicherheit der Daten zu gefährden. Zusätzlich müssen Programme selbständig erkennen, auf welchem Gerät sie dargestellt werden, also welche Bildschirmgröße das verwendete Mobiltelefon verwendet, welche Auflösung der Computer, das Tablet oder der Fernseher. Leider erhöht sich mit der Komplexität der verwendeten Programme auch deren Fehleranfälligkeit. Änderungen an scheinbar unwichtigen Stellen können so dennoch große Fehler erzeugen. Neben technischen Fehlern kommen auch logische Fehler hinzu, z. B. wenn Rollenrechte die Zugriffsmöglichkeiten auf Dokumente und Informationen bestimmen.
 
Qualitätssicherung durch automatisierte TestsUm dieser Komplexität gerecht zu werden, werden Tests entwickelt, die den gesamten Entwicklungsprozess der Software begleiten. Tests gibt es auf verschiedenen Ebenen sowie in unterschiedlicher Granularität: Es gibt Tests, die im Grund nichts anderes tun, als das, was ein Benutzer auch tut – Daten ansehen, kontrollieren, ändern, zusammenführen. Dafür gibt es wiederum Programme, die verschiedene Internetbrowser verwenden, Webseiten aufrufen, Daten darstellen und modifizieren, Speichertasten drücken oder Bilder darstellen. Alle diese Tätigkeiten starten und laufen automatisiert, ohne dass dafür ein Mensch bei jedem neuen Entwicklungsstand alle Tests erneut durchspielen muss.
Daneben werden Tests benötigt, die prüfen, ob der Benutzer Daten korrekt eingibt und ob möglichst viele Fehleingaben abgefangen werden, die entweder nur unbrauchbare Daten erzeugen oder gar das ganze Programm abstürzen lassen können. Das müssen nicht einmal mutwillige Bösartigkeiten sein, auch einunvollständig geladene Seite kann Probleme bereiten.
Hinter den Kulissen prüfen weitere Tests, ob die Eingaben inhaltlich und formal korrekt sind. Moderne Programme können schnell viele tausend Zeilen lang werden, sodass eine Strukturierung notwendig wird, um die Übersicht zu behalten. So teilen sich Hauptprogramme mitunter in unzählige Unterprogramme auf, die ganz spezielle Aufgaben haben und dafür ebenfalls getestet werden müssen. Das passiert prinzipiell, indem man sie wie eine Blackbox behandelt, in die verschiedene Daten eingegeben werden und die ein erwartetes Ergebnis liefern.
Selbst dann, wenn alle diese Tests erfolgreich durchlaufen wurden, passieren noch immer Fehler, die niemand voraussehen konnte. Dafür wiederum existieren sog. Monitoring-Programme, deren einzige Aufgabe es ist, zu testen, ob solche Fehler auftreten, und entscheiden, wie auf Fehler reagiert werden soll und wer über Fehler informiert werden muss.
Das Programmieren dieser unterschiedlichen Tests kostet Zeit und somit auch Geld. Softwarehersteller müssen ständig entscheiden: Testet man jede erdenkliche Möglichkeit, hat das seinen Preis. Testet man wenig, erzürnt man den Kunden, schafft Sicherheitslücken oder zerstört Daten. Letztlich sind qualitativ hochwertige und sichere Programme eine Frage der Kosten.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.