Benutzer:Istec mlo/ISTEC Test-Center
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:
- Agile Softwareentwicklung mit Continuous Integration
- Testgetriebene Softwareentwicklung
- Softwareprodukte mit vielen Iterationen bzw. kurzen Releasezyklen
- Systeme mit sehr großem Funktionsumfang
- Systeme mit hohen Ausfallkosten
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
- Erstellung von Testsuiten
- Testfallerstellung
- Testdurchführung
- Funktionale Tests
- Regressionstests
- Lasttests
- Dauerlasttests
- Ergebnisauswertung
- Testprotokollierung
- Reporting
Technik und Architektur
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
- Fachvortrag zum Thema Qualitätssicherung in der Fahrzeugprogrammierung mit dem Test-Center
- Arbeitskreis Software-Qualität und -Fortbildung
- International Software Quality Institute
- German Testing Board
[[Kategorie:Testsoftware]]