• Technischer Support
  • Kontakt
  • Blog
  • Deutsch
    • English
    • Français
    • Italiano
    • Português
    • Español
    • 简体中文
  • Tools
    • STATISCHE ANALYSE
      • QA-MISRA
        Detaillierte Tiefenanalyse für C/C++-Code
      • Cantata Test Architect
        Software-Architektur: verstehen, definieren und kontrollieren
      • Source-Code-Metriken
        Automatisierte Source-Code-Metriken für C/C++
      • Get a demo
    • Softwaretests
      • Cantata
        Automatisierte Unit- und Integrationstests für C/C++-Code
      • Cantata Team Reporting
        Add-on für die Zusammenarbeit von verteilten Teams
      • AdaTEST 95
        Automatisierte Unit- und Integrationstests für Ada-Code
      • Why Pay for Unit Test Tool?
  • LÖSUNGEN
    • BRANCHEN
      • Automotive
      • Energie
      • Medizintechnik
      • Industrielle Automatisierun
      • Bahntechnik
      • Luft-/Raumfahrttechnik und Verteidigun
      • Geschäftskritische Branchen
      • E
      • E
      • Get a demo
    • SICHERHEITSSTANDARDS
      • ISO 26262
      • IEC 60880
      • IEC 62304
      • IEC 61508
      • EN 50128 / 50657
      • DO-178C
      • MISRA
      • AUTOSAR
      • CERT
      • Why bother to unit test?
  • Akademie
    • Seminare
    • Trainings
    • Webinare
    • Referenten
    • Programm 2022
  • Unternehmen
    • Über uns
    • Management Team
    • Partner
    • Newsletter & Pressemitteilungen
    • Events
    • Karriere
    • Get a demo
  • Ressourcen
  • Porsche
  • Deutsch
    • Englisch
    • Französisch
    • Italienisch
    • Portugiesisch, Portugal
    • Spanisch
    • Vereinfachtes Chinesisch
  • Tools
    • Statische Analyse
      • QA-MISRA
      • Cantata Test Architect
      • Source Code Metriken
    • Softwaretests
      • Cantata Team Reporting
      • Adatest 95
      • Cantata
  • Lösungen
    • Branchen
      • Automotive
      • Energie
      • Medizintechnik
      • Industrielle Automatisierung
      • Bahntechnik
      • Luft-/Raumfahrttechnik & Verteidigung
      • Geschaeftskritische Branchen
    • Sicherheitsstandards
      • IEC 60880
      • IEC 62304
      • IEC 61508
      • ISO 26262
      • EN 50128/50657
      • DO 178
      • MISRA
      • Autosar
      • CERT
  • Akademie
    • SEMINARE
    • TRAININGS
    • WEBINARE
    • REFERENTEN
  • Unternehmen
    • Über Uns
    • Management Team
    • Newsletter & Pressemitteilungen
    • Karriere
    • Events
  • Ressourcen
  • Kontakt
  • Blog
QA Systems > Tools > Cantata > Flexible Testtechniken

Cantata ist das dynamische Tool für Unit- und Integrationstests in C und C++. Das Werkzeug hilft, Tests zu atomatisieren. Und schafft so die Basis, die Sicherheitsstandards für Software zu erfüllen. Was in der Softwareentwicklung best practise ist, kann mit Cantata ganz einfach in den Programmieralltag umgesetzt werden.

Welches sind die effektivsten und effizientesten Kombinationen von Testtechniken für Ihre C- und C++-Codes? Mit Cantata können Sie sie auswählen.

Was auch immer in C und C++ möglich ist, mit Cantata können Sie es umsetzen. Denn Cantata Tests laufen auf jedem Code-Editor.

Cantata erhöht die Geschwindigkeit von:

  • Tests auf Basis der Anforderungen
  • Robustheitsstests
  • Strukturtests
  • Test Driven Development (TDD)
  • Black-box testing
  • White-box testing
  • Verfahrens- und Zustandstests
  • Objektorientierten Tests
  • Isolierten Unittests
  • Integrationstests

Gezielte Flexibilität

 

Keine einzelne Tool-Suite kann alle Arten von Tests unterstützen – da macht auch Cantata keine Ausnahme. Der Fokus von Cantata liegt auf den Anforderungen an Unit- und Integrationstests, die an standardkonformen C- und C++-Code in eingebetteten Systemen gelegt werden.

Wie sollen Ihre Unit- und Integrationstests gestaltet sein, damit sie Ihre Anforderungen erfüllen? Wie können Sie Ihre eigenen Tests verbessern? Mit Cantata stellen Sie sich Ihr optimales Test-Set zusammen.

"Module testing early during development is becoming more important due to the increasing complexity of software. In practice Cantata has proved successful and increased unit testing efficiency. Cantata from QA Systems offers an ideal solution for the creation and execution of unit and integration tests, including coverage analysis."

Matthias Schmidt, Test management, Verification and Validation, Bosch Engineering GmbH

"Through years of experience in unit testing using Cantata for various platforms and languages… we are confident in suggesting Cantata to our clients."

Padmakumar TV, Senior Engineering Specialist, TATA Elxsi

Testtechniken: Das kann Cantata

TESTS AUF BASIS DER ANFORDERUNGEN

 

Macht die Software tatsächlich das, was sie tun soll? Mit Cantata testen Sie Ihre Software auf Basis Ihrer Anforderungen (Low-Level Anforderungen, Spezifikationen oder Modelle).

Der Cantata Test Harness testet den Code über ein Testskript. Dabei ruft es Funktionen mit ausgewählten Inputs (Parameter und Daten) auf. Der Abgleich des tatsächlichen mit dem erwarteten Verhalten der Software erfolgt automatisiert.

Da die Anforderungen in die Cantata-IDE importiert werden können, ist es viel einfacher, Testfälle zu definieren und die Anforderungen mit Testfällen und Testskripts nachzuverfolgen (weitere Informationen finden Sie in der Funktionalität „Cantata Anforderungen nachverfolgen“)

ROBUSTHEITSTESTS

 

Cantata unterstützt dynamische Stabilitätstests. So kann geprüft werden, ob der Code auch mit abweichenden Bedingungen fertig wird. Dabei werden Techniken eingesetzt, die von allen Sicherheitsstandards verlangt werden. Zum Beispiel:

  • abnormal system initialization
  • invalid inputs & data
  • failure mode handling
  • boundary values
  • arithmetic edge conditions
  • timing constraints
  • memory allocation
  • error seeding

Stabilitätstests sind mit den Cantata Robustness Regel-Sets ganz einfach. Die Regel-Sets enthalten vordefinierte Werte für die Basisdatentypen in Testschleifen. Alle verfügbaren globalen Daten werden automatisch auf unbeabsichtigte Änderungen geprüft. Mit den Cantata Testskripten und dem Wrapping können ganz einfach abweichende Testvorbedingungen erstellt werden. Genauso einfach ist es, Fehler während der Tests gezielt zu platzieren (weitere Informationen finden Sie in der Funktionalität „Cantata Einzigartige Aufrufsteuerung„).

STRUKTURTESTS

 

Gibt es Code, der bei Anforderungs- oder Stabilitätsstests übersehen wurde? Mit Strukturtests werden diese Testlücken lokalisiert und identifiziert

 

Die Cantata Codeabdeckung (innerhalb und außerhalb der Cantata- Tests) findet diese Lücken – im speziellen Kontext oder ganz allgemein. Wie schließt man diese Lücken? Entweder mit weiteren Testfällen auf Basis neuer Testfälle. Dabei wird dokumentiert, weshalb der Code nicht in einem speziellen Kontext ausgeführt werden soll. Oder, indem man redundaten Code entfernt (weitere Informationen finden Sie in der Funktionalität „Cantata Codeabdeckung“).

 

Cantata AutoTest generiert automatisch ganze Testskripte oder zusätzliche Testfälle. So wird das Ziel einer 100-Prozent-Abdeckung für C und C++ Code erreicht (weitere Informationen finden Sie in der Funktionalität „Cantata AutoTest“)

TEST DRIVEN DEVELOPMENT (TDD)

 

Cantata ermöglicht das Schreiben von Tests, sobald Funktionsprototypen innerhalb von Headerdateien erstellt werden. Dies gibt Ihnen die Gelegenheit Tests zu erstellen, bevor das Gerüst/der Aufbau der zu testenden Software vollständig implementiert ist. Cantata für TDD erweitert die traditionellen Black-Box-TDD-Techniken, indem es Zugang zu vollwertigen White-Box-Tests auf verkapselten Code Interna wie privaten/statischen Daten und Funktionen bietet.

BLACK-BOX-TESTS

Beim Black-Box-Testen wird der Code nur über seine Schnittstellen geprüft. Ob sich der Code korrekt verhält, kann hier auch ohne Kenntnis der internen Gegebenheiten geprüft werden.

Cantata bringt mehr Leistung ins Black-Box-Testen. Dieselben Funktionen können mit großen Daten-Sets – Input-Parameter oder Datenwerten – aufgerufen werden.

Die Reihenfolge der erwarteten Aufrufe und erwarteten Rückgabewerte kann variieren – abhängig von den Eingabedaten-Sets. Daneben werden die globalen Daten-Outputs während des Tests geprüft.

Die parametergesteuerten Testdaten-Sets von Cantata können über CSV importiert oder exportiert werden. Bei der Auswahl der Testvektoren hilft ein GUI-kombinatorischer Effektrechner. Die automatische Abdeckungsoptimierung in Cantata findet das jeweils bestmögliche Set der Testvektoren, das benötigt wird, um die Abdeckungsziele zu erreichen.

WHITE-BOX-TESTS

Bei White-Box-Tests greift der Test auch auf eingeschlossene Code-Interna zu (private bzw. statische Daten und Funktionen).

Cantata gewährt Testern direkten Zugriff darauf, ohne dass der produktive Code mit bedingter Kompilierung verunreinigt wird. Für den Fall einer vollautomatischen Erreichbarkeitsausstattung geschieht dies nur während des Tests.

VERFAHRENS- UND ZUSTANDSTESTS

 

Cantata Verfahrenstests prüfen die Prozesslogik oder Algorithmen in Funktionen, indem sie geeignete Parameter-Sets oder Dateneingaben nutzen und prüfen, ob die Aufrufe und Wiedergabewerte so sind, wie es erwartet wird. Cantata analysiert den Source Code, um Testskripte zu generieren mit den notwendigen Test-Hooks auf Funktionsparametern und den für die User zugänglichen Daten für Eingabe und Prüfung.

Zustände werden über Auslösebedingungen getestet. Sie schaffen Ereignisse, um korrekte Zustandsübergänge zu prüfen. Cantata-White-Box-Tests macht das besonders effizient, denn es verfügt über einen direkten Zugang zu lokalen statischen Funktionsdaten.

 

Um sicher zu sein, dass der Code auch in verschiedenen Zuständen getestet worden ist, kann die benutzerdefinierte Kontext-Codeabdeckung in Cantata eingesetzt werden (weitere Informationen finden Sie in der Funktionalität „Cantata Codeabdeckung“).

 

OBJEKTORIENTIERTES TESTEN

 

Die Cantata OO-Style-Tests stehen als Klassen für Testmethoden, Templates oder Clusterklassen zur Verfügung. Sie bieten:

  • Automatisierte Wiederverwendung von Testfällen über eine parallele Vererbungshierarchie
  • Automatisierte Testklassen-Vererbungsstruktur über vererbte Klassen
  • Automatisierte konkrete Umsetzungen abstrakter Basisklassen (ABCs) oder Pure Virtual Methods (PVMs)

Um die Klassenabhängigkeitsketten aufzubrechen und isolierte C++-Tests zu vereinfachen, findet und löst Cantata automatisch Abhängigkeiten auf undefinierte Verweise, die nicht direkt von der Software während des Tests aufgerufen werden (weitere Informationen finden Sie in der Funktionalität „Cantata Einzigartige Aufrufsteuerung – Wrapping“).

ISOLIERTE UNITTESTS

 

Cantata schreibt nicht vor, welcher Teil des Codes als Unit getestet wird oder wie sehr jede Unit vom Rest des Systems abgetrennt wird. Cantata ist da völlig flexibel. Die automatisch konfigurierbare Generation von Stubs und Isolates zum Simulieren und die Wrapper für das interne und externe Abfangen von Aufrufen machen es während des Tests möglich. Cantata prüft, sobald eine Unit kompiliert wird, ob die internen Prozesse richtig laufen und ob die Interfaces (Parameter und Daten) korrekt eingesetzt werden. Und das ohne Zugriff auf den Rest des Systems.

Dafür erstellt Cantata einen initialen ausführbaren Testfall für jede Funktion und jede Methode in der oder den ausgewählten Quelldatei/en. Die Cantata Unittests rufen eine Funktion auf und initialisieren dabei alle Input- und Output-Parameter, die verfügbaren Daten und erwarteten Aufrufreihenfolge. Die einzelnen Testfälle sind voneinander unabhängig, ebenso wie die Plattformen, auf denen sie laufen. So verhindert man eine Verkettung von Abhängigkeiten.

INTEGRATIONSTESTS

 

Integrationstests mit Cantata sind im Grunde große Unittests. Aus mehreren Units wird jedoch eine Gruppe gebildet, die dann als einzelne ausführbare Datei arbeitet. Ein solcher Test kann das interne Verhalten jeder Unit prüfen. Viel wichtiger ist aber, dass gleichzeitig die Interaktionen der einzelnen Units geprüft werden, zum Beispiel:

  • inter-unit memory allocation
  • order of data read / writes
  • order of calls between units

Die Integrationstests mit Cantata sind flexibel. Die Zugangspunkte für Testskripte sind frei wählbar, ob es sich nun um interne oder externe Simulationen (Stubs oder Isolates) handelt. Oder um Wrapper für verschiedene Integrationstestarten (top-down, bottom-up oder all-as-one).
Es ist auch möglich, die Cantata Wrapper in einer Testumgebung einzusetzen, die nicht von Cantata bereitgestellt wird. Damit gewinnen Sie eine bessere Kontrolle über die Integrationstests.

Die oben dargestellten Techniken können in unterschiedlichen Kombinationen angewendet werden, sodass sie mit den Anforderungen der Sicherheitsstandards und den Best-Practises der Industrie perfekt übereinstimmen.

Wie werden Testfälle optimal aufgebaut? Welche Anforderungen stellen die einzelnen Sicherheitsstandards? Weitere Informationen erhalten Sie in unseren umfangreichen „Resources“.

ZURÜCK ZU CANTATA

QA Systems GmbH
Roggenstrasse 11
71334 Waiblingen | Germany

© 2022 QA SYSTEMS GMBH

Die Produktnamen Cantata und QA-MISRA sind eingetragene Marken der QA Systems GmbH.

„MISRA“ und „MISRA C“ sind eingetragene Marken der MISRA Consortium Limited.
QA-MISRA ist ein unabhängiges Werkzeug von QA Systems und steht nicht in Verbindung mit der MISRA Consortium Limited.

Phone: +49 (0)711 138183 -0
Fax: +49 (0)711 138183 -10
E-Mail: [email protected]

  • Imprint
  • Privacy Policy
  • Contact
  • Resources

Newsletter

Get the latest technology news updates, product releases plus tips and tricks:

Anmeldung zum Newsletter
  • Folgen
  • Folgen

Newsletter

Get the latest technology news updates, product releases plus tips and tricks:

Anmeldung zum Newsletter
  • Folgen
  • Folgen

Phone: +49 (0)711 138183 -0
Fax: +49 (0)711 138183 -10
[email protected]

  • Imprint
  • Privacy Policy
  • Contact
  • Resources

QA Systems GmbH
Roggenstrasse 11
71334 Waiblingen Stuttgart | Germany

© 2021 QA SYSTEMS GMBH

Start
Trial
×

Login

Passwort vergessen?

Oder

Konto erstellen

Anmeldung für den Zugriff auf die Premium-Inhalte

Registrieren Sie sich für vollen Zugriff auf unsere umfangreiche Ressourcen-Bibliothek. 

  • This field is for validation purposes and should be left unchanged.

×

Flexible Testtechniken

Akademie Anmeldeformular

  • Kontaktdaten des Teilnehmers

  • QA Systems reserviert im jeweiligen Seminarhotel – in der Regel zu Sonderkonditionen – eine begrenzte Zimmeranzahl als Abrufkontingent. Die Reservierung sowie die Abrechnung der Zimmer sind von den Teilnehmern direkt mit dem Hotel abzuwickeln. Wenn Sie die Hotelinformationen erhalten möchten, bitte hier entsprechend markieren:
  • This field is for validation purposes and should be left unchanged.

Diese Website verwendet Cookies um Ihnen ein angenehmeres Surfen zu ermöglichen.

Wenn Sie diese Website nutzen akzeptieren Sie die Verwendung von Cookies. Mehr erfahren
OK
Change Settings
Cookie-Box-Einstellungen
Cookie-Box-Einstellungen

Privacy settings

Decide which cookies you want to allow. You can change these settings at any time. However, this can result in some functions no longer being available. For information on deleting the cookies, please consult your browser’s help function. Learn more about the cookies we use.

With the slider, you can enable or disable different types of cookies:

  • Block all
  • Essential
  • Functionality
  • Analytics
  • Advertising

This website will:

  • Essential: Remember your cookie permission setting
  • Essential: Allow session cookies
  • Essential: Gather information you input into a contact forms, newsletter and other forms across all pages
  • Essential: Keep track of what you input in a shopping cart
  • Essential: Authenticate that you are logged into your user account
  • Essential: Remember language version you selected

This website won't:

  • Remember your login details
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location

This website will:

  • Essential: Remember your cookie permission setting
  • Essential: Allow session cookies
  • Essential: Gather information you input into a contact forms, newsletter and other forms across all pages
  • Essential: Keep track of what you input in a shopping cart
  • Essential: Authenticate that you are logged into your user account
  • Essential: Remember language version you selected
  • Functionality: Remember social media settings
  • Functionality: Remember selected region and country

This website won't:

  • Remember your login details
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Tailor information and advertising to your interests based on e.g. the content you have visited before. (Currently we do not use targeting or targeting cookies.
  • Advertising: Gather personally identifiable information such as name and location

This website will:

  • Essential: Remember your cookie permission setting
  • Essential: Allow session cookies
  • Essential: Gather information you input into a contact forms, newsletter and other forms across all pages
  • Essential: Keep track of what you input in a shopping cart
  • Essential: Authenticate that you are logged into your user account
  • Essential: Remember language version you selected
  • Functionality: Remember social media settingsl Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions

This website won't:

  • Remember your login details
  • Advertising: Use information for tailored advertising with third parties
  • Advertising: Allow you to connect to social sites
  • Advertising: Identify device you are using
  • Advertising: Gather personally identifiable information such as name and location

This website will:

  • Essential: Remember your cookie permission setting
  • Essential: Allow session cookies
  • Essential: Gather information you input into a contact forms, newsletter and other forms across all pages
  • Essential: Keep track of what you input in a shopping cart
  • Essential: Authenticate that you are logged into your user account
  • Essential: Remember language version you selected
  • Functionality: Remember social media settingsl Functionality: Remember selected region and country
  • Analytics: Keep track of your visited pages and interaction taken
  • Analytics: Keep track about your location and region based on your IP number
  • Analytics: Keep track of the time spent on each page
  • Analytics: Increase the data quality of the statistics functions
  • Advertising: Use information for tailored advertising with third parties
  • Advertising: Allow you to connect to social sitesl Advertising: Identify device you are using
  • Advertising: Gather personally identifiable information such as name and location

This website won't:

  • Remember your login details
Save & Close