Test- und Analysetools für Softwareprojekte in C, C++ und Java

In einer Zeit, in der Softwareprojekte immer komplexer werden, der Konkurrenz- und Kostendruck ständig wächst und der Zeitdruck bis zum Release immer stärker wird, benötigen Softwareentwickler und Projektmanager die Unterstützung effizienter Softwaretest- und Analysetools, um die Produktivität und Qualität zu steigern.

Die finnische Technologiefirma Testwell Oy (Tampere) unterstützt Softwareprojekte in C, C++ und Java beim Test und der Analyse des Codes. Durch Verwendung der einfach bedienbaren Testwell-Tools werden die Projektdauer verkürzt, Kosten gesenkt und die Softwarequalität erhöht. Die von Verifysoft Technology vertriebenen Werkzeuge des finnischen Herstellers Testwell werden insbesondere für sicherheitskritische Anwendungen (auch Embedded Systeme) im Bereich Medizin und Automotive verwendet. Zu den Kunden zählen hier u. a. das Bundesamt für Sicherheit in Bonn, Knorr Bremse, Siemens Transportation Systems, Thales und ZF Lenksysteme. Desweiteren sind die Testtools vor allem in Telekommunikationsprojekten (Alcatel, Nokia, Siemens) im Einsatz.
Testwell-Tools decken z. Zt. die Plattformen Windows, Solaris, HP und Linux in folgenden Bereichen ab:

* Testüberdeckung (Coverage-Analyse)

* Metriken

* Unit- / Modultests (Artikel: bessere Codequalität durch Unittests)

Systems 2001 in München:

Roland Bär (links) und Klaus Lambertz (rechts)

Testüberdeckung (Coverageanalyse)

CTC++ ist ein Tool zur Überprüfung der Testabdeckung in C und C++ Programmen und gibt Werte für Function-, Decision-, Statement-, Condition- und Multiconditioncoverage als Text- oder HTML-Report aus.

Neben der Coverageanalyse auf dem Host ist es möglich, die Testabdeckung im Target und im laufenden Systemkernel (Kernelcoverage) zu analysieren. Bei der Nutzung von CTC++ erhöht sich das Laufzeitverhalten nur unwesentlich um ca. 16 %. CTC++ ist in die Entwicklungsumgebungen Microsoft Visual C++, Borland und WindRiver Tornado integrierbar. weitere Informationen

Metriken: CMT++ (für C und C++) und CMTJava (für Java)

Die Komplexität des Codes hat direkten Einfluß auf die Test- und Wartbarkeit der Applikationen. Deshalb sollten bei der Softwareentwicklung anerkannte Metriken wie McCabe Cyclomatic Number, Halsteads Software Science Metrics und Line-of-Code-Metriken beachtet werden. CMT unterstützt diese Metriken, wobei das Tool an firmeneigene Codingstandards angepaßt werden kann (konfigurierbare Alarmlimits). CMT identifiziert komplexe fehlerträchtige Codeteile (die besondere Berücksichtigung beim Testen finden sollten), gibt eine Einschätzung der notwenigen Testfälle (um alle Pfade einer Funktion zu testen) und gibt an wie viele Bugs der Tester bzw. Entwickler finden sollte, um relativ sicher zu sein, daß sein Code "sauber" ist. weitere Informationen C++ / JAVA

Modul- / Unit-Test

Durch den frühen Einsatz von Unittests kommt es zu Zeit- und Kostenersparnis: je später ein Fehler entdeckt wird, desdo teuer wird er! CTB deckt Probleme auf, die später im Entwicklungsprozeß nicht oder nur schwer gefunden werden können. Durch den automatischen Aufbau einer Testumgebung wird der zeitaufwendige und fehlerträchtige Aufbau eines Testharnesses von Hand vermieden.

Der Einsatz von CTB führt zu einer höheren Testabdeckung und mehr Sicherheit. Falls nur Applikationstests durchgeführt würden, würden viele Module nicht erreicht, blieben ungetestet und damit je nach Anwendung ein Sicherheitsrisiko.

CTB erlaubt den Modultest für C-Code sehr früh im Entwicklungsprozeß. Sobald ein Modul kompilierbar ist, kann CTB hierfür automatisch ein Testbed generieren. Funktionen, die das Modul dabei von noch nicht bestehenden Modulen aufruft, werden durch Stubs simuliert.

CTB unterstützt das gesamte Spektrum der Black-box-tests vom "ad-hoc-trial" bis zum systematischen skriptbasierten Regeressionstest. Die Tests sind dabei sowohl im interaktiven Modus über Terminaleingaben, als auch im Skript-Modus über ein Script-file möglich.

Das Verhalten bei der Ausführung des Testbeds ist so, als ob der Testtreiber das Programm Kommando nach Kommando ausführt und dabei zeigt und dokumentiert was passiert. Selbstverständlich arbeitet das Modultesttool mit Coverageanalysetools wie CTC++ zusammen. weitere Informationen

Ein entsprechendes Tool für die Programmiersprache C++ ist z. Zt. in der Entwicklung.

Alle angesprochene Tools werden durch Verifysoft Technology in Offenburg vertrieben. Kostenlose und unverbindliche Evaluationen sind verfügbar.

created: 13.11.2002 / last modified: 07.07.2003 by Klaus Lambertz                 ---                 Homepage Verifysoft

   how many contacts today?