Statische Test können mit unterschiedlichen Methoden durchgeführt werden. Zumeist handelt es sich hierbei um Code-Analysen.
Unter einem statischen Test ist die Prüfung eines Testobjekts ohne Ausführung der Software zu verstehen. |
Analytische Maßnahmen ohne einen Programmlauf sind zum Beispiel: White Box Test, Code Review, Walkthrough, Checklistenprüfung und Inspektion.
Mögliche Testaufgaben |
Erläuterung |
Fokussiertes Testen |
Für den Test werden einzelne Module ausgewählt, die entweder neu sind und/ oder bei denen viele Probleme vermutet werden. |
Messung Testüberdeckung |
Prüfung, welche Pfadabdeckung (Teile des Codes) durch die erstellten Testdaten gegeben ist. |
Test von internen Programmbeschränkungen |
Systematische Identifizierung von interne Beschränkungen (zum Beispiel: Feldlänge zu klein, zu wenig Speicherplatz) |
Test Datenintegrität |
Lokalisierung möglicher Probleme auf Modulebene |
Eine Datenflussanalyse prüft innerhalb eines Programmcode die Verwendung von Daten auf lokale und globale Sichtbarkeit von Variablen oder Objekten.
Zustände von Variablen |
|
Undefiniert |
Variable hat keinen definierten Wert |
Definiert |
Variable wird ein Wert zugewiesen |
Ermittelt |
Wert der Variable wird gelesen |
Arten von Datenflussanomalien |
Undefinierter Wert einer Variable wird auf einem Programmpfad gelesen |
Variable enthält ungültigen Wert, ohne dass dieser zwischenzeitlich verwendet wurde |
Variable erhält zweites Mal einen Wert, ohne dass der erste Wert verwendet wurde |
Zweck von Checklisten |
Erläuterung |
Inspektion |
Überprüfung der Einhaltung von Richtlinien sowie Dokumentations- oder Programmierrichtlinien |
Vorgehensweise |
Überprüfung der vollständigen Ausführung aller (in der Regel komplexeren) erforderlichen Tätigkeiten, jedoch nicht der inhaltlichen Qualität von Arbeitsergebnissen |
Orientierung |
Begutachtung des Prüfobjektes aus ausgewählten Blickwinkeln. |
Anforderungen an die Dokumentation |
|
» Gegenstand der Inspektion |
|
» Ziel der Inspektion |
|
» Datum der Durchführung |
|
» Durchführende Person |
|
» Zusammenfassung des Inspektionsergebnisses |
|
|
o akzeptiert |
|
o akzeptiert nach Behebung von gefundenen Mängel |
|
o erneute Inspektion erforderlich |
Fehler-Kategorie |
Erläuterung der Fehlerüberprüfung/-suche |
Logik |
Formulierung von Bedingungen, Berechnungen |
Schnittstellen |
Schnittstellenkonventionen (Schnittstellenname, Parameteranzahl, Parameterreihenfolge, Parametertypen) |
Performance |
Antwort- und Restartzeit, Kapazität (Datenmenge, Benutzerzahl) |
Wartbarkeit |
Programmkomplexität, Programmstrukturierung |
Design |
Beachtung von Design-Prinzipien |
Code-Kommentar |
Formulierung, Umfang, Genauigkeit, Verständlichkeit |
Verstoß gegen Standards |
Einhaltung von Programmierrichtlinien |
Sicherheitsrelevanz |
Einhaltung von Datenschutzbestimmungen |
Ergonomie |
Benutzerfreundlichkeit |
Zuverlässigkeit |
Plausibilitätsprüfung |
Programmierrichtlinien beziehen sich in der Regel insbesondere vorrangig auf eine redundanzfreie Organisation des Quellcodes, auf eine einheitlichen Einsatz von Programmiersprachen und der Einhaltung von Namenskonventionen.
Die Statische Analyse von Software Artefakten wird in der Regel mit Werkzeugunterstützung durchgeführt, ohne das die Software Artefakten dabei ausgeführt werden. |
Mögliche Aspekte der statischen Code-Analyse |
|
Wartbarkeit |
Änderbarkeit |
Security |
Zugriffsschutz |
Stabilität |
Zuverlässigkeit |
Wichtige zu beachtende Aspekte für die Beschreibung in Kommentarzeilen |
|
Grad der Kommentierung |
Für die Wartung des Codes muss ein angemessener Umfang einer nachvollziehbaren Dokumentierung vorliegen. |
Verständlichkeit der Kommentierung |
Der inhaltliche Wert der Dokumentierung eines Codes hängt von den vorhandenen Fachwissen und eventuellem Programmierkenntnisse ab. |
Transparenz bei der Änderungshistorie |
Im Dokumentenkopf sind insbesondere zu beschreiben: » Codename » Was macht das Programm für welche Verwendung » Wann wurde der Code von wem erstellt » Welche Eingangsdaten (Parameter oder Daten) werden benötigt » Welche Ausgangsdaten werden erzeugt » Welche Code Änderung wurde vorgenommen (Wer, Wann, Warum) |
Regeln zur systematischen Benennung von Entitäten sollten bereits an der Schreibweise einer Entität die wichtigsten Eigenschaften erkennen lassen können. Artefaktspezifische Namenskonventionen erlauben es dem Entwickler eine einheitliche Erwartungshaltung gegenüber Namen aufzubauen und somit den Quellcode effizienter lesen und verstehen zu können.
Auf einer Designebene wird die konkrete Umsetzung von Konzepten im Quelltext sowie die Verwendung von Dateien überprüft. Deklarationen und Definitionen haben im Kopfbereich der Programme zu erfolgen.