SOTA Benutzer-Dokumentation - Version 1.0 |
SOTA unterstützt die statische Programmanalyse und den dynamischen Programmtest.
Bei der statischen Programmanalyse wird der Quellcode des Programmes analysiert und im Ergebnis werden durch SOTA zehn statische Maße wie die Zyklomatische Komplexität oder die Anzahl der Modifizierten Boundary-Interior-Pfade ermittelt. Voraussetzung für die Analyse ist das Parsen des Quellcodes durch SOTA.
Der dynamische Programmtest (nachfolgend Programmtest genannt) ist ein strukturorientiert-kontrollflussbezogener Programmtest und bildet den Hauptteil von SOTA. Abhängig vom speziellen Testfall ermittelt SOTA während der Programmabarbeitung neun Überdeckungsmaße wie z.B. die Zweigüberdeckung oder die Mehrfach-Bedingungsüberdeckung und stellt die Überdeckung graphisch dar. Voraussetzung hierfür ist eine Instrumentierung des zu testenden Programes durch SOTA.
Es gibt drei grundlegende Arten SOTA im Programmtest einzusetzen: der manuelle Programmtest, zusammen mit einem externen Testsystem oder integriert in ein automatisches Testsystem.
Im manuellen Programmtest wird das Programm manuell getestet, d.h. per Hand gestartet, Funktionen werden ausgeführt etc. Dies kann durch eine Entwicklungsumgebung wie Eclipse erfolgen, die neben SOTA benutzt wird, oder aus SOTA heraus unter Nutzung eines Ant-Buildfiles und eines Startskripts.
Die Arbeit mit einem externen Testsystem ist davon kaum verschieden, lediglich die Art des Testens wird davon betroffen. SOTA übernimmt unverändert, wie beim manuellen Test, die Vor- und Nachbereitung. Für den Programmtest selber wird jedoch ein separates Testsystem genutzt, wie z.B. ATOSj. Dabei ergibt sich eine Programmsequenz SOTA, ATOSj, SOTA und dies ohne jegliche interne Kopplung.
Bei der Arbeit mit einem automatischen Testsystem kann SOTA als Bibliothek (SOTA-ATM) in dieses System eingebunden und von dort die Non-GUI-Funktionalität von SOTA verwendet werden. SOTA-Kernfunktionen werden dann entweder über Kommandozeilenparameter oder an einer SotaATM-Instanz, deren Klasse durch die Bibliothek zur Verfügung gestell wird, aufgerufen.
Die Arbeit mit SOTA gliedert sich in die Vorbereitungs-, die Test- und die Auswertungsphase.
In der Vorbereitungsphase für den Programmtest bestehen die grundlegenden Arbeitsschritte darin, den Quellcode einzulesen, die Art der Instrumentierung zu bestimmen und die Quelldateien zu instrumentieren. Im manuellen Programmtest und in der Zusammenarbeit mit einem externen Testsystem geschieht dies über die graphische Benutzeroberfläche. Bei der Nutzung von SOTA-ATM im automatischen Testsystem kann dieses Verhalten durch Aufruf entsprechender Bibliotheksroutinen vorgenommen werden, oder SOTA-ATM über Kommandozeilenparameter gestartet werden.
In der Testphase erfolgen die Kompilation, der Programmstart und der Programmtest. Das Kompilieren der instrumentierten Quelldateien gehört nicht mehr in den Aufgabenbereich von SOTA, allerdings kann durch die Einbindung eines entsprechenden Ant-Buildscripts die Kompilation aus SOTA heraus initiiert werden. Liegt auch noch eine passende Batchdatei vor, so lässt sich über diese auch das zu testende Programm aus SOTA heraus starten. Werden diese beiden Dateien in SOTA eingebunden, kann der manuelle Programmtest ohne Rückgriff auf eine externe Entwicklungsumgebung vollständig aus SOTA heraus vollzogen werden. Während des Programmtests produzieren die in den Quellcode eingefügten Instrumentierungen nun eine Logdatei, welche die nötigen Informationen zur vollständigen Rekonstruktion des Programmablaufes enthält.
In der Auswertungsphase wird schließlich der originale Quellcode wiederhergestellt, die Logdateien werden eingelesen und die verschiedenen Überdeckungsmaße berechnet. Die Ergebnisse lassen sich dann sowohl in SOTA auf verschiedene Arten visuell auswerten, als auch in einen HTML-Report exportieren.
Phasen |
Aufgaben |
Nutzungsart |
||
Manueller Programmtest |
Mit externem Testsystem (ATOSj) |
Im automatischen Testsystem |
||
Vorbereitungsphase |
Einlesen und Parsen des Quellcodes |
SOTA |
SOTA |
SOTA-ATM |
Konfiguration der Instrumentierung |
SOTA |
SOTA |
SOTA-ATM / Konfigurationsdatei |
|
Instrumentierung des Quellcodes |
SOTA |
SOTA |
SOTA-ATM |
|
Testphase |
Kompilieren des Quellcodes |
Extern / aus SOTA per Skript |
Extern |
Extern |
Programmstart |
Extern / aus SOTA per Skript |
Extern |
Extern |
|
Programmtest |
Manuell |
Extern |
Extern |
|
Auswertungsphase |
Restauration des originalen Quellcodes |
SOTA |
SOTA |
SOTA-ATM |
Einlesen der Logdateien und Berechnung der Überdeckungsmaße |
SOTA |
SOTA |
SOTA-ATM |
|
Visualisierung der Ergebnisse |
SOTA |
SOTA |
Keine / SOTA (nach den Tests) |
|
Reporterstellung |
SOTA |
SOTA |
SOTA-ATM |