Testen von graphischen Benutzeroberflächen. 26. Juni 2013



Ähnliche Dokumente
Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Testen von grafischen Benutzeroberflächen

Testen mit JUnit. Motivation

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Integrierte und automatisierte GUI-Tests in Java

Zentrale Objekte zur Programmierung graphischer Benutzeroberflächen (GUI)

Automatisierung des Tests

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Computeranwendung und Programmierung (CuP)

Algorithmen und Datenstrukturen

Softwareentwicklungsprozess im Praktikum. 23. April 2015

Einführung in die Programmierung

... über OGVIT GmbH & Co. KG

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

Unit Testing mit JUnit. Dr. Andreas Schroeder

Programmiertechnik II

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Java: Vererbung. Teil 3: super()

RECY CLE. NAV Easy Security - Ihr schneller Weg zur sicheren Einrichtung von Benutzerrechten

Das Test-Framework JUnit ETIS SS04

emlp: e-learning Plattform und mobile Lösungen für Military Operations EUROKEY Software GmbH Ludwig Kuhn

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

Der frühe Tester fängt den Bug

Automatisierte GUI Tests in fachlichen Teststufen Patrick Möller

Graphische Benutzungsoberflächen

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

Programmieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Unit Tests und Fehlersuche

Markus Wichmann. Testen von Java Code mit. JUnit

Prof. Dr. Uwe Schmidt. 21. August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Typumwandlungen bei Referenztypen

Free your work. Free your work. Wir wollen Ihnen die Freiheit geben, sich auf Ihr Geschäft zu konzentrieren.

Der lokale und verteilte Fall

Test-Driven Design: Ein einfaches Beispiel

Mobile Angebote Strategie einer Verwaltung. Freie und Hansestadt Hamburg Dr. Ursula Dankert

GRAFISCHE BENUTZERSCHNITTSTELLEN

Mastermind. Testplan. Hochschule Luzern Technik & Architektur. Programmieren 2 FS12. Gruppe 10

Qualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit

Das Eclipse Jubula Projekt zur funktionalen Testautomatisierung

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

C# im Vergleich zu Java

Delegatesund Ereignisse

Testmanagement in IT-Projekten

Einführung in die Java- Programmierung

Design Patterns 2. Model-View-Controller in der Praxis

Software Engineering in der Praxis

WPF Steuerelemente Listbox, ComboBox, ListView,

Objektorientierte Programmierung

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Objektorientierte Softwareentwicklung

Themen. Web Service - Clients. Kommunikation zw. Web Services

Softwarequalitätssicherung

SEP 114. Design by Contract

Objektorientierte Programmierung

MO 27. Aug. 2007, 17:00 UHR JAVA FRAMEWORKS TIPPS VON PROFI-GÄRTNERN GEGEN WILDWUCHS

Einsatz von xalerator. bei den. Ergo Direkt Versicherungen. Bereich Versicherungstechnik/Leben

Einführung in die Java- Programmierung

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Um die Rücklagen ordnungsgemäß zu verbuchen, ist es wichtig, Schritt-für-Schritt vorzugehen:

am Beispiel von JUnit

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Software Engineering. 3. Anforderungsanalyse. Franz-Josef Elmer, Universität Basel, WS 2006/07

Bedienungsanleitung GYMplus

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Vorkurs C++ Programmierung

Inhaltserzeichnis. Datenübernahme

T1 - Fundamentaler Testprozess

Thema: Testen von objektorientierter Software

Fragen Arthur Zaczek. Apr 2015

Einführung in die Informatik Tools

Mediator 9 - Lernprogramm

Projektmanagement. Vorlesung von Thomas Patzelt 10. Vorlesung

Testen Prinzipien und Methoden

Kap. 35 Swing: Grundlagen Kap Swing: Hauptfenster

Application Frameworks

SE Besprechung. Übung 6 Softwaretests

Software - Testung ETIS SS05

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version:

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

Dokumentation Schedulingverfahren

Factory Method (Virtual Constructor)

GEVITAS Farben-Reaktionstest

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Arbeiten mit Pivot-Tabellen

3 Open BIM Workflow ARCHICAD und Allplan

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Einführung in Javadoc

Quality Point München. Testtools

Outlook Web App Kurzanleitung. Zürich, 09. Februar Eine Dienstabteilung des Finanzdepartements

Java I Vorlesung 11 Graphische Oberflächen mit Swing

Anleitung zur Verwendung der VVW-Word-Vorlagen

Produktvorstellung: CMS System / dynamische Webseiten. 1. Vorwort

Schulung Marketing Engine Thema : Einrichtung der App

BIF/SWE - Übungsbeispiel

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

Innere Klassen in Java

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Einführung in die Programmierung für Wirtschaftsinformatik

Transkript:

Testen von graphischen Benutzeroberflächen 26. Juni 2013

Überblick Testarten Methoden-, Klassen-, Komponenten-, Systemtests Motivation für automatisches Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien für GUIs Capture / Replay Testmethode automatisches Testen von GUIs realitätsgetreue Simulation von Anwendereingaben Unit-Tests von Oberflächen Test-Werkzeuge für Oberflächen Taentzer Softwarequalität 2013 201

Funktionalität: Graphische Oberflächen: Was ist zu testen? Alle graphischen Komponenten zeigen das spezifizierte Verhalten. graphisches Design: benutzerfreundlich konsistent Verschiedene Benutzer testen: Benutzer mit verschiedenen Erfahrungen Benutzer haben verschiedenen Verwendungszwecke. Verschiedene Plattformen Taentzer Softwarequalität 2013 202

Motivation: Automatisches Testen von graphischen Oberflächen Testen von graphischen Oberflächen meist Blackbox-Tests Komponenten- oder Systemtests Manuelles Testen von graphischen Oberflächen zeitraubend und teuer arbeitsintensiv fehleranfällig, da hoch monoton häufig Wegwerftests deshalb: Werkzeugunterstützung für automatisches Testen von graphischen Oberflächen wünschenswert Taentzer Softwarequalität 2013 203

Entwicklungsprinzipien für GUIs Entwicklung von Anwendungen nach dem Model- View-Controller-Prinzip Deshalb bedeutet Testen von GUIs: kein Testen der Logik Testen der korrekten Abbildung von unterliegenden Daten an der Oberfläche Die pixelgenaue Darstellung der Oberfläche soll nicht getestet werden. (Warum?) Taentzer Softwarequalität 2013 204

Beispiel: Login Screen Test jfcunit jfcinit.sourceforge.net Welche Testfälle sind zu untersuchen? Taentzer Softwarequalität 2013 205

Capture / Replay - Testen Capture: Alle Benutzeraktionen während eines Tests werden aufgezeichnet. ausgewählte Elemente auswählende Aktionen Eigenschaften der ausgewählten Elemente Programmierung: Erzeugen von Templates aus den aufgezeichneten Daten Checkpoints zur Definition von Werten für Funktionalitätstests Replay: Testablauf ist aufgezeichnet und realistische Werte sind gesetzt beliebige Wiederholung der Tests Taentzer Softwarequalität 2013 206

Probleme mit Capture/Replay-Tests Erkennen verschobener Objekte Kommen die Tests mit einer anderen Anordnung der GUI zurecht? richtige Zeitverzögerungen Ist die Abfolge nicht nur logisch, sondern auch zeitlich richtig? Eingaben können beim Abspielen eines Tests schneller oder langsamer bereitgestellt werden. Vorbedingungen für bestimmte Funktionalität Welche Vorbedingungen für welche GUI-Elemente? Sind Vorbedingungen intuitiv erkennbar? andere Einflüsse Stören keine anderen Programme die Tests? Testrechner entspricht dem Anwendungsrechner? Taentzer Softwarequalität 2013 207

Unit-Tests für GUIs Unit-Tests sind Whitebox-Tests. (Warum?) sehr ähnlich zu normalen Unit-Tests spezielle Features: Hält Referenzen auf Fenster und Dialoge Findet graphische Komponenten erzeugt Ereignisse (z.b. Mausclick) Werkzeugunterstützung: Beispiele: JUnit Framework für Swing-basierte Oberflächen jfcunit (URL: jfcunit.sourceforge.net) Fixtures for Easy Software Testing FEST (URL: fest.codehaus.org) Taentzer Softwarequalität 2013 208

Beispiel: Set Up für einen Unit-Test import junit.extensions.jfcunit.*; import junit.extensions.jfcunit.finder.*; import junit.extensions.jfcunit.eventdata.*; public LoginScreenTest extends JFCTestCase { private LoginScreen loginscreen = null; public LoginScreenTest( String name ) { super( name ); } protected void setup( ) throws Exception { super.setup( ); sethelper( new JFCTestHelper( ) ); loginscreen = new LoginScreen( "LoginScreenTest: " + getname( ) ); loginscreen.setvisible( true ); } //... http://jfcunit.sourceforge.net/ Taentzer Softwarequalität 2013 209

Beispiel: Tear Down für einen Unit-Test protected void teardown( ) throws Exception { loginscreen = null; gethelper.cleanup( this ); super.teardown( ); } // Hiernach folgen die Tests. http://jfcunit.sourceforge.net/ Taentzer Softwarequalität 2013 210

Beispiel: Ein GUI-Testfall public void testuserandpasswordempty() { JDialog dialog;... NamedComponentFinder finder = new NamedComponentFinder (JComponent.class, "PasswordTextField" ); JTextField passwordfield = (JTextField) finder.find ( loginscreen, 0); assertnotnull( "Could not find the passwordfield", passwordfield ); assertequals( "Password field is not empty", "", passwordfield.gettext( ) );... http://jfcunit.sourceforge.net/ Taentzer Softwarequalität 2013 211

Beispiel: Ein GUI-Testfall... gethelper().enterclickandleave( new MouseEventData( this, enterbutton ) ); DialogFinder dfinder = new DialogFinder( loginscreen ); showingdialogs = dfinder.findall(); assertequals( "Number of dialogs showing is wrong", 1, showingdialogs.size( ) ); dialog = ( JDialog )showingdialogs.get( 0 ); assertequals( "Wrong dialog showing up", "Login Error", dialog.gettitle( ) ); gethelper().disposewindow( dialog, this ); } http://jfcunit.sourceforge.net/ Taentzer Softwarequalität 2013 212

Test-Werkzeuge für Oberflächen Capture / Replay Tests Blackbox-Tests z. B. GTT : Open Source Framework (Java / Swing) Unit-Tests Whitebox-Tests z. B. JFCUnit und FEST: Open Source Framework für Unit-Test für Java/Swing-Oberflächen z. B. Jubula(Java / HTML-Anwendungen) umfangreiche Liste von GUI Testwerkzeugen: http://en.wikipedia.org/wiki/list_of_gui_testing_tools Demo Selenium (seleniumhq.org) : Testumgebung für Webanwendungen Taentzer Softwarequalität 2013 213

Zusammenfassung und Ausblick Systematische GUI-Tests sind zeitaufwendig und monoton, deshalb automatische Tests. Zwei Hauptansätze: Capture / Replay: Abläufe aufzeichnen und wiederverwenden, Varianzprobleme in Layout und Zeit Unit Tests: Simulieren von GUI-Aktionen, spezieller Test- Thread Trend: intelligente Capture/Replay-Werkzeuge Capture/Replay mit Varianzanpassungen individuellen Anpassungen, wie z.b. Überprüfungen von Testbedingungen Taentzer Softwarequalität 2013 214