Revision 104911866 of "Cantata++" on dewiki'''Cantata++''' ist ein [[Computerprogramm]] für [[Softwaretest]]s zur [[Laufzeit (Informatik)|Laufzeit]] von [[C (Programmiersprache)|C]]- und [[C++]]-[[Computerprogramm|Programm]]en. == Überblick == Cantata++ gehört zur Gruppe der [[Dynamisches Software-Testverfahren|dynamischen Testwerkzeuge]]. Diese bringen [[Kompilierung|kompilierte]] [[Testfall|Testfälle]] und den hinzu[[Linker (Computerprogramm)|gebundenen]] Testling auf der [[Host (Informationstechnik)|Host]]- bzw. einer [[Cross-Compiler|Zielplattform]] zur [[Ausführbare Datei|Ausführung]]. Die Anbindung eines [[Debugger]]s erfolgt optional. Typische [[Anwender]] sind Entwicklungsteams für [[Host (Informationstechnik)|Host]]-Software oder für [[hardware]]-nahe [[Programmierung]] von [[Embedded Systems|Eingebetteten Systemen]]. [[Benutzer]] von Cantata++ sind normalerweise [[Softwareentwickler|Software-Entwickler]] sowie [[Software Test Documentation|Test-Designer]] für [[Softwaretest]]s. Die Cantata++ [[Integrierte Entwicklungsumgebung|IDE]] ist [[Eclipse (IDE)|Eclipse]]-basiert. Es steht auch ein Eclipse-[[Plug-in|Plugin]] für entsprechende [[Integrierte Entwicklungsumgebung|Entwicklungsumgebungen]] z.B. der [[Compiler]]hersteller 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 [[Kontinuierliche Integration|Continuous Build]] auf Ebene der [[Kommandozeile]] ist gleichfalls möglich. '''Cantata++''' wird vom [[Konzern]] '''QA Systems''' entwickelt. QA Systems GmbH hat das Produkt 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. == Funktionsweise == Mit Cantata++ erstellt der [[Benutzer]] eine Reihe von [[Modultest]]s, [[Integration (Software)|Modulintegrationstests]] und [[Überdeckungstest]]s 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 [[Norm]]en aus, wie bspw. [[IEC 61508]] und [[Derivat]]en wie [[ISO 26262]] oder [[EN 50128]]. Hierin sind [[Anforderung (Informatik)|Anforderungen]] formuliert, wie die [[Funktionale Sicherheit|funktionale Sicherheit]] hinsichtlich einer [[Sicherheitsanforderungsstufe]] überprüft werden soll. Welche [[C (Programmiersprache)|C]] und [[C++]] [[Quelltext|Sourcen]] in Cantata++ getestet werden, legt der Benutzer zu Beginn eines Testzyklus fest. Seine Entscheidung trifft er abhängig von der Reife der [[Modul]]e, deren [[Schnittstelle (Programmierung)|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 [[Quelltext]]es (Software Under Test, Testling) wird mit zusätzlichen [[Anweisung (Programmierung)|Anweisungen]] ausgestattet und umgeben. Diese [[Instrumentierung (Softwareentwicklung)|Instrumentierung]] eines [[Modul (Software)|Modul]]s 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 [[Driver|Testtreiber]] und den notwendigen Programm-[[Einsprungspunkt]] ''[[Main_(Begriffsklärung)|main]]'', der im Testling selbst meist fehlt. Einzelne [[Funktion_(Programmierung)#C|Funktionen]] / [[Methode (Programmierung)|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 [[Softwaretest#Teststrategie|Teststrategie]], oder anhand der vorliegenden [[Spezifikation]] [[Anforderung (Informatik)|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 [[Substitut]]e, welche dem Testling die tatsächliche Ausführung der umgebenden Module in vereinfachter Weise vortäuschen. Diese Substitute werden als [[Stub (Programmierung)|Stubs]] oder [[Mock-Objekt|Mocks]] bezeichnet und tragen dieselbe [[Signatur (Programmierung)|Funktionssignatur]] wie ihre Originale. Auch die [[Funktion (Programmierung)|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 [[Generative Programmierung|Code-Generator]] zurückgreifen, wenn er möchte. Dies erweist sich als besonders nützlich beim Testen von [[Legacy]] Code [[Wiederverwendbarkeit|wiederverwendbarer]] [[Komponente (Software)|Software-Komponenten]]. Optional wird während der [[Laufzeit (Informatik)|Laufzeit]] die [[Kontrollflussorientierte Testverfahren|Codeabdeckung]] gemessen, - zusätzlich oder ausschließlich, d.h. wenn gewünscht sogar ohne vorherige Testfallspezifikation. [[Kontrollflussorientierte Testverfahren|Überdeckungstests]] sind ebenfalls relevant für sicherheitskritische [[Anwendungssoftware|Anwendungen]] mit [[Sicherheitsanforderungsstufe|SIL]] >= 1. Messen lassen sich dann bspw. [[Anweisungsüberdeckungstest#C0._Anweisungs.C3.BCberdeckungstest_.28Statement_Coverage.29|Anweisungsüberdeckung]], [[Anweisungsüberdeckungstest#C1._Zweig.C3.BCberdeckungstest_.28Branch_Coverage.29|Entscheidungsüberdeckung]] und weitere. Cantata++ unterscheidet sich etwas von anderen Testtools. Der Test-Designer gibt nur einen kleinen Teil des Testfalles über den grafischen Dialog ein. Den Rest programmiert er im gut [[Strukturierte Programmierung|strukturierten Quellcode]] des Testrahmens. Das fertige Test-Binary (= [[Binärdatei]], die mit dem Test ausgeführt wird) enthält die Testwerte. == Produkteigenschaften == === Host Betriebssysteme === * [[Microsoft Windows]] * [[Linux]] * [[Solaris (Betriebssystem)|Solaris]] * andere === Target Sprachen === * [[C (Programmiersprache)|C]] * [[C++]] === Target Compiler === * [[GNU Compiler Collection|Gnu gcc/g++]] * [[Green Hills Software|Green Hills]] * [[IAR Systems]] * iSYSTEM * Keil * [[NEC Corporation| NEC / Renesas]] * Tasking * [[Microsoft Visual Studio|Visual Studio C/C++]] * [[Wind River Systems|Wind River]] * weitere === Lizenzbedingungen === * [[Floating License Server]]. ** Einzelne Lizenz kann man aus dem Floating License Server auschecken und mitnehmen. * Node Locked License. == Test auf [[Eingebettetes System|Embedded]] Ziel[[Hardware|hardware]] == Dabei geht es um eine Computersteuerung auf einer kleinen Leiterplatte, die in ein kleines Gerät (Fensterheber im Auto, Handy, Medizinisches Messgerät) eingebettet ist. Bei Cantata++ ist das ohne zusätzliche Geräte möglich. Zielhardware und Host-Computer verständigen sich über eine programmierte Schnittstelle (z.B. [[RS232]]). == Literatur == * [[Peter Liggesmeyer]], Software-Qualität, Heidelberg: Spektrum-Verlag 2002]] == Weblinks == * [http://www.qa-systems.com/cantata.html QA Systems Cantata++ Page] [[Kategorie:Testsoftware]] [[Kategorie:Testen (Software)]] [[Kategorie:Qualitätsmanagement (Softwaretechnik)]] All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://de.wikipedia.org/w/index.php?oldid=104911866.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|