6 Softwaretest und Qualitätssicherung Dieses Kapitel soll die Einsatzfähigkeit des fertig gestellten Prototypen Uni- Stat Version 0.8.1-beta testen. Die folgenden Tests und Analysen werden jedoch keine Qualitätssicherung im engeren Sinne vornehmen, da der Aufwand für diesen Prototypen nicht gerechtfertigt wäre. Die Schwerpunkte der Tests liegen vielmehr in der Überprüfung eines ordnungsgemäßen Programmablaufs, in der Validierung der Ergebnisse und in einer vollständigen Überprüfung der zu sendenden Steuersignale. Das Ziel jeglichen Testens ist es, möglichst alle im Testobjekt vorhandenen Fehler zu entdecken und zu lokalisieren. Testen kann nur die Anwesenheit, aber nicht die Abwesenheit von Fehlern und Mängeln feststellen. Testen zielt daher darauf ab, möglichst viele Fehler zu entdecken, um der Restfehlerzahl Null möglichst nahezukommen. In der Praxis ist das Testen die populärste analytische Maßnahme, um die Qualität von Software nachzuweisen. [TRAU, S.200] Das Testobjekt (hier UniStat Version 0.8.1-beta ) muss innerhalb einer bestimmten Testumgebung und versehen mit entsprechenden Testeingangsdaten lauffähig sein. Während des Testens wird diese Umgebung real, in vereinfachter oder in nachgebildeter simulierter Form bereitgestellt, damit das Testobjekt wie in seiner späteren Betriebsumgebung reagieren kann. [TRAU, S.201] Programm: Umsetzer.exe Programm: UniStat.exe Null-Modem-Kabel RS232C RS232C IBM-kompatibel IBM-kompatibel Abb. 32, Testumgebung "UniStat" Die Testumgebung [Abb. 32] wird analog zur Abbildung 1 aufgebaut. Hierbei befindet sich der Prototyp UniStat in seiner realen Umgebung und wird 62
über den RS232C-Anschluss (COM-Port) mit dem Umsetzer verbunden. Der Umsetzer wird jedoch im Testaufbau durch die Software Umsetzer.exe [Abb. 33] simuliert. Umsetzer.exe stellt dabei die eingehenden Datenströme (Befehle und Befehlsfolgen von UniStat ) in einem Textfeld zur Kontrolle dar und kann selbst den ausgehenden Datenstrom des Umsetzers simulieren. Die Datenströme werden in hexadezimaler Form dargestellt. Abb. 33, Simulator "Umsetzer.exe" 63
Der Prozess des Testens gestaltet sich wie folgt [TRAU, S.201]: Das Testobjekt wird mit Testeingangsdaten versorgt. Dies beinhaltet auch die Initialisierung des Testobjektes. Das Testobjekt wird mit diesen Testdaten ausgeführt. Das Verhalten des Testobjektes wird an ausgewählten programminternen Punkten und an den Ausgängen beobachtet beziehungsweise gemessen. Die beobachteten Testergebnisse werden mit Referenzwerten verglichen. Fällt der Vergleich innerhalb vorgegebener Toleranzen negativ aus, so liegt ein Fehler vor, der sofort dokumentiert werden muss. Die sorgfältig geplanten Tests müssen wiederholbar, nachvollziehbar und vollständig sein sowie klare Ziele verfolgen. Ein Test sollte, wie auch das Softwareprodukt selbst, vollständig und lesbar dokumentiert sein. [TRAU, S.202] Welchen Charakter die Tests haben müssen, ist von Fall zu Fall unterschiedlich. Ein Testobjekt kann je nach Betrachtungsweise auf zwei Arten ins Testen einbezogen werden. Betrachtet man das Objekt von außen, wird dessen Reaktion auf die Testeingangsdaten nur an den Ausgängen beobachtet. Es wird an diesem schwarzen Kasten ( Black-Box ) untersucht, inwieweit das Testobjekt seine in der Spezifikation geforderten Funktionen erfüllt. Bei diesem so genannten Black-Box-Test ist dem Tester die innere Struktur des Programms nicht bekannt. Er geht vielmehr davon aus, dass bei fehlerfreiem Betrieb der Software die gültigen Eingangsdaten durch gültige Programmfunktionen in gültige Ausgangsdaten transformiert werden. Mit der Auswahl der Testfälle und damit der Testeingangsdaten sollte eine hohe Wahrscheinlichkeit für die Aufdeckung von Fehlern erreicht werden. Der Funktionstest kann das Fehlen von Funktionen beziehungsweise Qualitätseigenschaften des Testobjekts erkennen; dagegen kann er das Vorhandensein unerwünschter Funktionen bzw. Eigenschaften nicht mit Sicherheit nachweisen. [...] Zur gezielten Auswahl von Testeingangsdaten, zur Berücksichtigung interner Zustände [...] sind die Kenntnis und Nutzung der inneren Struktur des Testobjekts notwendig. Dies wird beim White-Box-Testen herangezogen. Für die Vorbereitung solcher Tests werden Steuer- und Datenflussgraphen ermittelt 64
und analysiert. Unter ihrer Beachtung werden dann die Testeingangsdaten ermittelt, die zu bestimmten Zuständen des Testobjekts führen sollen. Im Gegensatz zum Black-Box-Test kann der White-Box-Test das Vorhandensein nicht erwünschter Funktionen beziehungsweise Eigenschaften der Software aufdecken. Dagegen kann er das Fehlen erforderlicher Funktionen im allgemeinen nicht erkennen. Beide Verfahren ergänzen sich gegenseitig und sind für den Erfolg der Testaktivitäten von äußerster Wichtigkeit. [TRAU, S.203/204] In Vorbereitung der Testdurchführung ist es des Weiteren unabdingbar, das auch das Testpersonal entsprechend geschult wird. Zum Testpersonal zählen beispielsweise versierte Anwender, Leitungspersonal, Entwicklungsingenieure, Softwareentwickler oder gar fachfremde Anwender (Laien). Der Umfang der Schulung ergibt sich unter anderem aus dem Wissenspotential der Tester und dem Schwierigkeitsgrad der durchzuführenden Tests. Prinzipiell sollten aber die Personen zu den Tests passen, denn es ist sicher nicht sinnvoll, einen Anwender beispielsweise interne Funktionen (Quelltext) eines Programmes testen zu lassen. Angemessen ist es aber, fachfremde Personen die Software bedienen zu lassen, um beispielsweise die Stabilität der Anwendung bei extremen Fehleingaben untersuchen zu können. Grundsätzlich sollten die Testpersonen je nach Bedarf zu folgenden Themen geschult werden: Notwendigkeit des Testes Art und Weise der Fehlerdokumentation Allgemeiner Umgang mit dem realen oder simulierten Systemaufbau, insbesondere Sicherheitshinweise Hinweis zu verfügbaren Fehlerdokumentationen Die Testpersonen für dieses Projekt wurden zu den oben genannten Themen hinreichend geschult, so dass die folgenden Testprotokolle repräsentativen Charakter haben. Die verwendeten Testeingangsdaten *.hex befinden sich auf der beiliegenden CD im Verzeichnis <CDROM>\Umsetzer\dat\. Diese Dateien sind mit einem gewöhnlichen Texteditor lesbar. 65
6.1 Überprüfung der Steuersignale Testprotokoll: Steuersignale Nr: 1.1 Aufgabe: Überprüfen Sie in der Testumgebung UniStat [Abb. 32] ob das Programm UniStat Version 0.8.1-beta nach Aufruf der unten angeführten Funktionen die unter Soll angegebenen hexadezimalen Werte sendet. Der Test umfasst alle Teilbereiche und Modi der Software: - Kalibrierung - Härteprüfung mit N0=0 (Anzahl Werte N0, vgl. Abb. 23 und 22) - Härteprüfung mit N0=5 und Testeingangsdaten Spezifikation: Teststrategie: Testeingangsdaten: Tab. 1, Befehlssatz "Umsetzer", Tab. 2, Datenformat "Umsetzer", Tab. 4, Schema - erweiterter Binärcode, Abb. 20, Aktivitätsdiagramm "Kalibrierung durchführen", Abb. 21, Aktivitätsdiagramm "Härteprüfung durchführen" Black-Box-Test pro Funktionstest mit N0=5 an UniStat zu senden: testeingang-5-werte.hex Testperson: Position: Kontakt: Funktion / Aufgabe Soll Ergebnis Kalibrierung: Start BF BF Kalibrierung: Stopp BB BB Kalibrierung: Abbrechen nach Start BB BB Kalibrierung: Ergebnisse übernehmen Hierzu in Tabelle Korrekturfaktor für Y in die Spalte Signal für jede Zeile beliebige Werte [0.. 4094] eintragen. BF A0 A1 [...] A9 BB Ist BF A0 A1 [...] A9 BB 66
Testprotokoll: Steuersignale Nr: 1.1 Funktion / Aufgabe Härteprüfung (N0=0, 5kp... 250kp): Test beginnen Härteprüfung (N0=0, *kp): Test unterbrechen Härteprüfung (N0=0, *kp): Test beenden Härteprüfung (N0=0, manuell): Test beginnen - kein Passwort nötig Härteprüfung (N0=5, 5kp... manuell): Test beginnen Alle Werte dürfen erst nach Empfang der Testeingangsdaten gesendet werden. Soll A0... A9 BB BB BC AF A0... AF Ergebnis Ist A0... A9 BB BB BC AF A0... AF Tab. 24, Testprotokoll "Steuersignale" Die Testeingangsdaten testeingang-5-werte.hex sind konstruierte Werte gemäß der Spezifikation aus Tabelle 2 und dem Schema erweiterter Binärcode [Tab. 4]. Im Test Steuersignale [Tab. 24] traten keine Fehler auf. Alle aufgeführten Steuersignale konnten nach Ausführung der angegebenen Funktionen bestätigt werden. Eine Fehlbedienung der Härteprüfmaschine durch falsche Steuersignale der Software kann ausgeschlossen werden. 67
6.2 Evaluation der Implementierung anhand von Beispielen Testprotokoll: Evaluation UniStat Nr: 2.1 Aufgabe: Unter Verwendung der Testumgebung gemäß Abbildung 32 und den Testeingangsdaten sollen Sie das Programm speziell zu den nachfolgend aufgeführten Funktionen und Aufgaben prüfen. Die Ausführung einzelner Programmfunktionen entnehmen Sie bitte der Nutzeranleitung. Die Automatik des Umsetzers (Reaktion auf Steuerbefehle) ist durch manuelles Einsteuern der Testeingangsdaten zu simulieren. Spezifikation: Teststrategie: Testeingangsdaten: Abb. 20, Aktivitätsdiagramm "Kalibrierung durchführen", Abb. 21, Aktivitätsdiagramm "Härteprüfung durchführen" Black-Box-Test testeingang-kalibrierung.hex, testeingang-kalibrierung-30min.hex, testeingang-kalibrierung-500-werte.hex, testeingang-kompletter-wertebereich.hex, versuch1_druckmaschine_125kp.hex, versuch2_druckmaschine_125kp.hex, versuch3_druckmaschine_125kp.hex, versuch4_druckmaschine_125kp.hex Testperson: Position: Kontakt: Funktion / Aufgabe Führen Sie eine Kalibrierung durch. Verlief die Kalibrierung fehlerfrei? Wenn Nein, dann geben Sie bitte eine kurze Begründung im Anhang an. Testeingangsdaten: - testeingang-kalibrierung.hex - testeingang-kalibrierung-30min.hex - testeingang-kalibrierung-500-werte.hex Ja X siehe auch [Abb. 34] Ergebnis Nein 68
Testprotokoll: Evaluation UniStat Nr: 2.1 Funktion / Aufgabe Führen Sie eine Härteprüfung durch. Legen Sie bitte für jede Prüfung ein neues Diagramm an. Verlief die Härteprüfung ohne Fehler? Wenn Nein, dann geben Sie bitte eine kurze Begründung im Anhang an. Testeingangsdaten: - testeingang-kompletter-wertebereich.hex - versuch1_druckmaschine_125kp.hex - versuch2_druckmaschine_125kp.hex - versuch3_druckmaschine_125kp.hex - versuch4_druckmaschine_125kp.hex Tab. 25, Testprotokoll "Evaluation UniStat" Ja X siehe auch [Abb. 26] [Abb. 35] Ergebnis Nein Die Testeingangsdaten wurden wie folgt erzeugt beziehungsweise ermittelt: testeingang-kalibrierung.hex, testeingang-kalibrierung-500-werte.hex Diese Werte wurden technisch mit Hilfe eines Oszilloskop erzeugt der die Signale des Umsetzers simuliert hat. Die Datei testeingang-kalibrierung-500-werte enthält exakt 500 Wertepaare und kann damit einer genauen Überprüfung des Kalibrierungsfensters dienen (beispielsweise für die Kontrolle der Anzahl der empfangenen Werte). testeingang-kalibrierung-30min.hex Die enthaltenen Werte wurden aus Originalsignalen des Umsetzers ermittelt. Der Inhalt dieser Datei kann aufgrund der Menge der Daten als Belastungstest für die Kalibrierung der Programms genutzt werden. Der Datenstrom dauert etwa 30 Minuten an. 69
testeingang-kompletter-wertebereich.hex Diese Testeingangsdaten wurden rechnerisch ermittelt und orientieren sich an der Funktion f(x)=x mit dem Definitionsbereich [0... 4094] (siehe Tabelle 4 und Abbildung 35). versuch[*]_druckmaschine_125kp.hex Die in dieser Datei enthaltenen Werte entstammen aus Versuchen mit dem Umsetzer. Die Belastung für diese Versuche wurde manuell an der Druckmaschine abgelesen und lag bei ungefähr 125 Kilopond. Der Test Evaluation UniStat [Tab. 25] erhebt keinerlei Anspruch auf Vollständigkeit. Aus den dargestellten Ergebnissen lässt sich jedoch schon erkennen, das der Prototyp UniStat Version 0.8.1-beta einen hohen Reifegrad erreicht hat und weitere Tests in einer realen Umgebung geplant werden können. Abb. 34, Testeingangsdaten "testeingang-kalibrierung-500-werte.hex" 70
Abb. 35, Testeingangsdaten "testeingang-kompletter-wertebereich.hex" 71
6.3 Validierung der Ergebnisse Testprotokoll: Validierung der Ergebnisse Nr: 3.1 Aufgabe: Unter Nutzung der Testumgebung gemäß Abbildung 32 und den Testeingangsdaten sollen Sie nachfolgend angegebenen Ergebnisse der Berechnungen überprüfen. Nutzen Sie hierfür bitte geeignete externe Werkzeuge wie zum Beispiel MS Excel und MS Access. Spezifikation: Abb. 5, Formel für Korrekturfaktor Kanal X, Abb. 6, Formel für Korrekturfaktor Kanal Y, Abb. 7, Formel zur Kalibrierung für Kanal X, Abb. 8, Formel zur Kalibrierung für Kanal Y, Abb. 20, Aktivitätsdiagramm "Kalibrierung durchführen", Abb. 21, Aktivitätsdiagramm "Härteprüfung durchführen" Teststrategie: Testeingangsdaten: Testperson: Position: Kontakt: Black-Box-Test testeingang-kalibrierung-erstes-testsignal.hex, testeingang-kalibrierung-zweites-testsignal.hex, testeingang-kompletter-wertebereich.hex Funktion / Aufgabe Soll Ergebnis Führen Sie eine Kalibrierung für alle Kanäle und die angegebenen Testsignale durch. und überprüfen Sie anschließend die vorgegebenen Sollwerte gemäß den Abbildungen 5 und 6. Testeingangsdaten: - testeingang-kalibrierung-erstes-testsignal.hex, 1. Testsignal ( X, Y ) - testeingang-kalibrierung-zweites-testsignal.hex, 2. Testsignal ( X, Y ) - 2. Testsignal: X = 70 [µm] und Y = 125 [kp] Ist Anzahl empfangener Werte 50 50 Additionsfehler für X 2767,30 2767,30 Additionsfehler für Y 607,18 607,18 Korrekturfaktor für X 0,1923 0,3434 Korrekturfaktor für Y 0,0707 0,0707 Signalwert für Y 2376 2376 72
Testprotokoll: Validierung der Ergebnisse Nr: 3.1 Funktion / Aufgabe Führen Sie zwei Härteprüfungen durch. Öffnen Sie im Anschluss die Projektdatenbank (mit MS Access) und bestätigen Sie durch Anwendung der Formeln aus den Abbildungen 7 und 8 stichprobenartig die Berechnung der kalibrierten Wertepaare. Beachten Sie bitte, dass sämtliche Testeingangsdaten von Ihnen manuell angepasst werden müssen. Konnte die Berechnung der kalibrierten Wertepaare von Ihnen nachvollzogen werden? Wenn Nein, dann geben Sie bitte eine kurze Begründung im Anhang an. Testeingangsdaten (1. Härteprüfung): - Anzahl der Werte für N0 = 0 - Korrekturfaktor: X = 1; Y = 1 [bei 125kp] - Additionsfehler: X = 0; Y = 0 - Maximale Belastung: 125kp - testeingang-kompletter-wertebereich.hex Testeingangsdaten (2. Härteprüfung): - Anzahl der Werte für N0 = 0 - Korrekturfaktor: X = 0,5; Y = 0,25 [bei 125kp] - Additionsfehler: X = 100; Y = 100 - Maximale Belastung: 125kp - testeingang-kompletter-wertebereich.hex Tab. 26, Testprotokoll "Validierung der Ergebnisse" Ja X siehe auch [Abb. 36] [Abb. 37] Ergebnis Nein 73
Die Testeingangsdaten für die Kalibrierung testeingang-kalibrierung-erstestestsignal.hex und testeingang-kalibrierung-zweites-testsignal.hex sind konstruierte Beispiele mit je 50 Eingangssignalen für das Programm Uni- Stat. Der Test Validierung der Ergebnisse [Tab. 26] verlief erfolgreich und zeigt im ersten Testabschnitt einen nahezu unscheinbaren Fehler auf. Nach einer raschen Fehleranalyse durch den Softwareentwickler hat sich herausgestellt, dass ein Fehler in der Berechnungsfunktion der Korrekturfaktoren vorliegt (siehe Modul ucalibration [Abb. 27], Tab. 14, Methode "Correction"). Der falsch berechnete Korrekturfaktor für Kanal X kann jedoch jederzeit manuell korrigiert werden und hat zudem keine zerstörerische Auswirkung auf die Härteprüfmaschine. Aus diesem Grund kann die Notwendigkeit der Fehlerbehebung recht gering priorisiert werden. Eine Fehlerkorrektur ist erst für die nächste Programmversion geplant. Abb. 36, Testeingangsdaten "Versuch 1" Abb. 37, Testeingangsdaten "Versuch 2" 74