/
Statische Test

Statische Test

Inhalt dieser Lerneinheit

Im Rahmen dieser Lerneinheit werden sie mit den folgenden Themen vertraut gemacht:

  • Definition statische Test

  • Reviews und Review-Prozess

  • Review-Arten

  • Werkzeuggestützte Test

Definition

Testen einer Komponente oder eines Systems auf Anforderungs- und Implementierungsebene ohne Ausführung der Software, z.B. durch Reviews oder statische Codeanalyse. Der statische Test ist eine Überprüfung, Vermessung und Darstellung eines Programms oder einer Komponente bzw. eines Dokuments, das eine formale Struktur hat.

Reviews

Reviews sind eine Möglichkeit, Arbeitsergebnisse der Softwareentwicklung (einschliesslich Code) zu prüfen und können problemlos bereits lange vor der dynamischen Testrealisierung durchgeführt werden.

Manuelle Prüfmethode mit mehr oder weniger festgelegtem Ablauf, die (nach einer individuellen Vorbereitung der Gutachter) in einer Teamsitzung die Stärken und Schwächen eines schriftlich vorliegenden Prüfobjektes identifiziert.

Was kann durch Reviews geprüft werden?

  • Projektauftrag,

  • Projektplan,

  • Anforderungsspezifikation,

  • Designspezifikation,

  • Quelltext,

  • Testkonzept,

  • Testspezifikationen,

  • Testfälle,

  • Testskripts,

  • Anwenderhandbücher,

  • Web-Seiten,

  • Schulungsunterlagen

  • Schulungsplan,

  • etc.

Vorteile von Reviews

Fehler, die durch Reviews in den frühen Phasen des Software-Lebenszyklus entdeckt werden, sind bedeutend kostengünstiger zu beheben als solche, die erst während der Testdurchführung gefunden werden (z.B. Fehler in den Anforderungen). Zu den Vorteilen von Reviews zählen:

  • Werden frühzeitig Fehler erkannt und beseitigt, führt dies zu einer Produktivitätssteigerung in der Entwicklung, da weniger Ressourcen für die Fehlererkennung und Beseitigung benötigt werden und diese somit der Entwicklung zur Verfügung stehen. Dies hat auch zur Folge, dass sich der Entwicklungsaufwand verkürzt.

  • Werden Fehler frühzeitig erkannt und behoben, führt dies zu einer Verringerung der Kosten und der benötigten Zeiten für den dynamischen Test, da weniger Fehlerzustände im Testobjekt vorhanden sind.

  • Durch die geringere Zahl an Fehlern und Ungenauigkeiten ist auch eine Kostenreduzierung während der Lebenszeit des Produkts zu erwarten. Beispielsweise können durch Reviews Ungenauigkeiten der Kundenwünsche in den Anforderungen aufgedeckt werden.

  • Vorhersehbare Änderungswünsche nach der Inbetriebnahme des Softwaresystems sind damit im Vorfeld zu verhindern. Es ist auch eine reduzierte Fehlerhäufigkeit im Einsatz des Systems zu erwarten.

  • Da die Überprüfungen durch Teams erfolgt, ergibt sich daraus ein Wissensaustausch unter den beteiligten Personen. Dies führt zur Optimierung der Arbeitsmethoden der einzelnen Personen und verbessert die Qualität weiterer Produkte.

  • Da mehrere Personen an einem Review teilnehmen, ist eine klare und verständliche Darstellung der Sachverhalte notwendig.

  • Oft bringt der Zwang zu einer klaren Darlegung den Autor bereits zu Einsichten, die er vorher nicht hatte. Das gesamte Team fühlt sich verantwortlich für die Qualität des untersuchten Prüfobjekts und Gesamtproduktes.

  • Ein einheitliches Verständnis über das Prüfobjekt entwickelt sich. Reviews können Auslassungen (z.B. fehlende Anforderungen) und Funktionen aufdecken, die durch einen dynamischen Test (vermutlich) nicht aufzuspüren sind.

Fehlerzustände bei Reviews

Reviews können Auslassungen, bspw. die fehlende Umsetzung einer Anforderung oder fehlende Funktionen aufdecken, die durch einen dynamischen Test vermutlich nicht gefunden werden. Im Gegensatz zum dynamischen Test finden Reviews eher Fehlerzustände als Fehlerwirkungen. Zu den typischen Fehlerzuständen, die effektiver und effizienter durch Reviews als durch dynamische Tests zu finden sind, gehören (Liste nicht abschliessend):

  • Abweichungen von Standards

  • Fehler in Anforderungen

  • Fehler im Design

  • Unzureichende Wartbarkeit

  • falsche Schnittstellenspezifikationen

Der Review-Prozess

Rollen und Verantwortlichkeiten im Reviewprozess

Manager oder Projektleiter

Entscheidet über Durchführung von Reviews, stellt Zeit im Projektplan zur Verfügung und überprüft, ob die Review-Ziele erfüllt sind.

Moderator

Leitet die Review, einschliesslich der Review-Planung, Leitung der Sitzung und Nachbereitung.

Falls nötig kann der Moderator zwischen den verschiedenen Standpunkten vermitteln.

Er ist häufig die Person von welcher der Erfolg der Review abhängt.

Autor

Verfasser der zu prüfenden Dokumente.

Gutachter

Für diese Rolle sollten Personen mit einem spezifischen technischen oder fachlichen Hintergrund gewählt werden.

Auch sollten Gutachter so gewählt werden, dass verschiedene Sichtweisen vertreten sind.

Sie nehmen an allen Review-Sitzungen teil.

Protokollant

Dokumentiert alle Ergebnisse, Probleme und offenen Punkte die im Verlauf der Sitzung identifiziert werden.

Arbeitsmittel im Review-Prozess

Nachfolgende Arbeitsmittel für Reviews sind bereitzustellen:

  • Vorgaben und Leitfäden zur Unterstützung der verschiedenen Rollen beim Review und der verschiedenen Review-Varianten.

  • Checklisten und/ oder Fragenkataloge spezifisch für die Klassen der Prüflinge und die verschiedenen Aspekte.

  • Review-Einladung.

  • Mängelliste.

  • Review-Bericht.

Grundsätze für Reviews

  • Ein Review zielt darauf ab, die vorhandenen Fehler zu finden.

  • Die für die Projektplanung zuständige Person sollte genügend Zeit für Reviews einkalkulieren.

  • Zudem ist zu kontrollieren, ob sich die Teilnehmer ausreichend vorbereiten konnten.

  • Gegebenenfalls ist es auch möglich/ nötig, den Review abzubrechen.

  • An einem Review nehmen im Idealfall zwischen drei und sieben Personen über einen Zeitraum von maximal zwei Stunden teil.

  • Der Moderator ist kein Gutachter.

  • Der Autor verhält sich während des Reviews passiv, klärt jedoch Missverständnisse auf und beantwortet Fragen.

  • Es steht der Prüfling im Fokus, nicht der Autor.

  • Daher obliegt es dem Moderator, persönliche Angriffe gegen den Autor sowie unnötige Rechtfertigungen des Autors zu unterbinden.

  • Die Probleme werden im Review Meeting nur genannt.

  • Es werden keine Lösungswege diskutiert, erarbeitet oder vorgeschlagen.

Erfolgsfaktoren

  • Jedes Review hat klare, vordefinierte Ziele.

  • Die geeigneten Personen sind einzubinden, um die Review-Ziele zu erreichen.

  • Gefundene Fehler werden positiv aufgenommen und sachlich angesprochen.

  • Es gilt den Umgang mit den Fragen der Beteiligten und die damit verbundenen psychologischen Aspekte zu berücksichtigen, indem man bspw. versucht, den Review für den Autor zu einer positiven Erfahrung zu machen.

  • Review-Techniken werden so angewendet, dass sie für Typ und Stufe der Arbeitsergebnisse in der Softwareentwicklung und für die Gutachter geeignet sind.

  • Sind sie dafür geeignet, die Effektivität der Fehleridentifikation zu steigern, werden Checklisten und/ oder Rollen verwendet.

  • Insbesondere für die eher formalen Methoden, wie bspw. Inspektionen, finden Schulungen zu den Review-Techniken statt.

  • Das Management unterstützt den Review-Prozess durch die Bereitstellung einer angemessenen Zeit für Review-Aktivitäten in Projektplänen.

Review-Arten

Nachfolgende Aspekte gelten für informelle Reviews:

  • Es ist kein formaler Prozess.

  • Er kann als «Pair-Programming» (Scrum, eXtreme Programming) gestaltet werden.

  • Es kann sein, dass ein technischer Leiter Entwurf und Quelltext prüft.

  • Eine Dokumentation der gefundenen Fehler ist möglich.

  • Der Nutzen ist stark abhängig von den Fähigkeiten des Gutachters.

  • Das Hauptziel ist: kostengünstigster Weg und hoher Nutzen in kurzer Zeit.

Nachfolgende Aspekte gelten beim Walkthrough:

  • Die Sitzung wird durch den Autor geleitet.

  • Es können Szenarien oder Probeläufe verwendet werden.

  • Findet im Kreis gleichgestellter Mitarbeiter statt.

  • Sind immer «Open-End»-Sitzungen.

  • Möglich sind: eine der Sitzung vorausgehende Vorbereitung der Gutachter, ein Review-Bericht, eine Liste der Befunde und der Einsatz eines Protokollanten (der aber nicht der Autor ist).

  • Variiert in der Praxis von informellen bis hin zu sehr formalen Varianten.

  • Hauptziele: Lernen, Verständnis, Fehler finden

Nachfolgende Aspekte gelten beim technischen Review:

  • Dokumentierter, definierter Fehlerfindungsprozess, der gleichgestellte Mitarbeiter (Peer-Review) und technische Experten einschliesst.

  • Soll als Peer-Review ohne Teilnahme des Managements ausgeführt werden.

  • Idealerweise von einem geschulten Moderator geleitet (nicht vom Autor).

  • Vorbereitung der Gutachter (Studium der Unterlagen) vor der Sitzung.

  • Nutzung von Checklisten, Review-Berichte und ein Liste der Befunde ist möglich.

  • In Ausnahmefällen Beteiligung des Managements (wenn Entscheidungen getroffen werden müssen).

  • In der Praxis: von informellen bis hin zu sehr formalen Varianten.

  • Hauptziele: Diskussion, Entscheidungen treffen, Alternativen bewerten, Fehler finden, technische Probleme lösen und prüfen, ob Übereinstimmung mit Spezifikationen und Standards existiert.

Nachfolgende Aspekte gelten bei der Inspektion:

Wird geleitet von einem geschulten Moderator (nicht vom Autor).

Üblicherweise Prüfung durch gleichgestellte Mitarbeiter.

Es gibt definierte Rollen.

Es werden Metriken erfasst.

Ist ein formaler Prozess, basierend auf Regeln und Checklisten sowie Eingangsbedingungen und Endbedingungen.

Es braucht eine Vorbereitung der Gutachter vor der Sitzung.

Es werden ein Inspektionsbericht und ein Liste der Ergebnisse erstellt.

Es gibt einen formalen Prozess für die Folgeaktivitäten.

Optional kann ein Vorleser eingesetzt werden.

Möglicherweise führen die Resultate zu Prozessverbesserungen.

Hauptziel: Fehler finden.

Statische Analyse (werkzeuggestützt)

Statische Analyse

Überprüfung, Vermessung und Darstellung eines Programms oder einer Komponente (bzw. eines Dokumentes, das eine

formale Struktur hat).

 

Die statische Analyse zielt darauf ab, Fehler im Softwarequellcode oder in den Softwaremodellen zu finden.

Sie wird durchgeführt, ohne dass die untersuchte Software tatsächlich durch das Werkzeug ausgeführt wird.

Für Dokumente kann die werkzeuggestützte statische Analyse nur angewendet werden, wenn diese einen formalen Struktur unterliegen (HTML, XML).

Auch Programmtext kann mit Werkzeuge analysiert werden.

Vorteil statische Test

Nutzen der statischen Analyse

Nutzen der statischen Analyse Die statische Analyse hat nachfolgenden Nutzen:

  • Bereits vor der Durchführung von dynamischen Tests können potenzielle Fehler erkannt werden.

  • Sie warnt vor verdächtigen Aspekten in Code oder Design durch die Berechnung von Kennzahlen. (z. B. Komplexitätsmass nach McCabe).

  • Sie ermöglicht das Aufdecken von Abhängigkeiten und Inkonsistenzen in der Software (nicht verbundene Links, nicht kompatible Schnittstellen u. ä.).

  • Die Wartbarkeit von Code und Design wird dadurch verbessert.

  • Lernt aus den Erfahrungen und das Gelernte wird im Entwicklungsprozess einbezogen, kann dadurch Fehlerzuständen vorbeugen.

Arten von Fehlern

  • Referenzierung einer Variablen mit nicht definiertem Wert

  • Inkonsistente Schnittstellen zwischen Modulen

  • Syntax-Verletzungen von Code und Softwaremodellen

  • Variablen, die nie verwendet werden

  • Unerreichbarer (toter) Code

  • Verletzung von Programmierkonventionen

  • Sicherheitsschwachstellen

  • Komplexität von Code

  • Datenfluss durch Code

  • Kontrollfluss durch Code

  • Metriken und Messungen

Related content

Lerneinheit: Anforderungsbasiertes Testen
Lerneinheit: Anforderungsbasiertes Testen
More like this
Grundlagen des Softwaretestens
Grundlagen des Softwaretestens
More like this
Testmanagement
Testmanagement
More like this
Testen im Softwarelebenszyklus - Vorgehensmodelle der Informatik
Testen im Softwarelebenszyklus - Vorgehensmodelle der Informatik
More like this
Lerneinheit: Testkonzept - Testfallautomatisierung
Lerneinheit: Testkonzept - Testfallautomatisierung
More like this
Lerneinheit: Strukturierter Kriterienkatalog
Lerneinheit: Strukturierter Kriterienkatalog
More like this