FANDOM


TestCenter UI

User-Interface des ISTEC TestCenters

Das ISTEC TestCenter ist ein Werkzeug für die Testautomatisierung in der Software-Entwicklung. Das leichtgewichtige Tool zeichnet sich vor allem durch Technologieunabhängigkeit gegenüber dem Zielsystem und einen hohen Automatisierungsgrad aus. Im Fokus stehen hierbei funktionale Tests, Regressionstest, sowie Last- und Dauerlasttests. Das TestCenter stellt Funktionen für Testplanung, Testdurchführung, Testauswertung und Reporting zur Verfügung. Die Benutzeroberfläche ist wie ein virtueller Baukasten aufgebaut, mit dem Testfälle per Drag & Drop zusammen gestellt werden können. Die Schnittstellenanbindung erfolgt über frei programmierbare Plugin-Module. Das ISTEC TestCenter wird von dem deutschen Softwareunternehmen ISTEC Industrielle Software-Technik GmbH mit Sitz in Stuttgart und Karlsruhe entwickelt.

Motivation Bearbeiten

Die Automatisierung von Testaktivitäten in der Softwareentwicklung kann zu ganz erheblichen Zeit- und Budgeteinsparungen führen. Gleichzeitig führt die Automatisierung zu einer Steigerung von Qualität und Planungssicherheit durch eine Verbesserung der Testabdeckung und -Tiefe. Releasezyklen können sich durch automatisierte Regressionstests stark verkürzen und damit die Reaktionszeiten bei Ausfällen drastisch reduzieren.
Dies gilt insbesondere für:

Philosophie Bearbeiten

Das TestCenter-Framework bietet die Möglichkeit, Entwickler-, Integrations-, oder Gesamtsystemtests durchzuführen. Das Hauptaugenmerk liegt aber auf letzteren Beiden, denn durch die Abbildung komplexer Use-Cases bzw. ganzer Geschäftsvorfälle in Testfällen wird das System nicht nur technisch sondern auch fachlich getestet. Dies ermöglicht es, neben der Aufdeckung klassischer Software-Bugs, auch Fehler oder Unschärfen in den Requirements zu finden. Da die Testfälle fachliche Anforderungen widerspiegeln, sind sie zudem allgemeinverständlich. Dadurch wird das TestCenter auch für Systemanalytiker und Fachanwender attraktiv und nutzbar.

Funktionsumfang Bearbeiten

  • Funktionale Tests
  • Regressionstests
  • Lasttests
  • Dauerlasttests
  • Ergebnisauswertung
  • Testprotokollierung
  • Reporting

Technik und Architektur Bearbeiten

TestCenter Schema

Technologie- und Plattformunabhängigkeit durch Test-Agenten

Schnittstellen Bearbeiten

Sämtliche Schnittstellen des TestCenters sind frei von fachlichen oder technischen Abhängigkeiten zum zu testenden System. Dadurch sind keinerlei Anpassungen am Zielsystem selbst erforderlich, welche die Aussagekraft der Testergebnisse beeinträchtigen könnten.

Testmodule Bearbeiten

Die API-Funktionen des zu testenden Systems werden in hoch konfigurierbaren Testmodulen bzw. Plugins gekapselt. Jedes Testmodul stellt einen Testschritt innerhalb eines Testfalls dar, der Parameter und eine Ergebniserwartung besitzen kann. Die Testmodule bieten Mechanismen an, um den Anwender durch Hilfestellungen fehlerfrei durch den Konfigurationsprozess zu führen. Dadurch entfällt die oft langwierige Suche nach Fehlern in einer Testfallkonfiguration. Ein Testfall wird durch die Kombination von verschiedenen Testmodulen erstellt.

Agenten Bearbeiten

Die Ausführung von Testschritten erfolgt im TestCenter über sogenannte Test-Agenten. Ein Agent wird als separater Prozess aufgestartet, der entweder das Ziel-System direkt mit aufstartet, oder eine Zugriffsschicht zum Zielsystem bietet. Der Agent benutzt einen Mechanismus, um die Plugins, sowie das Ziel-System oder die Zugriffsschicht dynamisch zu laden. Dazu können Verzeichnisse oder Pfade direkt angegeben werden, in denen der Agent nach Plugins oder Programmbibliotheken sucht und diese verwendet. Die Agenten werden über ein simples Textprotokoll via TCP/IP gesteuert und sind funktional sehr schlank gehalten. Sie triggern lediglich die Ausführung der Testmodule an und kümmern sich um die Rückmeldung der Ergebnisse an das TestCenter. Dadurch werden Störeinflüsse auf das Laufzeitverhalten bei Tests minimiert. Das TestCenter als steuernde Instanz wird von Abstürzen oder Deadlocks in der Testinstanz nicht tangiert, da es in einem separaten Prozess läuft. Damit wird verhindert, dass es zu einem Verlust von Testergebnissen kommt.

Technologieunabhängigkeit Bearbeiten

Durch die Testausführung mittels Agenten kann eine weitestgehende Technologieunabhängigkeit vom zu testenden System erreicht werden. Die Agenten müssen dazu in einer Technologie implementiert sein, über die sie die API des Zielsystems ansprechen können. Die Implementierung beinhaltet hierbei lediglich die Kommunikation über TCP/IP, den Plugin-Mechanismus sowie die Unterstützung des Kommunikationsprotokolls.

Test verteilter Systeme Bearbeiten

Für jeden Testschritt innerhalb eines Testfalls kann ein eigener Ausführungsagent angegeben werden. Dadurch können in einem Testfall verschiedene Zieltechnologien auf unterschieldichen Systemplattformen und Standorten angesprochen, getestet und in einem Gesamtkontext ausgewertet werden.

Manuelle Prüfschritte Bearbeiten

Je nach Anforderung und Umfeld kann es vorkommen, dass nicht alle Testschritte innerhalb eines Testfalls automatisiert durchgeführt werden können. Für diesen Fall bietet das das TestCenter die Möglichkeit, manuelle Prüfschritte für einen Testfall zu spezifizieren. Dies können auszuführende Aktionen oder durchzuführende Prüfungen sein. Ein manueller Prüfschritt wird durch eine Position im Testablauf und eine umgangssprachliche Beschreibung der durchzuführenden Aktion/Prüfung definiert. Zur Laufezeit hält der Testablauf bei jedem manuellen Prüfschritt an und wartet auf eine Benutzerinteraktion. Alternativ kann eine manuelle Prüfung auch erst im Nachgang an eine Testdurchführung erfolgen. Der Testfall hat bis zur Durchführung der nachträglichen Prüfung den Status "Not verified".

Testdaten Bearbeiten

Testdaten können entweder direkt im Testfall angegeben oder indirekt Referenziert werden. Bei der indirekten Referenzierung werden Daten unter Identifiern in einem gemeinsamen Speicherbereich abgelegt. Damit werden die Daten von jedem Testmodul innerhalb des Testablaufs nutzbar. Dies kann beispielsweise dafür genutzt werden, um Zwischenergebnisse, Arbeitsdaten oder Objekte zwischen einzelnen Testschritten auszutauschen.

Persistierung Bearbeiten

Sämtliche Konfigurationsobjekte und Testartefakte des TestCenters werden in XML persistiert und im Filesystem abgelegt. Dadurch können sie mit jedem File-basierten Versionsverwaltungssystem verwaltet, verteilt und archiviert werden. Jedes XML-Objekt beschreibt sich selbst kann auf weitere Objekte referenzieren. Das XML-Format vereinfacht den Austausch mit anderen Systemen wie Requirement-, Testmanagement-, Reporting- oder Issue-Tracking-Tools.

Reporting Bearbeiten

Reports werden vom TestCenter im Microsoft Excel Spreadsheet-Format erzeugt. Testergebnisse können dabei einzeln oder aggregiert in den Report einfliessen. Die Testergebnisse liegen in verschiedenen Detaillierungsebenen vor. Diese Ebenen reichen von der Gesamtübersicht aller durchgeführten Tests, über die Einzel- bis hin zur Detailansicht auf Testschrittebene.

Systemumgebung Bearbeiten

Das ISTEC TestCenter basiert auf Java SE und läuft damit auf allen Systemplattformen, für die entsprechende Java Runtime Environments verfügbar sind [1].

Lizenzierung Bearbeiten

Das ISTEC TestCenter ist grundsätzlich lizenzkostenfrei und kann im Rahmen gemeinsamer Projekte in Verbindung mit IT-Dienstleistungen und -Beratung von der ISTEC GmbH bezogen werden. Nach Projektende steht das TestCenter den Kunden für eine Nutzung weiterhin zur Verfügung.

Einzelnachweise Bearbeiten

  1. http://www.oracle.com/technetwork/java/javase/system-configurations-135212.html

Weblinks Bearbeiten

Info Sign  Dieser Wikipedia-Artikel wurde gemäß GFDL bzw. CC-by-sa mit allen Versionen importiert.