Toolmentor: Entwicklertests mit Rational Test RealTime implementieren
Dieser Toolmentor beschreibt, wie Sie mit RationalTest RealTime Tests implementieren.
Tool: Rational Test RealTime
Beziehungen
Hauptbeschreibung

Überblick

Test RealTime enthält drei Testtools:

  • Unit Testing automatisiert Tests von C- und Ada-Softwarekomponenten.
  • Object Testing ist eine objektorientierte Lösung, mit der das Verhalten von C++-Code getestet werden kann.
  • System Testing ist eine leistungsstarke Umgebung für das Testen nachrichtenbasierter Anwendungen.

Welches Testtool Sie für Ihre Anwendung verwenden sollten, richtet sich nach der Entwicklungsumgebung und der Art der Anwendung. Für jedes Testtool müssen Sie ein dediziertes Testscript entwickeln.

Damit Sie die eigentlichen Tests für Ihre Anwendung schreiben können, setzt Test RealTime voraus, dass Sie das Testprojekt erstellen und das Projekt mit der zu testenden Anwendung verknüpfen.

Toolschritte

Führen Sie die folgenden Schritte aus, um ein Testscript in Test RealTime zu erstellen:

  1. Assistenten für Komponententest ausführen
  2. Testdaten und erwartete Ergebnisse eingeben
  3. Stub-Verhalten ändern

1. Assistenten für Komponententest ausführen

Test RealTime stellt einen Assistenten für Komponententest bereit, der angegebenen Quellcode analysiert und eine vollständig ausführbare Fehlersimulation generiert. Der Entwickler muss nur noch sicherstellen, dass der Zielcode wie geplant getestet wird, das Stub-Verhalten definieren (siehe zweiter Toolschritt) und Testdaten und erwartete Ergebnisse eingeben (dritter Toolschritt).

Anmerkung: Der Assistent für Komponententest muss nicht verwendet werden. Der gesamte Code und alle Dateien, die für die Unterstützung eines Tests erforderlich sind, können auch manuell generiert werden. Der Assistent kann jedoch eine erhebliche Erleichterung darstellen. In jedem Fall werden Testausführung und Testberichte automatisiert.

Der Assistent für Komponententest kann auf zwei Arten aufgerufen werden. Beide Methoden setzen voraus, dass bereits ein Test-RealTime-Projekt geöffnet wurde.

  • Wählen Sie den Link "Activities" auf der linken Seite der Startseite von Test RealTime aus. Wenn Sie diesen Link auswählen, erscheint eine Liste mit den drei Hauptaktivitäten, zwischen denen der Entwickler wählen kann. Für die Durchführung von Komponententests muss der Entwickler den Link "Component Testing" auswählen.

  • Klicken Sie im Asset Browser des Projektfensters auf der rechten Seite von Test RealTime auf eine Quellendatei, eine Klasse, eine Methode, eine Funktion oder eine Prozedur. Wenn Sie die Option "Test..." im Popup-Menü auswählen, erscheint der Assistent für Komponententest.

Der primäre Unterschied zwischen den beiden Methoden zum Starten des Assistenten für Komponentenauswahl besteht darin, dass die erste Option erfordert, dass der Benutzer die Quellendateien auswählt, die die zu testenden Funktionen, Methoden oder Prozeduren enthält. Die zweite Option kennt die verwendete Quellendatei bereits und überspringt somit die ersten Schritte im Assistenten für Komponententest.

In beiden Fällen wird der Entwickler aufgefordert, einen Testmodus auszuwählen: Typical oder Expert. Der Unterschied zwischen den beiden Modi bezieht sich auf das gewünschte Stubbing-Verhalten. Nur zur Erinnerung: Ein Stub ist "eine Komponente, die Funktionalität für Testzwecke enthält", d. h. eine Komponente, die in einer vordefinierten Weise agiert, um das Testen verschiedener anderer Systemkomponenten zu erleichtern. Im Modus "Typical" generiert Test RealTime automatisch eine Stub-Vorlage für alle Funktionen, Methoden oder Prozeduren, die in den ausgewählten Quellendateien explizit referenziert werden. Im Modus "Expert" können Sie zusätzliche Komponenten auswählen, die in den ausgewählten Quellendateien nicht explizit referenziert werden. In beiden Modi wird die eigentliche Funktionalität dieser Stubs zu einem späteren Zeitpunkt definiert. Informationen hierzu finden Sie im zweiten Toolschritt.

Nachdem der Assistent ausgeführt wurde, erstellt Test RealTime einen Knoten im aktiven Projekt. Dieser Knoten enthält eine Referenz auf die ausgewählten Quellendateien sowie auf die Dateien, die zum Erstellen der Fehlersimulation erforderlich sind. Diese zusätzlichen Dateien müssen geändert werden, um

  • das Stub-Verhalten zu definieren,
  • das Datum anzugeben, um die zu testenden Funktionen, Methoden oder Prozeduren anzustoßen,
  • die erwarteten Ergebnisse für jeden Eingabedatensatz anzugeben.

Für C, C++ und Ada wurden die Fehlersimulation, Test-Stubs und Testscriptsprachen von Rational Software erstellt, um den Feinheiten dieser Sprachen Rechnung zu tragen. Für Java verwendet Test RealTime Java als Testscriptsprache und stützt sich für die Fehlersimulations- und Test-Stub-Frameworks auf das JUnit-Framework (http://www.junit.org).

Symbol für Buch Ausführliche Informationen finden Sie in der Veröffentlichung Rational Test RealTime User Guide im Kapitel "Graphical User Interface->Activity Wizards->Component Testing Wizard".

2. Testdaten und erwartete Ergebnisse eingeben

Die Testscripts, die vom Assistenten für Komponententest generiert werden, können direkt ausgeführt werden. Bis der Entwickler die eigentlichen Daten, mit denen die zu testende Komponente angestoßen wird, und die erwarteten Ausgabewerte angibt, ist der Test jedoch weder hilfreich noch informativ.

Jede von Test RealTime unterstützte Sprache vereinfacht die Testerstellung auf unterschiedliche Weise. Jede Methode wurde für die jeweiligen Merkmale der Sprache optimiert. C++ ist insofern eindeutiger, als nicht nur Standardtests generiert und ausgeführt, sondern auch optionale vertragliche Überprüfungen vorgenommen werden können. Vertragliche Überprüfungen verhalten sich wie Zusicherungen (Asserts). Sie werden verwendet, um Elemente wie Vor- und Nachbedingungen und Invarianten zu prüfen.

Symbol für Buch Ausführliche Informationen zu C und Ada finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User Guide:

  • Automated Testing->Component Testing for C and Ada->C and Ada Test Script->Overview->Test Script Structure
  • Automated Testing->Component Testing for C and Ada->C and Ada Test Script->Ada

    Symbol für Buch Lesen Sie außerdem die folgenden Kapitel in der Veröffentlichung Rational Test RealTime Reference Guide:

  • Component Testing Scripting Languages->C Test Script Language->C Test Script Language Keywords->ELEMENT...END ELEMENT
  • Component Testing Scripting Languages->C Test Script Language->C Test Script Language Keywords->ENVIRONMENT...END ENVIRONMENT
  • Component Testing Scripting Languages->Ada Test Script Language->Ada Test Script Language Keywords->ELEMENT...END ELEMENT
  • Component Testing Scripting Languages->Ada Test Script Language->Ada Test Script Language Keywords->ENVIRONMENT...END ENVIRONMENT

Symbol für Buch Ausführliche Informationen zu C++ finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User Guide:

  • Automated Testing->Component Testing for C++->C++ Testing Overview

    Symbol für Buch Lesen Sie außerdem die folgenden Kapitel in der Veröffentlichung Rational Test RealTime Reference Guide:

  • Component Testing Scripting Languages->C++ Test Script Language->C++ Test Driver Scripts

Symbol für Buch Ausführliche Informationen zu Java finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User Guide:

  • Automated Testing->Component Testing for Java->Java Testing Overview->About JUnit

    Symbol für Buch Lesen Sie außerdem die folgenden Kapitel in der Veröffentlichung Rational Test RealTime Reference Guide:

  • Component Testing Scripting Languages->Java Test Primitives

3. Stub-Verhalten ändern

Komponenten sind so konzipiert, dass sie sich auf eine bestimmte Weise verhalten. Diese Komponenten müssen unabhängig von ihrer Granularität auf bestimmte Eingaben mit bestimmten vordefinierbaren Ausgaben reagieren. "Vordefinierbar" bedeutet, dass die Ergebnisse vor der Testausführung angegeben werden können, entweder explizit oder algorithmisch.

Sehr häufig bedürfen Komponenten der Unterstützung anderer Komponenten im System, um ihre Funktionalität erbringen zu können. Diese anderen Komponenten können einfach eine zusätzliche Funktion oder aber auch ein vollständiges Subsystem an anderer Stelle im System sein. In beiden Fällen ist es nicht ungewöhnlich, dass ein Entwickler feststellt, dass seine Komponententests dadurch erschwert werden, dass die Komponenten, auf die sich sein Code stützt, noch nicht vorhanden sind oder noch nicht zuverlässig funktionieren. Durch Stubbing können diese Schwierigkeiten kompensiert werden. (Tatsächlich kann mit Stubbing eine ordnungsgemäße Funktionsweise garantiert werden, indem eine vollkommene Autarkie von Codes Dritter erreicht wird.)

Der Entwickler ist dafür verantwortlich, die Komponenten, auf die sich die zu testende Komponente stützt, zu simulieren. Eine ordentliche Simulation bedeutet, dass die Stub-Funktionalität ausreichend genau sein muss, um sicherzustellen, dass der Erfolg oder Misserfolg der zu testenden Komponente immer zur Komponente selbst zurückverfolgt werden kann und nicht auf ungültige Informationen, die von den Stubs erzeugt werden.

Rational Test RealTime vereinfacht die Erstellung der Stubs mit den unterstützten Test-Scripting-Sprachen. Informationen zum Erstellen von Test-Stubs finden Sie in den folgende Quellen:

Symbol für Buch Ausführliche Informationen zu C und Ada finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User Guide:

  • Automated Testing->Component Testing for C and Ada->C and Ada Test Script->Simulations->Stub Simulation Overview

    Symbol für Buch Lesen Sie außerdem die folgenden Kapitel in der Veröffentlichung Rational Test RealTime Reference Guide:

  • Component Testing Scripting Languages->C Test Script Language->C Test Script Language Keywords->STUB
  • Component Testing Scripting Languages->Ada Test Script Language->Ada Test Script Language Keywords->STUB

Symbol für Buch Ausführliche Informationen zu C++ finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User Guide:

  • Automated Testing->Component Testing for C++->C++ Testing Overview->C++ Test Driver Script

    Symbol für Buch Lesen Sie außerdem die folgenden Kapitel in der Veröffentlichung Rational Test RealTime Reference Guide:

  • Component Testing Scripting Languages->C++ Test Script Language->C++ Test Script Keywords->STUB

Symbol für Buch Ausführliche Informationen zu Java finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User Guide:

  • Automated Testing->Component Testing for Java->Java Testing Overview->Java Stub Harness

Weitere Informationen

Ausführliche Informationen zur Ausführung einer Testaktion finden Sie im Toolmentor Tests mit Rational Test RealTime ausführen.