Testtool-Evaluierung
Softwarelösungen sollen bei der Umsetzung von Prozessen unterstützen. Es bedarf also der Beachtung unterschiedlichster Kriterien. Für gewöhnlich teilt man die Evaluation in verschiedene Teilprozesse auf, um den Gesamtprozess beherrschbar zu machen. Dieses Vorgehen ist natürlich auf die Evaluierung von Testtools übertragbar. Theoretische Softwareevaluierungs-Modelle bieten hier zwar eine Orientierung, doch mit praxisnaher Erfahrung in der Testtool-Evaluierung können viele Auswahlprozesse stark verkürzt werden.
Die notwendige Testsoftware zu finden, benötigt eine gute Marktkenntnis sowie eine hohe Kundenkenntnis. Am Beispiel eines von uns durchgeführten Projektes aus dem Bereich der Testautomatisierung werden folgend verschiedene Aspekte der Testtool-Evaluierung beleuchtet.
In Zeiten, in denen immer mehr Testprozesse agil aufgebaut und mit Software zur Testautomatisierung unterstützt werden, gehört eine Testtool-Evaluierung zwangsläufig und zusätzlich zum Aufgabenbereich der Testabteilung dazu. Mit einem strukturierten Auswahlprozess ist es möglich, schneller zu einer belastbaren Entscheidung gelangen zu können. Die certitudo GmbH berät Unternehmen umfassend bei Testsoftware-Auswahlprojekten und hat durch ihre Erfahrung die nötige Expertise.
Initialisierung
Mit dem Projektauftrag wird der Grundstein für ein erfolgreiches Projekt gelegt. Der Projektauftrag regelt die Grundlagen für die Durchführung des Projektes und ermöglicht es den Entscheidungsträgern Ressourcen besser einzusetzen. Ein Projektauftrag dient auch dazu, sich intensiv und aktiv damit auseinander zu setzen, was das Ziel und der Nutzen einer Testautomatisierung ist.
Einer der ersten Schritte ist es also, sich das bereits bestehende System näher anzuschauen und dessen Eigenschaften zu analysieren und zu dokumentieren. Mit einem unabhängigen Blick sollten Abläufe bei der zu automatisierenden Teststufe analysiert werden und Automatisierungspotentiale aufgedeckt werden. Diese Prozesse dienen im weiteren Evaluierungs-Verlauf als Basis für die Anforderungserstellung des Testtools.
Einsatzbereichsanalyse
In der Regel ist eine Testautomatisierung im Testprozess umso komplizierter, je höher wir uns in der Testpyramide befinden. Tools, die in der Pyramide unten anzusiedeln sind, sind oft standardisiert. Tools aus den oberen Pyramidenstufen benötigen dagegen oft spezielle Features und eventuell sogar ein Customizing, um gewisse Anforderungen erfüllen zu können. Eine Herausforderung für die Testtool-Evaluierung. Mehr zum Thema Testautomatisierung finden Sie hier.
Bei einer gewöhnlichen Softwareevaluierung entstehen sehr schnell lange Listen mit Anforderungen mit einer bis zu dreistelligen Anzahl an Bewertungskriterien. Diese müssten also theoretisch für jede Softwarelösung betrachtet werden. Viel zu viel und viel zu zeitintensiv!
Bevor also eine Aufstellung der Anforderungskriterien in Angriff genommen wird und sich mit Herstellern auseinandergesetzt wird, sollte zunächst geklärt werden, wie groß überhaupt der Umfang des Ziel-Systems ist. Dabei stellen sich Fragen wie:
- “Welche Testprozesse profitieren am meisten von der Automatisierung?”
- “Welche Gruppe würde am meisten entlastet werden?“
- “Welche Tätigkeiten sind überhaupt automatisierbar?”
- “Was sind die Hauptfunktionen des gewünschten Testtools?”
Es werden also zunächst die Fragen mit „Was“ und „Welche“ geklärt und erst viel später im Verlauf der Evaluierung folgen die Fragen „Wer“ und „Wie“. Sind die fachlichen und technischen Punkte eingegrenzt, werden mit einer ersten Gewichtung der Eigenschaften nun Schwerpunkte gesetzt.
Ermittlung der Anforderungen
Ist der Umfang des Ziel-Systems definiert, werden im nächsten Schritt die Bewertungskriterien aufgestellt, nach denen die Produkte der einzelnen Hersteller einer ersten Bewertung unterzogen werden sollen. Hier hat sich eine Befragung der zukünftigen Nutzer des Testtools als Erfolgsmodell erwiesen.
Unsere Erfahrung hat gezeigt, dass Evaluierungsprozesse umso erfolgreicher bewältigt werden können, je flexibler man das Vorgehensmodell an die Bedürfnisse und Größe des Unternehmens anpasst. Beispielsweise ist es bei kleinen Teams sinnvoll, den Prozess nicht all zu sehr mit theoretischen Modellen aufzublähen. Das kostet in diesem Fall mehr Zeit und geht mit unserer Erfahrung viel einfacher. Bei größeren Evaluierungsteams ist es jedoch durchaus von Vorteil, sich näher am Modell zu bewegen und das weitere Vorgehen zu formalisieren.
Die zukünftigen Nutzer werden also mit der Bitte kontaktiert, sich mit ihren Anforderungen bis zu einem bestimmten Termin zurück zu melden. Den Nutzern wird gegebenenfalls ein formales Schema mit an die Hand gegeben, an das sie sich richten mögen. Es wäre ansonsten unverhältnismäßig kompliziert, alle unterschiedlichen Kriterien in einem Kriterienbogen zusammenzufassen.
Eine sinnvolle und strukturierte Methode ist die Verwendung von Satzschablonen nach Rupp[1,2]. Mit solch einer Schablone, sind bei der Zusammenfassung die Kriterien leicht vergleichbar und trotzdem für die Nutzer immer noch mit einer gewissen Freiheit formulierbar. Ein guter Kompromiss, welcher die Anforderungen hervorhebt und subjektive Meinungen zurückstellt.
So könnte ein Kriterium eines Nutzers folgendermaßen aussehen:
[Bei der Erstellung eines Testfalls,] [muss] [das Testtool] [dem Tester die Möglichkeit bieten] [die Testschritte] [umzusortieren.]
Im nächsten Schritt werden K.O.-Kriterien definiert, welche die zukünftige Testautomatisierungs-Software auf jeden Fall erfüllen muss. Können diese Kriterien vom jeweiligen Tool nicht erfüllt werden, wird das Produkt verworfen und im späteren Verlauf nicht mehr in die Bewertung mit einbezogen.
Anforderungsanalyse
Ist der Kriterienbogen fertiggestellt, kann die Marktanalyse beginnen, bei der die relevanten Hersteller der Testtools ausfindig gemacht werden.
Doch wie findet man relevante Hersteller? Mit unserer Marktkenntnis ist eine einfache Vorauswahl schnell möglich. Das minimiert Herstellerkontakte und spart Zeit. Durch den beschleunigten Evaluationsprozess werden die Hersteller ermittelt, die die wichtigsten Anforderungen erfüllen. Meistens werden dabei die besten 3 bis maximal 5 Anbieter identifiziert. Diese werden im weiteren Verlauf nun anhand der restlichen Kriterien näher betrachtet.
Anhand ausgewählter Anforderungen an die Testautomatisierungs-Software kann ein Szenario für ein späteres Proof of Concept definiert werden. Dieses Szenario dient dann als erster Test und Machbarkeitsnachweis, dass bestimmte Anforderungen von dem neuen Testtool erfüllt werden.
Bewertung
Nach der Anforderungsanalyse werden die identifizierten Tools, wenn möglich, gemeinsam mittels Demo durch uns evaluiert oder, wenn nötig und sinnvoll, Hersteller zur Präsentation ihres Produktes eingeladen. Bei einer Tooldemonstration sollten alle Anforderungen durchgearbeitet werden. Ist auch das zuvor erstellte Szenario durchgespielt worden, können weitere Funktionen direkt im Anschluss geprüft werden.
Sind alle Workshops beendet, kann die Toolbewertung erfolgen. Dazu kann im ersten Schritt beispielsweise eine Nutzwertanalyse durchgeführt werden. Diese Methode ist sehr leistungsfähig und zur systematischen Bewertung bei komplexen Entscheidungen gut geeignet. Die Testsoftware mit dem höchsten Nutzwert stellt die beste Entscheidung in Bezug auf die Anforderungen dar. Selbstverständlich spielen nicht nur harte Kriterien wie Testtool-Anforderungen oder Budget eine Rolle, auch weiche Kriterien wie die Kommunikation mit dem Anbieter fließen sicherlich mit in eine Entscheidung ein.
Mit einem solchen Evaluierungsprozess und der daraus resultierenden Empfehlung, fällt es einem Entscheidungsträger nun deutlich leichter, sich für eine Handlungsoption zu begeistern und fundierte Entscheidungen zu treffen. Einer erfolgreichen Softwareeinführung steht nun nichts mehr im Weg.
Referenzprojekt
Für einen Kunden in der Sicherheitstechnik sollte eine Automatisierung von Modul- und Integrationstests für einen druckfest gekapselten Infrarot-Gastransmitter zur kontinuierlichen Überwachung von brennbaren Gasen und Dämpfen erfolgen. Hintergrund war, dass die nach den Richtlinien EN 61508 und EN 50402 entwickelte Software eine Neuzertifizierung nach SIL-2 erforderte.
Eine der Anforderungen war es, dass unser Kunde zukünftig schnelle Anpassungen der Scripte ohne großen Aufwand selbst durchführen kann. Nach einer initialen Phase, in der wir die Erstellung der Toolchain und die Migration der Altdaten übernommen haben, wurde das Projekt erfolgreich an den Kunden übergeben.
Die certitudo Gmbh hat in diesem Projekt zusammen mit seinem Kunden die Anforderungen analysiert, passende Tools evaluiert und das Lösungskonzept komplett umgesetzt. Dem Unternehmen wurde es nun ermöglicht, einfach anzupassende Tests automatisiert durchzuführen und die in den Anforderungen geforderten Reports nach Ausführung der Tests automatisch zu erstellen.
Tool | Hersteller | Komplexität | Anmerkung |
CppUnit | open-source | Häufig genutzt und gut dokumentiert | Reporting muss ggf. mit zusätzlichen Tools realisiert werden |
Embunit | Apollo Systems Contracts Ltd. | Geringe bis mittlere Komplexität | Günstige Lizenz |
C/C++test | Parasoft | Mittlere Komplexität, ggf. Training benötigt | Gute CI/CD-Unterstützung |
VectorCAST/C++ | Vector Informatik GmbH | Scriptsprache muss erlernt werden, Training wird empfohlen | Deutscher Anbieter, verbreitet |
Tbrun | LDRA | Training wird empfohlen | Gute Toolanbindung, Unterstützung vieler Prozessoren |
Tessy | Razorcat Development GmbH | Training wird empfohlen | Deutscher Anbieter, verbreitet, Unterstützung vieler Prozessoren |
Ausschnitt einer Shortlist von Anbietern. In solch einer Tabelle befinden sich weit mehr Spalten mit weiteren Informationen wie Kosten, Branchen, etc. |
Quellen
[2] https://www.hanser-fachbuch.de/buch/Requirements+Engineering+und+Management/9783446455870