Software-Wiki
Advertisement

Cantata, vormals Cantata++, ist ein Computerprogramm für Softwaretests zur Laufzeit von C- und C++-Programmen.

Überblick[]

Cantata gehört zur Gruppe der dynamischen Testwerkzeuge. Diese bringen kompilierte Testfälle und den hinzugebundenen Testling auf der Host- bzw. einer Zielplattform zur Ausführung. Die Anbindung eines Debuggers erfolgt optional.

Typische Anwender sind Entwicklungsteams für Host-Software oder für hardware-nahe Programmierung von Eingebetteten Systemen. Benutzer von Cantata sind normalerweise Software-Entwickler sowie Test-Designer für Softwaretests.

Die Cantata IDE ist Eclipse-basiert. Es steht auch ein Eclipse-Plugin für entsprechende Entwicklungsumgebungen z.B. der Compilerhersteller bereit. Umgekehrt sind alle Eclipse-Plugins, die dem Anwender sonst zur Verfügung stehen, in der Cantata IDE nutzbar.

Eine Einbindung zur Testautomatisierung in einen Continuous Build auf Ebene der Kommandozeile ist gleichfalls möglich.

Cantata wird vom Unternehmen QA Systems entwickelt. QA Systems GmbH hat das Produkt Cantata++ und dessen gesamtes Entwicklungsteam im Jahr 2012 von IPL Information Processing Ltd. übernommen und im gleichen Zuge die QA Systems Ltd. mit Sitz in Bath (UK) gegründet. Bald darauf erfolgte die Umbenennung des Produkts in Cantata. Das Rebranding zeigt sich ab dem Release 6.2.

Funktionsweise[]

Mit Cantata erstellt der Benutzer eine Reihe von Modultests, Modulintegrationstests und Überdeckungstests für C und C++ Code.

Die Notwendigkeit solcher Tests ergibt sich meist aus der Produkthaftung nach dem aktuellen Stand der Technik. Der aktuelle Stand der Technik wiederum drückt sich in Normen aus, wie bspw. IEC 61508 und Derivaten wie ISO 26262 oder EN 50128. Hierin sind Anforderungen formuliert, wie die funktionale Sicherheit hinsichtlich einer Sicherheitsanforderungsstufe überprüft werden soll.

Welche C und C++ Sourcen in Cantata getestet werden, legt der Benutzer zu Beginn eines Testzyklus fest. Seine Entscheidung trifft er abhängig von der Reife der Module, deren Schnittstellen sich möglichst kaum mehr ändern sollten. Nach dieser Auswahl setzt der Benutzer ein eigenständiges Software-Testprojekt auf, das quasi parallel zum Software-Entwicklungsprojekt geführt und gepflegt wird.

Eine Kopie des Quelltextes (Software Under Test, Testling) wird mit zusätzlichen Anweisungen ausgestattet und umgeben. Diese Instrumentierung eines Moduls ist notwendig und dient dazu, den Testling technisch in einen ausführbaren Rahmen zu setzen. Dieser Testrahmen wird durch Cantata generiert und enthält bspw. den Testtreiber und den notwendigen Programm-Einsprungspunkt main, der im Testling selbst meist fehlt.

Einzelne Funktionen / Methoden des Moduls werden mit festzulegenden Eingabewerten ausgeführt. Die Resultatwerte werden mit festzulegenden erwarteten Werten verglichen. Diese Testfallspezifikation ist Aufgabe des Test-Designers und erfolgt nach Gutdünken, zufolge einer abgestimmten Teststrategie, oder anhand der vorliegenden Spezifikation funktionaler Anforderungen.

Weil der Testling im Software-Entwicklungsprojekt von anderen Modulen umgeben ist, müssen diese für einen Modultest aus dem Software-Testprojekt entfernt werden. An deren Stelle treten Substitute, welche dem Testling die tatsächliche Ausführung der umgebenden Module in vereinfachter Weise vortäuschen. Diese Substitute werden als Stubs oder Mocks bezeichnet und tragen dieselbe Funktionssignatur wie ihre Originale.

Auch die Funktionsrümpfe solcher Stubs und Mocks werden durch Cantata generiert, wahlweise automatisch auf der Kommandozeile oder in der IDE. Für die simplifizierte Implementierung des Substituts ist wieder der Test-Designer zuständig. Selbst bei der Programmierung kann er aber auf einen Code-Generator zurückgreifen, wenn er möchte. Dies erweist sich als besonders nützlich beim Testen von Legacy Code wiederverwendbarer Software-Komponenten.

Optional wird während der Laufzeit die Codeabdeckung gemessen, - zusätzlich oder ausschließlich, d.h. wenn gewünscht sogar ohne vorherige Testfallspezifikation. Überdeckungstests sind ebenfalls relevant für sicherheitskritische Anwendungen mit SIL >= 1. Messen lassen sich dann bspw. Anweisungsüberdeckung, Entscheidungsüberdeckung und weitere.

Cantata unterscheidet sich etwas von anderen Testtools. Der Test-Designer gibt den anfänglichen Teil des Testfalles über den grafischen Dialog ein. Alles weitere programmiert er im gut strukturierten Quellcode des Testrahmens. Diesen Code kann der Test-Designer für seine Zwecke frei und beliebig ausdehnen. Cantata folgt hier dem Paradigma "das Testskript ist User Code".

Produkteigenschaften[]

Host Betriebssysteme[]

  • Microsoft Windows
  • Linux
  • Solaris
  • andere

Target Sprachen[]

  • C
  • C++

Target Compiler[]

  • Gnu gcc/g++
  • Green Hills
  • IAR Systems
  • iSYSTEM
  • Keil
  • NEC / Renesas
  • Tasking
  • Visual Studio C/C++
  • Willert Software Tools
  • Wind River
  • weitere

Lizenzbedingungen[]

  • Floating License Server.
    • Einzelne Lizenz kann man aus dem Floating License Server auschecken und mitnehmen.
  • Node Locked License.

Literatur[]

  • Peter Liggesmeyer, Software-Qualität, Heidelberg: Spektrum-Verlag 2002

Weblinks[]

Info Sign  Dieser Wikipedia-Artikel wurde gemäß GFDL bzw. CC-by-sa mit allen Versionen importiert.
Advertisement