Statische Analyse

Bugs und Defekte in Multitasking-Software eliminieren

Seite: 3/5

Anbieter zum Thema

Vor- und Nachteile dynamischer Analysetools

Tools zur Überprüfung der Codequalität lassen sich in dynamische und statische Analysetools unterteilen.

Dynamische Analysetools werden schon seit vielen Jahren eingesetzt. Sie überprüfen ausführbaren Code zur Laufzeit und melden Codefehler, die bei der Ausführung des Programms auftreten. Diese Tools eignen sich hervorragend zum Erkennen von Defekten, wie dynamischen Speicherzugriffsfehlern und Ressourcen-Leaks.

Dynamische Analysetools zeichnen sich durch eine niedrige Falsch-Positiv-Rate aus. Wenn diese Tools also einen Fehler melden, ist es ein tatsächlicher Fehler. Diese Tools irren sich selten, denn sie überprüfen den Code und sehen sämtliche Informationen über die Zustände der Software und deren Eingangswerte, während das Programm ausgeführt wird.

Die Analyseergebnisse sind entsprechend relevant – es werden tatsächliche Fehler erkannt, die während der Ausführung der realen Software aufgetreten sind, und nicht nur Fehler, die auftreten könnten, wenn 500 Anwender 500 Jahre lang auf 500 Tastaturen herumtippen.

Doch dynamische Analysetools haben auch Schwachstellen. Fehler werden erst in einer späten Phase des Softwareentwicklungsprozesses gefunden, da diese Tools eine ausführbare Version der Programme benötigen. Subtilere Fehler, d.h. solche, die in integrierten Softwareteilen auftreten, werden erst nach der vollständigen Integration der Software entdeckt.

Darüber hinaus deckt die dynamische Analyse nur die Testfälle ab, die tatsächlich ausgeführt wurden. Wurden also Testfälle für eine Line Coverage von nur 95 % unter den wachsamen Augen eines dynamischen Analysetools ausgeführt, dann würden diesem Tool wahrscheinlich viele andere Defekte entgehen.

In der Embedded-Softwareentwicklung ist es schwierig, sporadisch auftretende Fehler mit dynamischen Analysetools zu identifizieren. Das gilt auch für Fehler, die durch die Unterbrechung von Tasks in einer präemptiven Multitasking-Umgebung verursacht werden, wenn ein Softwareentwickler einen kritischen Abschnitt nicht ausreichend geschützt hat.

(ID:44759460)