Ü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:
-
Assistenten für Komponententest ausführen
-
Testdaten und erwartete Ergebnisse eingeben
-
Stub-Verhalten ändern
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).
Ausführliche
Informationen finden Sie in der Veröffentlichung Rational Test RealTime User Guide im Kapitel "Graphical User
Interface->Activity Wizards->Component Testing Wizard".
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.
Ausführliche
Informationen zu C und Ada finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User
Guide:
Ausführliche
Informationen zu C++ finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User
Guide:
Ausführliche
Informationen zu Java finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User
Guide:
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:
Ausführliche
Informationen zu C und Ada finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User
Guide:
Ausführliche
Informationen zu C++ finden Sie in den folgenden Kapiteln in der Veröffentlichung Rational Test RealTime User
Guide:
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.
|