Testmanagement

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Teststufen

Das Testen ist ein wichtiger Bestandteil der Softwareentwicklung, da nur durch umfangreiches Testen sichergestellt werden kann, dass alle spezifizierten Anforderungen an das Produkt auch erfüllt wurden. Das Testen findet i.d.R. in mehreren aufeinander aufbauenden Phasen statt, die das System zu einem stetig wachsenden Grad betrachten.

Ein Testkonzept lässt sich aus dem in der Entwicklung häufig genutzten V-Modell ableiten und beinhaltet die folgenden Testphasen:

- Statische Analyse
- Modultests
- Integrationstests
- Systemtests

In jeder dieser Phasen muss spezifiziert was genau getestet werden soll, wie diese Tests durchgeführt werden und welche Kriterien darüber bestimmen, ob ein Testfall positiv oder negativ zu bewerten ist. Wie die einzelnen Testphasen durchgeführt werden können, wird fortführend am Beispiel des SDE Praktikums beschrieben.

Statische Analyse

Die statische Analyse ist eine sehr formale Teststufe und sollte immer dann angewendet werden, wenn ein Teil der Software fertig implementiert wurde. Die dabei entstandenen Quellcodedateien sind in diesem Fall Gegenstand der Überprüfung. Im Gegensatz zu anderen Testphasen müssen hierbei keine Testfälle oder Pass/Fail-Kriterien definiert werden, da statische Analysen toolgestützt durchgeführt werden können und diese solche Informationen selbst genieren und die Tests anschließend durchführen. Als Beispiele für solche Tools können Polyspace und QA-C genannt werden.

Da bei statischen Analysen der Code nicht ausgeführt, sondern lediglich formal überprüft wird, können in diesem Schritt noch keine Funktionalitäten getestet werden. Allerdings lassen sich Codierrichtlinien wie z.B. Misra-C damit überprüfen. Außerdem werden bei einer statischen Analyse klassische Programmierfehler entdeckt, die zu Laufzeitfehlern führen können. Dazu zählen u.A. :

- Speicherüberläufe
- Nicht-Initialisierte Variabeln 
- Ungültige Pointer-Zugriffe 
- Endlosschleifen

Nach der Durchführung einer statischen Analyse können die gefundenen Fehler im Code behoben werden, sodass für die folgenden Testphasen ein formal korrekter Code gegeben ist.

Dynamische Modultests

Integrationstests

Systemtests

- http://en.wikipedia.org/wiki/Test_management