Benutzer:Istec mlo/ISTEC Test-Center

aus Wikipedia, der freien Enzyklopädie
Datei:TestCenter UI.png
User-Interface des ISTEC Test-Centers

Das ISTEC Test-Center 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 Test-Center 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 Test-Center wird von dem deutschen Softwareunternehmen ISTEC Industrielle Software-Technik GmbH mit Sitz in Stuttgart und Karlsruhe entwickelt.

Motivation

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

Das Test-Center-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 Test-Center auch für Systemanalytiker und Fachanwender attraktiv und nutzbar.

Funktionsumfang

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

Technik und Architektur

Technologie- und Plattformunabhängigkeit durch Test-Agenten

Schnittstellen

Sämtliche Schnittstellen des Test-Centers 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

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

Die Ausführung von Testschritten erfolgt im Test-Center ü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 Test-Center. Dadurch werden Störeinflüsse auf das Laufzeitverhalten bei Tests minimiert. Das Test-Center 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

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

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

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 Test-Center 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

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

Sämtliche Konfigurationsobjekte und Testartefakte des Test-Centers 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

Reports werden vom Test-Center 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

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

Lizenzierung

Das ISTEC Test-Center 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 Test-Center den Kunden für eine Nutzung weiterhin zur Verfügung.

Einzelnachweise

Weblinks


[[Kategorie:Testsoftware]]