Softwarequalität: Merkmale prüfen und sichern
Du vergleichst Anforderungen mit Eigenschaften, machst Qualität messbar und unterscheidest Maßnahmen zur Entwicklung und Prüfung.
Kurz gesagt
Softwarequalität beschreibt, wie gut tatsächliche Eigenschaften festgelegte oder vorausgesetzte Anforderungen erfüllen. Du sicherst sie durch klare Vorgaben, sorgfältige Entwicklung und passende Prüfungen.
Ein Programm kann richtige Ergebnisse liefern und trotzdem umständlich zu bedienen sein. Deshalb betrachtest du mehrere Eigenschaften und klärst, welche für den vorgesehenen Einsatz besonders wichtig sind. Alle Programme, Anforderungen und Messwerte in den folgenden Übungsfällen sind erfunden.
Deine Lernziele
Eine Anforderung beschreibt, was ein Programm leisten oder welche Eigenschaft es besitzen soll. Anforderungen können ausdrücklich festgelegt oder für den vorgesehenen Einsatz vorausgesetzt sein. Für eine Prüfung musst du auch vorausgesetzte Anforderungen klar benennen. Du vergleichst das Soll, also die Anforderungen, mit dem Ist, also den tatsächlichen Eigenschaften.
Ein Qualitätsmerkmal bezeichnet einen Bereich dieser Eigenschaften. Zuverlässigkeit betrifft das Erfüllen vorgesehener Funktionen ohne Ausfälle und Unterbrechungen unter festgelegten Bedingungen über einen festgelegten Zeitraum. Sie ist keine Garantie für fehlerfreien Betrieb unter beliebigen Bedingungen. Benutzbarkeit betrifft etwa, wie verständlich, leicht erlernbar und einheitlich die Bedienung ist. Effizienz betrifft den Zeitbedarf und den Verbrauch von Ressourcen, etwa Arbeitsspeicher oder Rechenleistung.
Die Gewichtung legt fest, wie wichtig ein Merkmal für die Bewertung ist. Sie hängt vom Softwaretyp und vom vorgesehenen Einsatz ab. Eine kurze Rechenzeit ersetzt keine verständliche Bedienung. Umgekehrt belegt eine verständliche Bedienung weder einen geringen Speicherverbrauch noch einen unterbrechungsfreien Betrieb.
Softwarequalität
Softwarequalität beschreibt die Eignung eines Programms, festgelegte oder vorausgesetzte Anforderungen zu erfüllen. Dafür vergleichst du seine tatsächlichen Eigenschaften mit diesen Anforderungen.
Beispiel: Zwei erfundene Programme gewichten Merkmale
- 1Ein Aufnahmeprogramm soll auf einem festgelegten Gerät eine Stunde lang ohne Unterbrechung Vogelstimmen aufnehmen. Für diesen Zweck erhält Zuverlässigkeit ein hohes Gewicht.
- 2Ein Zeichenprogramm für Anfänger soll leicht verständliche Werkzeuge anbieten. Für diesen Zweck erhält Benutzbarkeit ein hohes Gewicht.
- 3Für beide Programme müssen auch Anforderungen an die übrigen Merkmale festgelegt werden. Ihre Bedeutung ergibt sich aus dem jeweiligen Einsatz.
Teste dich
Ein breites Qualitätsmerkmal reicht für eine konkrete Prüfung noch nicht aus. Du verfeinerst es zunächst zu einem Teilmerkmal. Das ist ein genauer abgegrenzter Aspekt. Beim Merkmal Effizienz kannst du beispielsweise das Zeitverhalten betrachten, also den Zeitbedarf bestimmter Vorgänge.
Anschließend legst du einen Qualitätsindikator fest. Das ist eine beobachtbare oder messbare Größe, die Auskunft über den gewählten Aspekt gibt. Eine mögliche Kette lautet: Effizienz → Zeitverhalten → gemessene Dauer eines festgelegten Vorgangs. Der Indikator ist hier die gemessene Dauer. Die Anforderung legt dagegen fest, welche Dauer noch zulässig ist.
Damit du einen Messwert beurteilen kannst, müssen Eingabe, Einsatzbedingungen und Messbeginn sowie Messende feststehen. Die Aussage gilt zunächst für den untersuchten Lauf unter diesen Bedingungen. Aus seiner Dauer folgt weder die Dauer bei größeren Eingaben noch ein Urteil über die Verständlichkeit der Bedienung. Ein einzelner erfüllter Zeitgrenzwert belegt deshalb nicht die gesamte Softwarequalität.
Beispiel: Die Anzeige einer erfundenen Zeichnung prüfen
- 1Vorgabe: Auf dem festgelegten Übungsrechner soll eine festgelegte Datei mit 30 Formen innerhalb von höchstens 0,9 Sekunden vollständig angezeigt werden. Andere vom Nutzer gestartete Programme sind geschlossen.
- 2Die Verfeinerung lautet: Effizienz → Zeitverhalten → Dauer vom Öffnungsbefehl bis zur vollständigen Anzeige aller 30 Formen.
- 3Für einen erfundenen Lauf wird eine Dauer von 0,6 Sekunden angenommen.
- 4Dieser Lauf erfüllt die Zeitvorgabe. Daraus folgt kein Nachweis für andere Dateien, andere Rechner oder die Benutzbarkeit.
Merke: Trenne Messwert und Anforderung: Die gemessene Dauer beschreibt das Ist. Der zulässige Höchstwert beschreibt das Soll.
Teste dich
Qualitätssicherung umfasst Maßnahmen, mit denen ein Team die angestrebte Qualität erreichen und überprüfen will. Konstruktive Maßnahmen gestalten die Entstehung der Software und sollen Fehler vermeiden. Dazu gehören klare Projektziele, verbindlich vereinbarte Anforderungen und Programmierstandards. Solche Standards sind vereinbarte Regeln dafür, wie Programmtext geschrieben wird.
Analytische Maßnahmen untersuchen vorhandene Ergebnisse der Entwicklung. Bei einer statisch-analytischen Prüfung wird die untersuchte Anwendung nicht ausgeführt. Ein Beispiel ist ein Code-Review: Ein Entwickler liest und beurteilt den Quelltext, also den Programmtext. Auch ein Prüfwerkzeug kann den Quelltext untersuchen. Dass dieses Werkzeug läuft, macht die Prüfung nicht dynamisch; entscheidend ist, ob die untersuchte Anwendung ausgeführt wird.
Bei einer dynamisch-analytischen Prüfung wird die Anwendung ausgeführt. Ein Testfall legt dafür die Ausgangsbedingungen, die Eingabe und das erwartete Ergebnis fest. Das tatsächlich erzeugte Ergebnis wird mit der Erwartung verglichen. Entscheidend für die Einordnung ist die konkrete Tätigkeit: Anforderungen vereinbaren ist konstruktiv, vorhandenen Programmtext ohne Ausführung untersuchen ist statisch-analytisch und das Verhalten beim Ausführen prüfen ist dynamisch-analytisch.
| Maßnahme | Kennzeichen | Beispiel |
|---|---|---|
| Konstruktiv | Die Entstehung gestalten und Fehler vermeiden | Verbindliche Anforderungen vereinbaren |
| Statisch-analytisch | Vorhandenes untersuchen, ohne die Anwendung auszuführen | Den Quelltext lesen und beurteilen |
| Dynamisch-analytisch | Die Anwendung ausführen und ihr Verhalten prüfen | Eine Ausgabe mit dem erwarteten Ergebnis vergleichen |
Beispiel: Ein erfundenes Großschreibprogramm testen
- 1Die Vorgabe lautet: Das Programm soll die Eingabe „baum“ vollständig in Großbuchstaben umwandeln. Erwartet wird „BAUM“.
- 2Das Programm wird neu gestartet und erhält die Eingabe „baum“.
- 3Die tatsächliche Ausgabe wird mit „BAUM“ verglichen. Weil die Anwendung dafür ausgeführt wird, ist die Prüfung dynamisch-analytisch.
Teste dich
Ein Test vergleicht beobachtetes Verhalten mit einer Erwartung. Er kann eine Abweichung sichtbar machen und damit einen Ansatzpunkt für eine Verbesserung liefern. Der Testlauf und sein Bericht verändern den fehlerhaften Programmtext jedoch nicht. Auch das Speichern eines Testberichts behebt den gemeldeten Fehler nicht und hebt die Anforderung nicht auf.
Ein erfolgreicher Test zeigt, dass das beobachtete Verhalten im geprüften Fall zur Erwartung passt. Daraus folgt keine Garantie für andere Eingaben oder Einsatzbedingungen. Außerdem kann eine Prüfung eines einzelnen Merkmals andere Merkmale offenlassen. Eine erfüllte Zeitvorgabe sagt beispielsweise nichts darüber aus, ob die Bedienung verständlich ist.
Qualität entsteht durch passende Anforderungen und deren sorgfältige Umsetzung. Konstruktive Maßnahmen helfen dabei, Fehler zu vermeiden. Statische und dynamische Prüfungen liefern Rückmeldungen. Zeigen sie einen Fehler, muss eine passende Korrektur umgesetzt und anschließend erneut geprüft werden. Ein Befund ist also die Grundlage für eine Entscheidung und mögliche Änderung, aber noch keine Verbesserung der Software.
Merke: Testen liefert Erkenntnisse über die Software. Um einen gefundenen Programmfehler zu beheben, musst du die nötige Korrektur umsetzen und ihre Wirkung erneut prüfen.
Teste dich
Alles auf einen Blick
Softwarequalität
Softwarequalität bezieht tatsächliche Eigenschaften auf festgelegte oder vorausgesetzte Anforderungen.
Die Bedeutung einzelner Qualitätsmerkmale hängt vom Softwaretyp und dem vorgesehenen Einsatz ab.
Aussagen über unterbrechungsfreien Betrieb brauchen festgelegte Bedingungen und einen festgelegten Zeitraum.
Ein Qualitätsmerkmal wird über Teilmerkmale bis zu beobachtbaren oder messbaren Qualitätsindikatoren konkretisiert.
Konstruktive Maßnahmen gestalten die Entstehung; analytische Maßnahmen prüfen vorhandene Entwicklungsergebnisse mit oder ohne Ausführung der Anwendung.
Ein Testbefund verändert das Programm nicht; nötige Korrekturen müssen umgesetzt und erneut geprüft werden.
Die Ladezeit eines erfundenen Vokabelprogramms beurteilen
- 1Die Übungsanforderung lautet: Eine festgelegte Datei mit 120 erfundenen Wortpaaren soll auf dem festgelegten Rechner innerhalb von höchstens 2,0 Sekunden vollständig angezeigt werden. Andere vom Nutzer gestartete Programme sind geschlossen.
- 2Ordne die Anforderung ein: Sie betrifft Effizienz, genauer das Zeitverhalten.
- 3Lege den Indikator fest: Gemessen wird die Dauer vom Öffnungsbefehl bis zur vollständigen Anzeige aller 120 Wortpaare.
- 4Für einen erfundenen Testlauf werden 2,4 Sekunden angenommen. Das liegt über dem Höchstwert von 2,0 Sekunden; dieser Lauf verfehlt die Zeitvorgabe.
- 5Die Messung ist dynamisch-analytisch, weil das Vokabelprogramm ausgeführt wird. Sie liefert keinen Nachweis über die Verständlichkeit der Bedienung.
- 6Der Testbericht verkürzt die Ladezeit nicht. Eine passende Korrektur muss umgesetzt und anschließend unter den festgelegten Bedingungen erneut geprüft werden.
Fehler finden
Fehler in Zeile 3Das Speichern eines Testberichts verändert den fehlerhaften Programmtext nicht. Richtig: Nach dem Speichern dieses Testberichts ist der gemeldete Fehler im unveränderten Programm weiterhin vorhanden.
Lückentext
In einer Untersuchung wird der Arbeitsspeicher gemessen, den eine festgelegte Berechnung benötigt. Dieser Ressourcenverbrauch gehört zur . Eine Untersuchung des Quelltextes ohne Ausführung der untersuchten Anwendung ist . Meldet ein Test einen Programmfehler und bleibt das Programm unverändert, ist dieser Fehler .