eclipse

Name

TPTP

Homepage

http://www.eclipse.org/tptp/

Lizenz

Eclipse Public Licence (EPL), Common Public Licence (CPL)

Untersuchte Version

Version 4.5.1

Letzter Untersuchungszeitpunkt

25.10.2010

Kurzbeschreibung

Das Projekt "Eclipse Test and Performance Tools Platform" (TPTP) stellt als umfangreiches Plug-In für das freie Entwicklungstool "Eclipse" eine offene Plattform mit mächtigen Frameworks und Diensten zu Verfügung, welche Softwareentwicklern die Möglichkeit bietet, sowohl auf OpenSource-Basis, als auch auf kommerzieller Ebene, Tools für Performancetests zu entwickeln, welche sich einfach in andere Projekte und Umgebungen integrieren lassen und problemlos mit vorhandenen Tools kooperieren.

TPTP unterstützt den Entwickler während des gesamten Test- und Performance-Lebenszyklus, von frühen Tests bis zum Monitoring von Teilapplikationen, mit Möglichkeiten zur einfachen Testerstellung, -bearbeitung und -ausführung, sowie Monitoring, Tracing&Profiling und der Logdateien-Analyse. TPTP ist plattformunabhängig und ermöglicht den Einsatz auf Systemen im Bereich embedded, standalone, enterprise, and high-performance.

Fazit

TPTP ist eine mächtige Analyse-, Profiling- und Testing-Erweiterung für die Java-Entwicklungsumgebung Eclipse. Positiv sind die hohe Individualisierbarkeit und die enge Einbindung in Eclipse. So ist es häufig möglich, eigenen Code einzubetten oder nach Bedarf andere Komponenten wie z.B. JFreeChart zu Zwecken der grafischen Darstellung einzubinden. Leicht zu findende Funktionalitäten wie "Profile as" sind ins Eclipse-Menü integriert, allerdings gibt es auch viele "versteckte" TPTP-Komponenten, bei denen nicht sofort ersichtlich ist, dass diese zu TPTP gehören. Viele wiederkehrende Aufgaben innerhalb von Eclipse können durch den "Automated GUI Recorder" gelöst werden. Dieser ist sehr umfangreich, allerdings ist es nicht möglich, mit diesem eigene Java-Programme aufzunehmen und abzuspielen, was die Einsatzmöglichkeiten einschränkt. Die Profiling-Werkzeuge sind intuitiv und einfach zu bedienen und die erzeugten Ergebnisse in Text- und Diagrammform sehr aufschlussreich. Die Dokumentation macht einen chaotischen Eindruck. Anhand der Dokumentation wird sehr deutlich sichtbar, dass das umfangreiche Projekt TPTP nach und nach gewachsen ist und auch teils andere Projekte aufgenommen hat. Es stellte sich als recht schwierig heraus, Dokumentationen zu einzelnen TPTP-Komponenten zu finden, zumal manche Funktionalitäten nicht einmal dokumentiert sind und externe Quellen aufgesucht werden müssen.
Alles in allem ist TPTP sehr mächtig und deckt fast alle wichtigen Themengebiete zu den vier Hauptaspekten ab, benötigt jedoch auch eine relativ lange Einarbeitungszeit und gute Programmierkenntnisse, um diese sinnvoll nutzen zu können.

Einsatzgebiete

Einsatzumgebungen

TPTP ist ein Eclipse-PlugIn.

Installation

Download der Eclipse SDK inklusive TPTP:

Ein komplettes Eclipse-Paket inklusive der aktuellsten Version von TPTP kann hier für Windows und Linux heruntergeladen werden.

Installieren (unter Linux):

Installieren (unter Windows):

Dokumentation

Der Online-Auftritt des TPTP-Projektes bietet auf etwas umständlichen Wegen Dokumentationen zu den Projektteilbereichen, jedoch meist in Form von Tutorials. Links von der Projektstartseite führen häufig nur auf Themenübersichten, weniger auf detaillierte funktionale Beschreibungen. Eine Stichwortsuche über Google führt meist schneller zum gewünschten Dokumentationsabschnitt, als die manuelle Suche über die Startseite. Dieser Umstand macht es schwierig, gezielt bestimmte Informationen zu finden und zu extrahieren. Zwar werden zu jedem Themenbereich Tutorials angeboten, jedoch gelten diese oft für veraltete Versionen des Projektes. Dementsprechend haben sich in den neueren TPTP-Versionen z.B. Bezeichnungen verändert, so dass bestimmte Sachverhalte nicht sofort ersichtlich sind. Z.B. sind bestimmte Buttons anders benannt oder nicht mehr existent.
Tutorials gibt es in zwei Ausführungen: Text- und Video-Tutorials bzw. Kombinationen aus beidem.
Anhand der Video-Tutorials sind die einzelnen Arbeitsschritte leicht nachzuvollziehen, dennoch sind diese allein meist wenig hilfreich, so dass die nötigen Hintergrundinformationen um den gesamten Kontext begreifen zu können nicht vermittelt werden.
Die Text-Tutorials gestalten sich für den Leser schlüssig und sind mit reichlich Screenshots ausgestattet, allerdings bestehen sie meist nur aus Anweisungen zur Ausführung der benötigten Arbeitsschritte. Das sture Abarbeiten der dargestellten Aktionen ist wenig intuitiv und an den eigentlichen Sinn und Zweck ist hierdurch nur schwer heranzukommen.

Wartung der Projektseite

Die Wartung der Projektseite ist sehr durchwachsen. Zwar werden regelmäßig neue TPTP-Versionen veröffentlicht, jedoch finden die modulbezogenen Teile des Projektes weniger Beachtung als die eigentliche "Plattform" und scheinen nicht mehr regelmäßig aktualisiert zu werden (siehe Abschnitt "Dokumentation").
Es existiert ein Liste mit wöchentlichen Updates und Bugfixes zu TPTP.

Nutzergruppen und Support

Es gibt insgesamt 6 Mailinglisten. Davon sind 4 für die Hauptaspekte des TPTP-Projektes, namentlich TPTP Platform, TPTP Monitoring Tools, TPTP Tracing & Profiling Tools und TPTP Testing Tools, zudem eine Mailingliste für wichtige Informationen und Meilensteine des Projekts und eine Liste für PMC communications (Project Management Committee).
Um in die Newsgroup posten zu können, muss man einen Bugzilla-Account erstellen. Dies geht einfach über einen Link und unter Angabe einer eMail-Adresse. Die Fragen werden zügig von einem PMC- oder anderem Newsgroup-Mitglied beantwortet. Zudem existiert ein übersichtliches Archiv aller jemals geposteten Fragen und Antworten.
Außerdem sind viele mögliche Fragen und Probleme in einem ausführlichen FAQ aufgeführt, das nicht nur Antworten zur Newsgroup gibt, sondern auch zu allgemeinen Themen wie Bugs oder Zugriff auf PlugIns als Committer.

Intuitive Nutzbarkeit

Die Intuitivität zwischen den einzelnen TPTP-Teilkomponenten variiert teils stark. So ist das simple Profilen der Ausführungszeit oder ein Speicherauslastungstest ohne große Schwierigkeiten auf ein beliebiges Programm anwendbar. Aufgrund schwer auffindbarer Menübereiche und der etwas dürftig gehaltenen Dokumentation ist ein vollständiger Einblick in die tieferen Ebenen der TPTP-Plattform annähernd unmöglich. Selbst mit Hilfe der Tutorials ist es schwierig nachzuvollziehen, wo was wie warum getan wird, und welchen Zweck die jeweilige Funktionalität im Endeffekt überhaupt erfüllt.

Automatisierung

Mit Hilfe des "Automated GUI Recorders" lassen sich Entwicklungsschritte aufzeichnen, variieren und mit hilfreicher Fehlerbehandlung rekonstruieren. Dies ermöglicht das Aufnehmen und Abspielen von durchgeführten Arbeitsabfolgen innerhalb der Eclipseumgebung. Dazu wird jedoch dringend empfohlen, das dazugehörige Tutorial durchzuarbeiten.

ANT

JUnit
Die Automatisierung von JUnit-Tests in TPTP mit Hilfe von Ant lassen sich genauso wie normale JUnit-Tests unter Ant aufbauen. Der einzige Unterschied liegt dabei in den benötigten Bibliotheken. Als Beispielprojekt wurde auf das bestehende Projekt TPTP_JUnit zurückgegriffen. Damit das Kompilieren der Sourcen ohne Probleme vollendet werden kann, werden die folgenden Pakete benötigt. Die drei folgenden Bibliotheken werden zur Übersetzung der TPTP-Sourcen benötigt. Somit können TPTP-Unit-Tests und seine Vorteile genutzt werden, aber auch eine Automatisierung mit Hilfe von Ant stellt kein Problem dar. Sodass beide Vorteile der Frameworks genutzt werden können.
Eine Beispielautomatisierung ist hier zu finden.

Laufzeitanalyse
Die Ant-Unterstützung bei der Laufzeitanalyse (Execution Time Analysis) ist nicht gegeben. Die Einstellungen werden mittels des TPTP-Frameworks vorgenommen und jegliche Auswertung wird auch mittels dieser analysiert. Zusätzlich besteht auch keine weitere Möglichkeit auf bestimmte Log- oder Report-Dateien zuzugreifen. Dazu ist zu erwähnen, dass das TPTP-Framework schon ein funktionsreiches Programm zur Ausführung und Analyse der Laufzeittests ist.
Speicherverbrauch und Thread-Verhalten
Die Tests des Speicherverbrauchs und des Threading ähneln stark dem Verhalten der Laufzeitanalyse. Die Einstellung werden mittels des TPTP-Frameworks vorgenommen und die erzeugten Log- bzw. Report-Dateien sind nicht von außen zugreifbar.

Einführendes Beispiel

TPTP Profiling and Logging

Mit dem TPTP Profiling-Tool ist es möglich, Laufzeittests auf vorhandene Programme anzuwenden.

Gestartet werden diese Tests, indem innerhalb der Eclipse Entwicklungsumgebung bei einem Rechtsklick auf das Projekt oder einer Main-Klasse des Projekts der Menüpunkt

gewählt wird.

Hier lassen sich den einzelnen Projekt-Klassen unter der Rubrik Monitor (neben anderen Rubriken) vier verschiedene Profiling-Methoden zuweisen:

--> 1.1 Laufzeittests / "Execution Time Analysis"

Eine weitere TPTP-Studie befindet sich hier.

--> 1.2 Speicherauslastungstests / "Memory Analysis"

--> 1.3 "Thread Analysis"

--> 1.4 "Probe Insertion"


TPTP Testing-Tools

Mit dem TPTP Testing-Tool ist es möglich, die Funktionalität von Methoden zu überprüfen.

--> 2. "Automated GUI Recorder"

--> 3. "TPTP JUnit Tests"

Detaillierte Beschreibung

Siehe Dokumentationen und Tutorials auf der Webseite des Herstellers.

Literatur

keine

Zurück zur Werkzeugübersicht
Zurück zur CSI-Hauptseite