In diesem Beitrag wollen wir - basierend auf einem Kundenprojekt - aufzeigen, wie man das Potential der Fachspezialisten für die Automatisierung optimal einsetzen kann, damit eine Testautomatisierung nachhaltig Sinn macht, effektiv Kosten spart und über mehrere Releasezyklen kontinuierlich aufgebaut und unterhalten wird.
Dieses Projekt hat - wie auch herkömmliche Automatisierungsvorhaben - seine Herausforderungen mit sich gebracht. Wie in jedem Testautomationsprojekt stellt sich die Frage der Wirtschaftlichkeit und des Nutzens sowie die Fragen der Tools-Auswahl. Diese wurden unter anderem folgendermassen thematisiert und angegangen.
Einer der spannendsten Aspekte im Projekt war das gewählte Vorgehen. Dieses hat das breite und wertvolle Know-Hows der Fachspezialisten für die Automation eingesetzt. Ein Fachspezialist kennt das Daily Business, Prozesse und Applikationen des Unternehmens in- und auswendig. Durch das Beiziehen ihrer Expertise kann sichergestellt werden, dass Prozesse, welche für das Fach wichtig sind, als erste automatisiert werden. Somit kann man sicherstellen, dass die Automatisierung ihr Potential für die Entlastung und Unterstützung der manuellen Tester erfüllt und die Automation dem gesamten Test-Team einen grossen Mehrwert bietet.
Das fachliche Vorgehen lässt sich folgendermassen beschreiben:
- Das Entscheidungsmodell wurde im Testautomationskonzept vom Projektleiter erarbeitet und hilft bei der Entscheidung für den Aufbau einer GUI-Testautomation. Es soll bestimmt werden, in welchem Rahmen und ob überhaupt eine Automatisierung für das Projekt in Frage kommt.
- Der Auftraggeber setzt sich mit den Fachtestern und dem Projektleiter an einen Tisch und befüllt den Backlog für die Testautomatisierung. Testfälle sollten definiert und priorisiert werden. Es soll eruiert werden, welche Testfälle es als erste zu automatisieren gilt.
- Die Fachtester spezifizieren einzelne Keywords. Solche sind in diesem Kontext als ein Modul eines Testfalles zu verstehen, welches über spezifische Designprinzipien verfügt.
- Ein Keyword ist eine abgeschlossene Transaktion.
- Alle Felder, welche in dieser Transaktion bearbeitet werden können, werden im Code erfasst. Für die Ausführung des Testfalles müssen aber nicht alle Eingabeparameter abgefüllt sein.
- Redundanzen im Code sind zu vermeiden.
- Das Keyword wird nach der Abnahme der Spezifikation durch den Testautomatisierer programmiert und im Microfocus ALM und STEP für die Fachtester zur Verfügung gestellt.
- Anschliessend hat der Fachtester die Möglichkeit, das entwickelte Keyword für seinen Test zu verwenden. Er kann seinen Testfall mit mehreren verschiedenen Keywords zusammenbauen und ausführen.
Durch dieses Vorgehen konnte erreicht werden, dass die Fachspezialisten die Testfälle selber aufbauen konnten. Ein Fachspezialist kann die Testfälle ohne Programmierkenntnisse mit Hilfe von ihm bekannten Technologien wie Excel (Testdaten Verwaltung) und das Testmanagement Tool, welches im Projekt eingesetzt wird, zusammenstellen. Hierzu kann auf die erstellten Keywords verlinkt werden und die initialen Testdaten definiert werden. Das geschah in diesem Projekt im Microfocus ALM, indem man die Keywords als Vorlage hinterlegt hatte und anschliessend in einem Testfall referenziert hatte. Wenn die Automatisierung für die Testdatengenerierung oder Testen mit verschiedenen Datensätzen verwendet wurde, wurde Excel für die Datensätze verwendet. Somit hat der Fachspezialist jederzeit die volle Übersicht und Kontrolle über den Testfall und dessen Testdaten. Das führt dazu, dass die Testfälle viel schneller eingesetzt werden konnten und die Abdeckung der Tests den effektiven Bedürfnissen des Fachs entsprochen hat.
Die Testfälle, welche erstellt wurden, zeichnen sich durch folgende Merkmale aus:
- Modularer Aufbau:
Jeder Testfall ist mit Keywords aufgebaut. Ein Keyword kann dadurch in verschiedenen Testfällen zum Einsatz kommen. Bei der Anpassung von einem Keyword werden die Änderungen in allen anderen Testfällen automatisch nachgezogen. - Ein Testfall ist in sich abgeschlossen:
Die Testdaten, welche für einen Fall benötigt werden, werden im Testfall selber erstellt, z.B. für das Bearbeiten der Favoritenliste:- Login > Anlegen von Produkten im Testsystem > Login als Kunde > Suche nach Produkt > Hinzufügen des Produktes als Favorit > Löschen der Favoritenliste
- Unabhängige Resultate:
Die Resultate eines Testfalles werden nicht von der Automation als passed oder failed eingestuft. Die Entscheidung passiert, indem die Ausgabeparameter gegenüber den erwarteten Resultaten, welche die Fachspezialisten definieren, geprüft werden. Somit kann der gleiche Code für positive wie auch negative Fälle eingesetzt werden. - Wiederverwendbarkeit:
Durch den modularen Aufbau der Testfälle ist es möglich, den Verwendungsbereich stark zu beeinflussen. Somit konnte die Testautomatisierung auch auf andere Bereiche der Qualitätssicherung ausgeweitet werden, unter anderem Berechtigungs- und nicht-funktionale Testfälle.
Durch den modularen Aufbau der Testfälle konnten die Keywords bei der Umsetzung von Berechtigungstestfällen verwendet werden. Dadurch wurden die manuellen Tester stark bei der Durchführung von Testfällen mit grosser Komplexität, langer Dauer und monotoner Abfolge entlastet. Durch die Testautomatisierung wurde die Dauer solcher Testfälle um ein Vielfaches reduziert und die Ausführung konnte vollumfangreich automatisiert werden.
Eine weitere Variation der Testfälle hat sich im nicht-funktionalen Bereich abgezeichnet, hauptsächlich bei der Ausführung von Last und Performance Testfällen mit dem Fokus auf Prozess-bezogene Messung der Transaktionen. Die bereits erstellten Keywords wurden mit überschaubarem Programmieraufwand angepasst, um die Messpunkte für die gewünschten Transaktionen aufzunehmen. Anschliessend wurde die Ausführung der Testfälle in der Breite skaliert, indem auf mehreren Docker Clients die Automatisierung ausgeführt wurde.
Der grösste Erfolgsfaktor bei diesem Projekt war die enge Zusammenarbeit zwischen den Fachspezialisten und den Testautomatisierer. Dadurch konnten die Fälle zuerst automatisiert werden, welche am meisten benötigt wurden, damit die manuellen Tester entlastet werden konnten. Was dazu führte, dass die Automatisierung aktiv genutzt und gewartet wurde.