UML-basierter Klassen- und Integrationstest objektorientierter Programme [article]

Dehla Sokenou, Technische Universität Berlin, Technische Universität Berlin, Stefan Jähnichen
2006
Der Softwaretest ist ein in der Praxis weit verbreitetes Verfahren zur Qualitätssicherung von Software. Das Softwareprodukt wird beim Softwaretest mit einer Menge von Eingabedaten stimuliert und die Ausgaben auf ihre Korrektheit im Hinblick auf die Spezifikation überprüft. Modellbasierte Ansätze zum Softwaretest finden mit der Verbreitung modellbasierter Softwareentwicklung auch in der Domäne der objektorientierten Programme immer mehr an Bedeutung. Das Modell dient in der modellbasierten
more » ... reentwicklung nicht mehr nur zur Dokumentation der Software, sondern vorrangig zur automatischen Generierung von Software und zur automatischen Ableitung von Testfällen, mit denen das Programm stimuliert wird, und Testorakeln, die Testergebnisse mit erwarteten Ergebnissen vergleichen. In der Dissertation wird eine Technik zur Ableitung von Testfällen und Testorakeln aus UML-Modellen vorgestellt. Anders als viele andere Arbeiten zum UML-basierten Test werden verschiedene UML-Bestandteile und damit verschiedene Sichten auf das zu testende Programm berücksichtigt. Testfälle werden aus einer Kombination von Sequenz- und Zustandsdiagrammen abgeleitet. Die Sequenzdiagramme spezifizieren dabei die Testsequenzen, die Zustandsdiagramme dienen der Initialisierung der Testsequenzen. Testorakel werden durch Kombination von Zustandsdiagrammen und OCL-Constraints erzeugt. Ein weiterer Schwerpunkt der Arbeit ist die Integration des erzeugten Testcodes in die zu testende Software (Instrumentierung) unter Verwendung aspektorientierter Programmiertechniken. Diese erlauben das Hinzufügen und Entfernen von zusätzlichem Code – hier: Testcode –, ohne den Quelltext der bestehenden Software zu ändern. Aspektorientierte Programmiertechniken eignen sich durch diese Eigenschaft besonders gut für die Instrumentierung, da der zusätzliche Testcode meist nur während der Testphase benötigt wird und danach ohne Aufwand wieder entfernt werden kann.
doi:10.14279/depositonce-1309 fatcat:2wpelg6jvnaj3dgllpjjxzldji