Keyword-Driven Testing - Ergebnisse aus Erfahrung im Projekteinsatz

Ähnliche Dokumente
Akzeptanztesten mit Integrity und FitNesse Ein Vergleich

Testautomatisierung. Lessons Learned. qme Software. Gustav-Meyer-Allee Berlin. Telefon 030/ Telefax 030/

White Paper Automatisierter Software - Test mit TOSCA Dynamische Scriptgenerierung

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Lasst die Roboter arbeiten: Oberflächen (Test) Automation im Fokus

Effektive Testautomatisierung durch modulare Tests. Michael Oestereich profi.com AG Dr. Frank Spiegel Haufe-Lexware GmbH & Co. KG

Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung

Testautomatisierung. Märchen, Möglichkeiten und praktischer Nutzen. Richard Seidl 21. Januar 2013 TU Dresden. Medizin- und Informationstechnik AG

Dokument Excel-Anlagen

Ist Qualität nachrüstbar? Testen, Dokumentation und Code Qualität von Anfang an

Testmanagement im agilen Entwicklungsprozess

System: DFBnet SpielPlus R3.90

Automatisiertes UI Testing. Mark Allibone, , #2

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Neuerungen in SASUnit, insbesondere Ermittlung der Testabdeckung

SEQIS KeepLiquid Testautomation

Tutorial. Bibliothek AutoGUITest V1.0. Windows-Benutzeroberflächen automatisiert testen. Ausgabe: / 13:51 Seite 1

Testen von grafischen Benutzeroberflächen

Schnittstellenbeschreibung zur Importschnittstelle der Vollmachtsdatenbank

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

NABUCCO Test Automation Automatisiertes Testen ohne Programmieren

Start und Überblick. Die folgende Grafik zeigt die Oberfläche der Vollmachtsdatenbank. Weiter zu Arbeitsabläufe in der Vollmachtsdatenbank

CSV Import WP-Meldung.doc

Initiative Tierwohl. Erzeugung + Übermittlung der Bewegungsdaten Schlachtbetrieb. In 5 Schritten zur fertigen Schnittstellendatei

Softwaretests. Werkzeuge zur Automatisierung. Thementag Wer testet, ist feige. Autor: für Markus Alvermann.

Konzeption. und prototypische Implementierung. eines Werkzeuges. für den funktionalen Klassentest

Automatisiertes Testen von Steuerungsapplikationen/-bibliotheken CODESYS Test Manager

Anmerkungen zur Erstellung, dem automatisierten Versand und der automatisierten Auswertung von pdf-formularen

Gemeinsame Benutzerverwaltung von Vivendi NG und PEP

AUTOMATISCHE TESTS GRAFISCHER BENUTZUNGSOBERFLÄCHEN

Grundlagen von Python

Die Notwendigkeit für eine neue Lösung resultierte aus folgenden Anforderungen: Weitgehende Reduzierung der manuellen Testzeiten / Aufwände

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler /

Testen mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Schlussbewertung FB VI SOFTWAREPROJEKT II WS 09/10 TEAM. Alexander Kalden Dominik Eckelmann Marcel Pierry Julian Heise Besha Taher

SL PROVISOR Automation in der Qualitätssicherung sinnvoll erhöhen

TimePunch. TimePunch Command. Benutzerhandbuch TimePunch KG, Wormser Str. 37, Bürstadt

Test graphischer Benutzeroberflächen mit der Klassifikationsbaum-Methode

Modellgetriebene Entwicklungsprozesse in der Praxis - eine Bestandsaufnahme. Tillmann Schall, anaptecs GmbH

INFOLOGIS AG EXZELLENT IN DER UMSETZUNG VON UNTERNEHMENSSTRATEGIEN. Aufbau einer Project Wiki

NCDiff Testmanagement leicht gemacht

Heterogenes Speichermanagement mit V:DRIVE

Erfolg ist programmierbar.

Vortrag von: Ilias Agorakis & Robert Roginer

Projektaufgabe Datenbankenverwaltung

Handbuch SyCOM Administration

Testen von Softwaresystemen. 13. Januar 2015

Handbuch zum Excel Formular Editor

Unizensus Onlineumfrage in ISIS einbinden

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

White Paper Testfallgewinnung mit dem Portfolio-Manager Gewinnung effizienter Testfälle und -daten

Unit Testing, SUnit & You

Experte. I-CH-118 Strukturiert implementieren

Einfaches Testen von Webapplikationen mit

Das Eclipse Jubula Projekt zur funktionalen Testautomatisierung

Technologien für zeitgemässe Web- Projekte , Guido Steenkamp

Dirk O. Schweier

Vergleich von Open Source GUI Test- Frameworks in der Praxis

Zwei starke Werkzeuge mit Methodik vereint Dynamic Process Testing (DPT)

Software Engineering. 13. Qualitätssicherung. Franz-Josef Elmer, Universität Basel, WS 2006/07

Leitfaden zur Nutzung des System CryptShare

xcall Technische Dokumentation

Anleitung für das Projektantrags- und abrechnungstool PADUA (für Initial-, Schwerpunkt- und Regionalprojekte)

expecco Ganzheitliches Qualitätsmanagement Online Konferenz mit Dürr Dental,

Nach einem erfolgreichen Login sehen Sie die Startseite. Diese bietet Ihnen einen direkten Zugriff auf die folgenden Punkte:

Modellgetriebene Softwareentwicklung

Standard Inhaltsverzeichnis für Testvorschrift

Leitfaden zur Schulung

Funktionen in PHP 1/7

Handbuch Datenpunktliste - Auswerte - Tools

EoL-Testautomation 2.0. Technische Beschreibung. DI Hans-Peter Haberlandner. Blumatix GmbH

Testen im Software- Entwicklungsprozess

Testmanagement in IT-Projekten

Automatisierte Erstellung von Software-Builds und -dokumentationen. Teil 1

Was versteht man unter Softwaredokumentation?

T5 Die Einsatzplanung inkl. Urlaub und Feiertagen

Barrierefreies Internet mit Content-Management-Systemen am Beispiel des CMS Papoo. Carsten Euwens. Erstellung BITV konformer Internetseiten

IKONIZER II Installation im Netzwerk

KUNERT BRANDSCHUTZDATENTECHNIK

Schnellanleitung: Verbuchung von Studien- und Prüfungsleistungen

1. Aktionen-Palette durch "Fenster /Aktionen ALT+F9" öffnen. 2. Anlegen eines neuen Set über "Neues Set..." (über das kleine Dreieck zu erreichen)

Visuelles Programmieren. mit der neuen. Moskito Workbench

E-Commerce: IT-Werkzeuge. Web-Programmierung. Kapitel 6: Datenbankabfragen mit SQL und PHP. Stand: Übung WS 2014/2015

SEPA-Umstellungshilfe für die Profi cash Software

Was ist neu in der SQS-TEST /Professional Suite 10.5?

Erlernbarkeit. Einsatzbereich. Preis. Ausführungsort

Konfigurationsmanagement

CBIS - CARE BED INFORMATION SYSTEM

MDE-Konfigurationsprogramm Version 1.12

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Datenbanken für Online Untersuchungen

Anwendernahe Wissensmodellierung mittels Logikregeln in frühen Phasen des Softwareentwicklungsprozesses

Anleitung FlexNow als Prüfer / Stellvertreter nutzen

1. Motivation 2. Begriffsklärung 3. Komponententests 4. Integrationstests 5. Integrationsstrategien 6. Zusammenfassung

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

Anleitung für die Abrechnung von Kurzarbeitsprojekten Version 2.150

Professionelle Seminare im Bereich MS-Office

Erste Schritte ANLEITUNG Deutsche Sportausweis Vereinsverwaltung Schnittstelle zum Portal des Deutschen Sportausweises unter

Ein Erfahrungsbericht beim Einsatz von generierenden Ansätzen im Vergleich zu generischen Lösungen

Transkript:

Keyword-Driven Testing - Ergebnisse aus Erfahrung im Projekteinsatz Keyword-Driven Testing Ein wichtiger, jedoch häufig nicht ausreichend stark betrachteter und somit beachteter Teil des Softwareentwicklungsprozesses ist die Qualitätssicherung. Die Zusammenarbeit von in den Softwareentwicklungsprozess involvierten Personengruppen (Entwicklern, Fachanwendern und Teams zur Qualitätssicherung) gestaltet sich oftmals als nicht trivial und birgt vielfach das Risiko für Verzögerungen. Ein Ansatz dieses zu vermeiden, bietet die Nutzung des Keyword-Driven Testing Ansatzes. Keyword-Driven Testing (KDT) ist eine Vorgehensweise, die sowohl für manuelle Tests, als auch für das automatisierte Testen geeignet ist. Der überwiegende Anwendungsfall des KDT-Ansatzes ist aber im Bereich der Testautomatisierung. Dies ist darauf zurückzuführen, dass der KDT-Ansatz aufgrund seiner hohen Abstraktionsebene in einzelne, wiederverwendbare Teilabschnitte (Keywords), und somit ein extrem hilfreiches Konzept im Bereich der Testautomatisierung bietet. Weiter findet eine Notation zur Testfalldefinition Anwendung, welche sich automatisch ausführen lässt und die auch für Projektbeteiligte ohne tiefgreifende IT-Kenntnisse lesbar ist. Der KDT-Ansatz ist keine Testdesignmethode, d.h. unterstützt nicht bei dem inhaltlichen Design der Testfälle, sondern definiert eine reine Notation für Tests. Die wesentlichen Grundsätze des KDT-Ansatzes sind: Trennung von o Testfalldesign o Keyword Definition und deren Umsetzungslogik o Testausführung Für jede Aktion wird im Testfall ein Schlüsselwort/Keyword definiert. Im Detail bedeutet dies, dass monolithische Testabläufe in kleinere, zumeist wiederverwendbare Teilabschnitte heruntergebrochen werden. Ziel ist, das Testszenario so weit herunterzubrechen, dass jeder Testschritt durch ein Keyword widergespiegelt wird und diese unabhängig zueinander ausgeführt werden können. Die Abbildung komplexerer logischer Funktionen wird dadurch umgesetzt, dass Keywords wiederum aus mehreren vorhandenen Keywords und somit Aktionen zusammengesetzt werden. Aus diesen unabhängigen Aktionen werden schließlich die Testszenarien zusammengesetzt. Dieses Vorgehen ermöglicht die einfache Erstellung abstrakter Testszenarien. Das Erstellen von Testszenarien kann durch den Aufbau einer Keyword-Bibliothek, welche die Testbausteine für unterschiedlichste Aktionen enthält, deutlich vereinfacht und beschleunigt werden. Dies führt dazu, dass der Grad der Reproduzierbarkeit steigt und der Aufwand für die Wartung der einzelnen Tests reduziert werden kann. Denn durch die Verwendung der Keywords und der damit einhergehenden Wiederverwendung der Implementierung des Keywords kann der Aufwand der Erstellung neuer und die Wartung vorhandener Testfälle geringgehalten werden. Die Bereitstellung einer einfachen Schnittstelle in Form der Keywords ermöglicht dem Anwender Testfälle zu erstellen, die automatisiert ausführbar sind, ohne Wissen über deren Implementierung zu verlangen. Diese Möglichkeit spart im Entwicklungsprozess Zeit, da vielfach die Testanforderungen zu Beginn der Testentwicklung noch nicht vollends absehbar bzw. bekannt sind. Im Normalfall, bspw. bei Capture and Replay -Testautomatisierung, müsste bei Änderungen ein Entwickler den automatisierten Testfall anpassen. Dieses kostet Zeit und erfordert

Abstimmungsaufwand. Dank des KDT-Ansatzes und seiner leicht verständlichen Schnittstelle zur Testdefinition, ist es dem Anwender möglich, selbst Anpassungen vorzunehmen oder sogar neue Testfälle unter Verwendung der vorhandenen definierten und implementierten Keywords zu erstellen. Für den Prozess des Keyword-Driven Testing Ansatzes wird zwischen 3 beteiligten Personengruppen unterschieden: Testfall-Designer: Benötigt fachliche Kenntnisse sowie grundlegende Kenntnisse der Businesslogik - Definition und Beschreibung von Keywords Testfälle und Testszenarien Entwickler: - Implementierung der den Keywords Zugrunde liegenden Aktionen und somit das Grunddesign der Testfälle. - Bereitstellen eines Testtreibers (Frameworks), der die Schlüsselwörter liest und den entsprechenden Code ausführt Anwender: Benötigt keine Kenntnis über die Implementierung der Keywords. Es zählt nur der Anwendergedanke, d.h. einfaches Verstehen des Testfalls anhand des Keywords und der Beschreibung. - Ausführung der Tests - Interpretation und Auswertung der Ergebnisse - ggf. Erstellung neuer Testfälle Testfälle werden bei KDT in Form von Tabellen angelegt und gespeichert. Der Aufbau ist dabei immer gleich: Pro Tabellenzeile steht ein Test, dieser beginnt mit dem Keyword gefolgt von den Testparametern. Zur Verarbeitung dieser erfassten Daten ist ein Testframework erforderlich, das über Adapter für das zu testende System verfügt. Das Framework übernimmt dann die Aufgabe der Testausführung und des Reportings. Damit nicht jeder selbst eine Anbindung an das zu testende System erstellen muss, bieten die erhältlichen Testframeworks oft eine Vielzahl an generischen Adaptern für die gängigen Sprachen. Beispiele für Testframeworks sind: - Robot Framework: https://robotframework.org - Testcomplete: https://smartbear.com/product/testcomplete/ - Cucumber: https://cucumber.io - Maveryx: http://maveryx.com - Selenuim: http://www.seleniumhq.org/ Letztlich lässt sich das KDT wie folgt zusammenfassen: Das KDT ist eine Scripting-Technik, die Datendateien verwendet, welche die Schlüsselwörter sowie die Testdaten enthalten, die sich auf die zu testende Anwendung beziehen. Diese werden von dem Testtreiber/Framework eingelesen, verarbeitet und schließlich das Testergebnis ausgegeben. Pro / Contra + Einsatz sowohl bei manuellen als auch automatischen Tests möglich

+ Durch den hohen Abstraktionsgrad können schon vor der eigentlichen Entwicklung der Anwendung und des Test-Frameworks Tests erstellt werden + Tester benötigen keinen technischen Hintergrund, um an der Testautomation mitzuarbeiten. + Geringer Wartungsaufwand, gegenüber Capture and Replay -Testautomatisierung, wenn einmal implementiert. Dies ist darauf zurückzuführen, dass etwaige Änderungen nicht bei allen Testfällen, sondern nur für das entsprechende Keyword umgesetzt werden müssen. + Trennung der Verantwortlichkeiten: Testdesign, Testimplementierung und Anwender o Entwicklung der Keywords und deren Logik/Implementierung unabhängig vom Testdesign und der Testausführung + Gemeinsames Arbeiten auf einem Test-Set von unterschiedliche Benutzertypen (Businessorientierten und technikorientierten Nutzern) o Es können mehr Nutzer zur erfolgreichen Testautomatisierung beitragen o Quantitativ und vor allem qualitativ hochwertigere Tests können in kürzerer Zeit erstellt werden. - Initial hoher Aufwand (Time-to-Market) - Nutzen stellt sich erst nach einiger Zeit ein - Kein Selbstläufer, erfordert stetige Anpassung und Pflege - Gefahr der Keyword-Inflation o Überblick über die vorhandenen Keywords geht verloren Erfahrungen aus dem Projekteinsatz Bisher wurde allgemein auf das Keyword Driven Testing eingegangen, um einen Überblick über das Grundlegende Prinzip und Vorgehen zu vermitteln. Die ITGAIN hat jedoch nicht nur theoretisches Wissen über diese Technik des Testens, sondern blickt auch auf praktische Erfahrungen aus dem Projektalltag zurück. Im Rahmen der Anwendung des KDT im Projektbetrieb wurden die Vorzüge, aber auch die Nachteile des KDT sichtbar. Wobei die Aussage bestätigt werden kann, dass sich der initiale Aufwand über die Zeit auszahlt. Denn ist das Vorgehen einmal implementiert, im Software Development Prozess integriert und wird von allen Beteiligten genutzt und gelebt, so kommen die Vorzüge voll zum Tragen und es ist keine reine Theorie, dass auf einfache Weise neue Testfälle anhand der Schlüsselwörter zusammengestellt werden können. Konkret wurde durch die ITGAIN bei einem renommierten Konzern aus der Automobilbranche ein Testframework unter Einbindung von Selenium umgesetzt, mittels dessen eine Liferay- Portalanwendungen zur Datenerfassung und -visualisierung im Rahmen von Abfragen getestet werden kann. Ziel war es, ein automatisiertes Testframework zu erstellen. Es sollte die Möglichkeit geschaffen werden, automatisierte Eingaben von beliebigen Abfragedaten zu ermöglichen und durch eine Ergebnisvisualisierung und den manuellen Abgleich mit einem Referenz- Ergebnistyp die Korrektheit/Verifikation der Durchführung zu bieten. Umgesetzt wurde eine Lösung, bei der die Abfragedaten über eine Exceldatei mit einer definierten Struktur bereitgestellt werden. Die Erstellung der Schlüsselwörter erfolgte anhand der implementierten und somit zu testenden Funktionen, in diesem Fall fünf umgesetzten Abfragen. Die definierten Schlüsselwörter (Abfragen) und die bereitgestellte definierte Excelvorlage ermöglichen eine einfache Definition neuer Testfallkonstellationen.

Durch die Verwendung von Standardsoftware wie Excel und den festgelegten Schlüsselwörtern zur Definition der Testdaten, auch nicht mit der Technik vertrauten Personen möglich, neue Testfälle bzw. Testfallkonstellationen erstellen und durchzuführen. Ziel der Umsetzung war es, die nach einer Softwareanpassung erforderlichen Regressionstests zu automatisieren. Dieses Ziel wurde erreicht, indem es ermöglicht wurde, dass im Rahmen des Builds nach jeder größeren Programmerweiterung die definierten Testfälle automatisiert aufgerufen werden und somit ein Nachweis erbracht wird, dass die Abfragedaten nach wie vor korrekt verarbeitet werden. Eine weitere erfolgreiche Implementierung und Anwendung des Keyword Driven Testing ist der ITGAIN in einem Projekt bei einem Kunden aus der Versicherungsbranche gelungen. Ziel war die Umsetzung eines Testframeworks mit Selenium für eine Java-EE Webapplikation. Die Anforderung war, die Anlage beliebiger Testfälle/-konstellationen, in deren Rahmen die Eingaben automatisiert auf der GUI eingegeben werden. Umsetzt wurde daher eine Keyword-Bibliothek, in der alle Navigations- und Eingabeelemente der GUI enthalten und sind somit bei der Testfalldefinition adressierbar sind. Jedes Navigations- und Eingabeelement ist eindeutig adressierbar, da es im Class-Attribut des jeweiligen HTML-Tags (erzeugt aus JSF) einen eindeutigen Bezeichner (Keyword) enthält. Dieser Bezeichner wurde so gewählt, dass er sich aus Tabelle und Feld zusammensetzt, in dem datenbankseitig die entsprechenden Daten verwaltet wurden. Jedes Navigations- bzw. Eingabeelement ist somit als eine Testoperation in der Keyword- Bibliothek vorhanden. Somit können für das Testframework beliebige Testfälle aus den Keywords definiert werden und in Form einer CSV-Datei bereitgestellt werden. Dies enthält Tupel, die Eingaben oder Navigation repräsentieren. Beispiel: Navigation auf die Personenseite: (navigation,personen) Eingabe des Vor- und Nachnamens: (person.vorname, Max), (person.nachname,mustermann) Speichern: (navigation,save) D.h. die CSV-Datei besteht aus: (navigation,personen),(person.vorname, Max),(person.nachname,Mustermann),(navigation,save) Diese Zeile repräsentiert einen Testfall mit folgenden Schritten: Es wird eine Navigation personen vorgenommen (Aufruf der Personenseite). Anschließend wird in das Eingabefeld Vorname der Wert Max und in das Eingabefeld Nachnahme der Wert Mustermann eingetragen. Abschließend wird eine Navigation save durchgeführt, wodurch die Eingaben gespeichert werden. Auch hier wird der Nutzen des Testframeworks wieder deutlich, denn es ermöglich die Definition von Testfällen ohne Entwicklerbeteiligung. Damit dieses funktioniert, muss die Architektur der Anwendung, in diesem Fall die Class-Attribute, entsprechend aufgebaut sein.

Fazit Keyword Driven Testing ist eine Möglichkeit, Testfälle mithilfe eines Satzes vorher definierter Keywords zu beschreiben. Die Schlüsselwörter repräsentieren dabei eine Reihe von Aktionen, die erforderlich sind, um einen bestimmten Schritt eines Testfalls abzubilden. Durch die Aneinanderreihung von Schlüsselwörtern, welche Aktionen darstellen, ist somit die Definition von komplexen Testabläufen umsetzbar. Die Verwendung von Keywords anstelle von natürlicher Sprache zur Beschreibung von Testschritten ermöglicht es, Testfälle einfacher zu verstehen, zu pflegen und diese automatisiert durchzuführen. Durch den Aufbau einer Keyword-Bibliothek ist es selbst nicht technikorientierten Nutzer möglich, neue Testfälle zu definieren und diese manuell oder automatisch ausführen zu lassen. Es lohnt sich folglich, schon frühzeitig im Projektverlauf die Automatisierung der Testausführung in Betracht zu ziehen. Denn der initiale Aufwand für die Automatisierung darf nicht unterschätzt werden. Dieser zahlt sich jedoch im Projekt und Wartungsverlauf aus, da die Definition und anschließende Durchführung der Testfälle eine Zeitersparnis ergibt.