Home

Testtools für Java/Swing -Benutzungsoberflächen - QF-Test

image

Contents

1. EHER Abbildung 20 Testsuite Um die unterschiedlichen Bed rfnisse der Anwender gerecht zu werden stellt qftestJUI vier verschiedene M glichkeiten eine Anwendung aus qftestJUI heraus zu starten zur Verf gung F r die Testanwendung wird in diesem Fall ein Java SUT Client starten Knoten verwendet und mittels java classpath lt Pfad gt lt Startklasse gt gestartet Anschlie end wartet Knoten Warten auf Client bis qftestJUl sich erfolgreich mit der neuen Virtuellen Maschine JVM in der das SUT l uft verbunden hat Nach diesem Vorgang kann es noch eine Weile dauern bis das erste Fenster auf dem Bildschirm erscheint Der Knoten Warten auf Komponente wartet auf das Erscheinen einer bestimmten Komponente des SUT Damit kann davon ausgegangen werden dass das SUT erfolgreich hoch gelaufen und bereit f r Tests ist Die aufgenommenen Sequenzen werden im Test Knoten organisiert Ein Test ist auch eine besondere Sequenz die es erlaubt vor und nach der Ausf hrung jedes ihrer Childknoten spezielle Ma nahmen zu treffen um einen gesicherten Ausgangszustand herzustellen 61 Testtools f r Java Swing Benutzeroberfl chen Zum Schluss wird eine Aufr umen Sequenz erzeugt um die Anwendung zu beenden Sie besteht aus zwei Schritten Der Knoten Programm Beenden beendet den von qftestJUl gestarteten Prozess und Knoten Warten auf Programmende stellt sicher dass er auch wirklich terminiert
2. Javax xml parsers DocumentBuilderFactory public TestXMLLoginScreen throws Exception super testLoginScreen xml XMLUtil readFileFromClassContext TestXMLLoginScreen class testLoginScreen xml SwingSet main new String public static Test suite throws Exception 56 Testtools f r Java Swing Oberfl chen return new TestXMLLoginScreen public static void main String args throws Exception if System getProperty DOCUMENT_FACTORY null System setProperty DOCUMENT_FACTORY org apache xerces Jaxp DocumentBuilderFactoryImpl TestRunner run Test TestXMLLoginScreen suite Aufnahme mit J FCUnit Seit der JFCUnit Version 2 00 k nnen jetzt auch Benutzeraktionen zur Testfallerstellung aufzeichnet werden JFCUnit stellt daf r die JFCEventManager API zur Verf gung um bei der Ausprogrammierung der Testf lle zu helfen Dazu m ssen lediglich die XML Tag lt record gt und lt save gt in die XML Datei eingef gt werden Wenn beim Testdurchlauf das lt record gt Tag erreicht wird zeichnet JFCUnit alle Aktionen auf der Oberfl che der zu testenden Anwendung auf Die Aufzeichnung der Aktionen wird mit CTRL D beendet Die neuen Tags werden vor dem lt record gt Tag in die Datei hinzugef gt Auf diese Wiese k nnen bestehende Dateien an beliebiger Stellen erweitert werden Anschlie end sorgt das lt save gt Tag daf r dass die neuen Aktionen die
3. Look and Feel Abbildung 13 Verschiedene Look and Feels 26 Testtools f r Java Swing Oberfl chen Swing enth lt f r jedes Look and Feel einen Satz von Strategieobjekten WidgetUl ListBoxUI ButtonUlI die daf r zust ndig sind den jeweiligen Oberfl chenelementen ein entsprechendes Aussehen zu verleihen F r jedes GUI Element das ein solches L amp F erhalten soll muss ein entsprechendes WidgetUl Objekt vorhanden sein Damit nicht immer ein L amp F sofort vollst ndig implementiert werden muss kann auf entsprechende Defaults zur ckgegriffen werden Stein97 Ist der Anwender mit keinem der Auswahlm glichkeit zufrieden ist es m glich eigene Look and Feels zu entwickeln Diese Arbeit ist schwierig und sehr anspruchsvoll und sollte lieber von Experten bernommen werden F r Erweiterung und Modifizierung steht f r jede Komponente ein Default Look and Feel zur Verf gung oder es l sst sich explizit berschreiben Swing Komponenten gestatten ein benutzerdefiniertes Look and Feel ohne von einem konkreten windowing system abh ngig zu sein Die Verwendung von Swing ist neben den vielen geschilderten Eigenschaften nicht frei von Nebenwirkungen Krueg03 e Swing Anwendungen sind ressourcenhungrig Das alle Komponenten selbst gezeichnet werden m ssen erfordert viel CPU Leistung und eine Menge Hauptspeicher Die Attribute speicherfressend und langsam die Java Programmen oft pausch
4. Eine Qualit tssicherung bei der Softwareentwicklung ist zur Vermeidung solcher folgenschweren Fehler unstrittig eine wertsteigernde Eigenschaft Es werden zur Zeit neue Strategien entwickelt und umgesetzt Das Testen hat sich dabei zur Verbesserung der Qualit tssicherung als verl ssliche Vorgehensweise bew hrt Im gew nschten Normalfall wird die entwickelte Software getestet und aufgetretene Fehler ausgebessert Die Auslieferung des Produkts sollte erst bei hundertprozentiger Zuverl ssigkeit gew hrleistet sein Denn viele Anwender kennen den Unmut wenn ihr neugekauftes Programm nicht richtig funktioniert Andererseits sind die Entwickler genauso bei der Qualit tssicherung unter Druck Bei gr eren und komplexen Projekten k nnen Testverfahren eine Menge an Ressourcen verschlingen Wird irgendwann der Aufwand gr er als die Implementierung der Software lohnt es sich sp testens dann die Tests zu automatisieren und somit die stupide manuelle Arbeit einzusparen Die Testautomatisierung kann ein Ausweg sein ist aber wiederum von der Einarbeitungszeit und den weiter entstehenden Kosten abh ngig In den letzten Jahren konnte durch die Einf hrung von Unittests jeder Entwickler die grundlegenden Funktionen berpr fen und Tests automatisch ausf hren Weitere Eigenschaften sind die bessere Protokollierbarkeit und die einfachere Kontrolle ber die Tests GUI Allgemein Grafische Benutzer Maschine Schnittstelle Problem Prob
5. berlappungen kommen Au erdem bietet Swing neben einer vollst ndigen Auswahl von grafischen Elementen eine Verbesserung der Architektur an MVC Architektur Bei der Entwicklung von Swing geh rt die Verbesserung der Architektur des Gesamtsystem zu einer weiteren Errungenschaft Swing basiert auf die Model View Controller Architektur MVC Es ist ein bekanntes Entwurfmuster aus SmallTalk und ein bew hrter L sungsansatz Bei diesem Konzept wird der gesamte Code nicht in eine einzelne Klasse gepackt In der klassischen E __ idir nden Architektur besteht jede Komponente aus den drei Abb 11 Eingabe u Anzeige von Daten in 2 Dialogen unterschiedlichen Bestandteile Model Das Model verwaltet die Daten und Eigenschaften der Komponenten und speichert seinen Zustand Es enth lt die gesamte Verarbeitungslogik Semantik der Komponente Bei einem Schieberegler k nnte das der aktuelle Wert die Minimal und die Maximal Position sein Es bietet zus tzlich dem Controller und der View weitere Methoden seine Informationen abzufragen oder zu ver ndern Somit k nnen verschiedene Views auf ein und demselben Model Zugriff haben Controller Der Controller ist das Verbindungsglied zwischen Model und View Es empf ngt die Benutzer Aktionen wertet sie aus und leitet die erforderlichen Ma nahmen zur nderungen an das Model bzw an die View weiter In unserem Beispiel das Verschieben des Reglers View Der View ist verantwortlich
6. 800 Millionen Euro Es stellte sich heraus dass die in Teilen von der Ariane 4 bernommene Software nicht den n tigen Anforderungen entsprach Die Flugbahn der Rakete wird durch das Inertial Reference System SRI gemessen Ein Teilsystem von Inertial Reference System SRI dass die Flugbahn bei der Ariane 4 gemessen hat rechnete nach dem Start weiter obwohl seine Ergebnisse in Ariane 5 nicht mehr ben tigt wurden Andere Flugbahndaten von Ariane 5 als bei Ariane 4 erzeugten berlauf bei Real Integer Konvertierung und verursachten Fehlfunktion des SRI Systems Dadurch wurden wichtige Flugdaten durch ein Testmuster berschrieben Das SRI System und sein Backup schalteten sich aufgrund des Fehlers ab Stein02 Ungl ckliche Geldvermehrung Kunden der Dresdner Bank die in den vergangenen Tagen eine Online berweisung durchgef hrt haben sollten den Betrag noch einmal kontrollieren Das Web Interface wies im Betragsfeld des berweisungsformulars einen Fehler auf Das Komma funktionierte nicht mehr als Trenner und bergang zu den Centbetr gen Das hei t die Software ignorierte die Komma Eingabe sodass aus einem Betrag 234 50 ohne eigenes Zutun 23450 00 wurde Wer dann bei der Best tigung nicht genau den Betrag berpr fte wird nun m glicherweise M he haben das zu viel berwiesene Geld wieder zur ckzuholen Seit heute ist der Fehler offenbar behoben ct04 Testtools f r Java Swing Benutzeroberfl chen
7. Dies kann die Effektivit t der normalen Programmiert tigkeit steigern Mit JFCUnit lassen sich einfache funktionale Tests abbilden Beim funktionalen Test Blackbox Test geht man ausschlie lich anhand der Funktionsbeschreibung des Pr flings vor Im Entwicklungszyklus grafischer Anwenderschnittstellen sind funktionale Tests essentiell f r das GUI Testen Im Vordergrund steht nicht mehr die Anwenderfreundlichkeit die sollte im Prototyping verifiziert werden sondern vielmehr ob alle erwartete Funktionalit ten der Anwendung erf llt werden Glat04 In Bezug auf funktionale Tests bietet JFCUnit in der jetzigen Form keinen Ersatz zu kommerziellen Umgebungen aber das kann auch kein Ziel von Unit Tests sein Trotz des zur Zeit geringen Funktionsumfanges kann JFCUnit teilweise mit geringen Erweiterungen zum Test von kleinen Komponenten sinnvoll eingesetzt werden Die Implementierung der Testf lle m ssen gr tenteils selbst programmiert werden und sind aufwendig Der komplette Quellcode der Anwendung sollte beim Erstellen der Testf lle dem Tester bekannt sein Komplexe Anwendungen werden schnell un bersichtlich und Testdurchl ufe dauern sehr lang Tests sollten daher modular aufgebaut sein um die Wiederverwendbarkeit zu gew hrleisten 58 Testtools f r Java Swing Oberfl chen JFCUnit bietet neben der Unterst tzung der einfachen GUI Komponenten auch L sungen f r komplexe Komponenten wie B ume und Tabellen Mit der M
8. Unit CxxTest jfcUnit sUnit httpUnit dUnit WebUnit und Debugm glichkeiten von Compilern e Integrationstests Araxis Cactus CAN Tools CANanalyzer CANoe Compuware Tools TestPartner Mercury Tools Test Director WinRunner Polyspace Rational Tools TestManager RationalRobot Segue Tools Silk SilkPerformer SQS TEST Professional Testcomplete 3 xUnit family jUnit e Systemtests C amp R Tools CAN Tools CANanalyzer CANoe CATT Compuware Tools ControlDesk DE Tester dSpace LabVIEW Memory Leakage Tools Mercury Tools Test Director LoadRunner WinRunner Rational Tools Testmanager RationalRobot Segue Tools Silk SilkTest SilkPerformer SQS TEST Professional sSpace TestPartner TestStand xUnit Family httpUnit WebUnit Lasttests Tools Abnahme Akzeptanztests CAN Tools CANanalyzer CANoe CATT Compuware Tools Drivelmage LabVIEW Mercury Tools Test Director WinRunner Rational Tools Testmanager RationalRobot Segue Tools Silk Performer SilkTest SQS TEST Professional TestStand XDE Tester Die Aufwandsverteilung in der Softwareentwicklung liegt bei 79 Unternehmen im Durchschnitt f r die Bereiche Erstellung von Anforderungen Architektur Spezifikation Entwicklung von Code und Qualit tssicherung bei einem Verh ltnis von etwa zu Y zu Y Bei den hier angegebenen Werten handelt es sich um Mittelwerte Die Aufwandverteilung weicht stark von
9. etc der Applikation berpr ft werden Nach dem Testablauf werden Reports erstellt die alle Ergebnisse auflisten Die Verst ndlichkeit des Codes kann durch ein sogenanntes Name Mapping deutlich verbessert werden und erlaubt es dem Tester leicht wartbare Skripte zu erstellen Dies wird durch die Festlegung eines logischen Bezeichners f r die oft unhandlichen aus Laufzeitinformationen gewonnenen Namen grafischer Elemente umgesetzt Neben der Aufzeichnung mit dem Recorder lassen sich Scripts im Editor erstellen und nachbearbeiten So kann man sie sowohl um neue Nutzeraktionen als auch um das zus tzliche aufrufen von Pr fmethoden erweitern Zu den Bearbeitungsm glichkeiten dieser Scripts geh rt es sie beliebig umstrukturieren zu k nnen Funktionen lassen sich aufteilen oder zusammenfassen Durch geschickte Nutzung von Funktionsparametern kann man aus dem Mitgeschnittenen wiederverwendbare Bl cke extrahieren Aus Gr nden der Wartbarkeit stellt die Nachbearbeitung nicht nur eine Option dar sondern ist unbedingt notwendig Liegen Scripts vor kann das automatische Testen beginnen Durch das wiederholte Abspielen der zuvor aufgezeichneten Skripte sind die Testszenarien zu jeder Zeit reproduzierbar Dazu wandelt das Tool wieder in Betriebssysteminformationen die es an die Benutzungsoberfl che des Probanden schickt Der Mauszeiger bewegt sich wie von Geisteshand ber die Oberfl che Fenster werden ge ffnet oder geschlossen und Textfelder
10. r deren Testdesign das Tool auf eine automatisch verwertbare Spezifikation zur ckgreifen m sste Eine solche Voraussetzung ist aber in den seltensten F llen gegeben so dass die Testfallerstellung bei automatisierten Blackbox Tests Aufgabe des Testers bleibt Durch die Testautomatisierung l sst sich dar ber hinaus sicherstellen dass die Tests regelm ig vollst ndig konsequent und regelm ig durchgef hrt werden Fehler k nnen somit fr h erkannt und behoben werden Wobei man nicht vergessen darf dass immer eine hochqualifizierte menschliche Betreuung f r die Automatisierung Auswertung Pflege und Wartung ben tigt werden Bei ndernden Anforderungen wird die Testfallerstellung zudem sehr zeitaufwendig Die geforderten Testkriterien zu erfassen und jeden Testfall korrekt auszuarbeiten muss besonders sorgf ltig ausgearbeitet werden Der Aufwand wird in der Anfangsphase bei Personal zun chst ansteigen Die Kosten ergeben sich durch die Integration der Testautomation in das Projekt und in die Einarbeitung des Personals die f r die Erstellung der Testf lle aufgrund der hohen Qualit tsma st be hochqualifiziert sein m ssen Die Wartung der Testf lle darf dabei nicht vergessen Durch die Automatisierung und deren Auswertung wird verst rkt die menschliche Betreuung ben tigt Der Aufwand der Automatisierung kann anfangs um die 125 bis 150 h her sein als dessen manuelle Durchf hrung Spg00 Die m glicherweise ineffiziente
11. Aufrufen ist ebenfalls m glich hnlich wie das Konkurrenzprodukt von Rational IBM besteht es aus mehreren Applikationen die zum Testen von Windows Web oder Java Applikationen dienen Editor Controller und Agent SilkTest erm glich das Testen einer Applikation auf unterschiedlichen Plattformen wobei die erstellten Testpl ne unver ndert plattform bergreifend genutzt werden k nnen Die Tests k nnen ber Szenarios auf unterschiedliche Maschinen mit unterschiedlichen Betriebssystemen verteilt werden Auch hier beginnt die Erstellung eines Testskripts mit dem Aufzeichnen Als Sprache kann wahlweise die objektorientierte Skriptsprache genutzt oder direkt in C programmiert werden wobei der volle Sprachumfang zur Verf gung steht W hrend der Testaufnahme entsteht eine GUI Abstraktions Schicht hnlich der GUI Map des WinRunner anhand derer sich nderungen im GUI Design zentral nachvollziehen lassen da sie sich nur an einer Stelle auswirken Das Recovery System erm glicht eine definierte Behandlung von unerwarteten Fehlern oder Programmabst rzen w hrend des Testlaufes Die zu testende Applikation kann nach einem solchen Fehler in einen vorher definierten Zustand gebracht oder neu gestartet werden Die mit SilkTest erstellten Testpl ne k nnen mit g ngigen Versionsverwaltungsprogrammen verwaltet werden Die zentrale Verwaltung der GUI Objekte durch SilkTest gew hrleistet eine maximale Wartbarkeit der Skripte Pluspunkte von SilkT
12. Datei unter einem anderen Namen gespeichert werden wird F r die Aufzeichnung von Benutzeraktionen kann folgendes Template verwendet werden lt suite name Suite gt lt test name Login robot true gt lt record gt lt test gt lt test gt lt save file reclogin xml gt lt test gt lt suite gt Damit die aufgenommen Aktionen f r einen Testfall verwendet werden k nnen m ssen die erstellten Tags f r die noch nicht vorhandene Pr fung berarbeitet werden An einige Stellen sollte der generierte Ablauf optimiert werden Einige Texteingaben k nnten beispielsweise zusammengefasst oder Fehleingaben Fehlklicks entfernt werden Weitere n tzliche Informationen ber das Aufnehmen mit JFCUnit und class extensions des TagHandler k nnen in der API Dokumentation auf der JFCUnit Homepage gefunden werden 57 Testtools f r Java Swing Benutzeroberfl chen Erfahrung mit J FCUnit JFCUnit erweitert JUnit mit der M glichkeit Swing Funktionalit ten im Ganzen die auf Nutzinteraktionen beruhen zu testen Bei blichen JUnit Tests macht die Oberfl che einer Anwendung einen erheblicher Teil des Codes aus der nicht erfasst wird Der Vorteil liegt vor allem in der Implementierung in Java JFCunit kann somit die Swing Komponenten besser handhaben als andere nicht in Java geschriebene Testtools Die Tests sind sehr dicht am tats chlichen Geschehen einer grafischen Oberfl che und das Verhalten von mehreren offenen Fenster
13. Kunden der das Softwaresystem in Auftrag gegeben hat Es wird an einem laufenden System gepr ft ob es den im Auftrag beschriebenen Anforderungen erf llt Werden auch w hrend der Entwicklung zu geschrieben um zu sehen wie weit der Forschritt ist und welche Eigenschaften noch implementiert werden m ssen Auch Betatest genannt Application Programming Interface Abstract Window Toolkit sind Oberfl chenelemente die Komponenten enthalten und gruppieren k nnen Sie stellen jedoch auch selbst wieder Komponenten dar und k nnen somit auch in anderen Container enthalten sein Ein Beispiel f r einen Container ist ein Fenster Test durch den Entwickler w hrend der Realisierung siehe Kritikalit t Ein Framework ist eine abstrakte Sammlung von Klassen Interfaces und Mustern mit dem Ziel eine Gruppe von Problemen durch eine flexible und erweiterbare Architektur zu l sen Test auf fachliche Korrektheit das Zusammenwirken mit Nachbarsystemen und Sicherheit GUI Capture Replay Testtools werden vor allem f r funktionale Tests eingesetzt Sie k nnen das System nur als ganzes bedienen Graphical User Interface Institut Experimentelles Software Engineering Java Development Kit Java Foundation Classes Java Runtime Environment Java Virtuelle Maschine sind Oberfl chenelemente die in eine Benutzerschnittstele eingef gt werden Beispiel f r Komponenten sind Buttons Schaltfl chen Labels Beschriftungen oder Men s Zustand eines Ke
14. Testautomatisierung ist bei heutigen Testmethoden abh ngig von der Flexibilit t Wartbarkeit und der Lebensdauer des zu testenden Produkts In der Anfangsphase entstehen zun chst deutlich h here Kosten Der Aufwand lohnt sich erstin der Weiterentwicklung des Produkts durch die Wiederverwendbarkeit und die effektivere Durchf hrung der bereits vorhandenen Testf lle Cem97 Produktionsphase ohne Test Go automatisierung kumulierter Aufwand mit Test Investition automatisierung in die Zukunft HERRERA AAA Return on Investment Testphasen v20 v24 v30 v31 Abnahmetest F Regressionstests Wartungsphase Abbildung 14 Return of Investment Stand der Praxis Das Fraunhofer Institut IESE hat 2004 eine Studie ber den Stand der Praxis von Software Tests und deren Automatisierung herausgebracht IESE04 Die Studie basiert auf einer Unternehmens Umfrage und auf gleichzeitig durchgef hrten Interviews mit einigen ausgew hlten Unternehmen welche als typische Vertreter kleiner und mittelst ndiger Unternehmen angesehen werden k nnen Von insgesamt 123 befragten Unternehmen f hrt eine sehr hohe Anzahl Softwaretest durch Von diesen Unternehmen praktizieren fast zwei Drittel nach eigener Einsch tzung systematische Testaktivit ten und weniger als 1 unterst tzen keine Testdurchf hrung Gr nde f r nicht 28 Testtools f r Java Swing Oberfl chen vorhandene Testplanung wurd
15. Testsuiten heraus aufgerufen werden Dabei k nnen Parameter in Form von Variablen Definitionen bergeben werden Variablen Variablen sind von zentraler Bedeutung wenn es darum geht die Wiederverwendbarkeit einer Testsuite zu steigern Zum Einsatz kommen sie vor allem beim Aufruf von Prozeduren Variablen sind aber auch in vielen anderen Situationen hilfreich Abfragen Das Automatisieren eines Tests wird dann schwierig wenn sich das SUT dynamisch verh lt d h wenn sich Dinge bei jedem Programmlauf anders verhalten Das ist z B der Fall wenn Ids f r Datenbankfelder generiert werden die aktuelle Uhrzeit Eingangin Datens tze findet etc Neben seinen Kontrollstrukturen bietet qftestJUI die M glichkeit Daten aus Komponenten der Oberfl che des SUT auszulesen und in der Testsuite weiter zu verwenden z B als Index f r ein Element oder als Vergleichswert f r einen Check Ablaufsteuerung Neben den normalen Sequenzen verf gt qftesJUl ber eine Reihe von speziellen Kontrollstrukturen die der Steuerung des Ablaufs eines Tests dienen Diese orientieren sich an den g ngigen Kontrollstrukturen wie sie auch in Java vorhanden sind Au er Schleifen und bedingter Ausf hrung erbt qftestJUl von Java auch die Art der Fehlerbehandlung mittels Exceptions die im Fehlerfall bei der Ausf hrung eines Knotens geworfen werden Eine Exception bricht die Ausf hrung eines Testlaufs schrittweise von unten nach oben ab so lange bis sie durc
16. Wenn beim Auswerten der Datei ein Tag gelesen wird so wird der zust ndige TagHanlder erzeugt und bernimmt die Bearbeitung des Tags Der ClickTagHandler ist beispielsweise f r das Simulieren von Mausklicks zust ndig und der FindTagHandler f r das Auffinden von Komponenten Abh ngig von der Konfiguration der Atribute in dem XML Element k nnen verschiede Finder Klassen genutzt werden 54 Testtools f r Java Swing Oberfl chen Das untere Beispiel zeigt den Einsatz der Klassen die bereits im vorigen beschriebenen Testfall verwendet wurden Die Referenz auf die gefundene Komponente wird einer Variablen id kompontenname zugewiesen Sp ter kann dann diese Referenz mit refid komponentname verwendet werden lt suite name XMLTestSuite gt lt test name LoginScreen robot true gt lt Komponenten finden gt lt find finder NamedComponentFinder id userNameField class java swing JTextField index 0 name LoginNameTextField gt lt find finder NamedComponentFinder id exitButton class java swing JButton index 0 name ExitButton gt lt Pr fungen gt lt assertenable refid exitButton message ExitButton is not enable enable true gt lt Eingaben gt lt key refid userNameField string admin gt lt test gt lt suite gt Zum Bedienen der verschiedenen GUI Komponenten gibt es eine Vielzahl von speziellen TagHandlern die die Beschreib
17. aus ausgefeilte Algorithmen mit Unittests zu berpr fen wenn der Anwender ber eine komplexe grafische Oberfl che auf diese zugreift Ein Beispiel w re ein einfaches Datenbank Interface das haupts chlich nur aus einer Testtools f r Java Swing Oberfl chen Oberfl che besteht und ohne spezielle Algorithmen Es gibt Szenarien die nur im Dialog zu berpr fen sind Das oben erw hnte Beispiel mit der Komma Eingabe zeigt das GUI Tests bei der Qualit tssicherung einen wichtigen Bestanteil sind Denn die Banken und Firmen m chten ihren Kunden weiterhin einen besseren Service mit entsprechenden Sicherheitsaspekt anbieten k nnen Weitere Fehlerquellen w ren zum Beispiel e Soll Zustand unstimmig mit Ist Zustand bei Aussehen und Verhalten des Frameworks z B fehlende Dialoge e Funktionsaufrufe und oder R ckgabewerte falsch e Fehlende Fenster Aktualisierung nach Datenmodifikation e Keine Pixelgenaue Darstellung Problemstellung bei SW Entwicklung in der Medizin Die Studienarbeit wird sich nur auf Testtools f r Java Swing Anwendungen mit grafischen Benutzeroberfl chen konzentrieren Bevor jedoch auf eine Auswahl von Testtools f r Java Swing Benutzeroberfl chen selbst eingegangen wird f hrt das Kapitel 2 in die grundlegenden Begriffe ber das Testen von Software ein Es umrei st die Begriffe der Softwarequalit t geht insbesondere auf das Testen bzw auf die aktuellen Ans tze der Testautomatisierung durch Testwer
18. chte sollte die damit einhergehenden Schwierigkeiten bei seiner Entscheidung ber cksichtigen Testen ist kein Kinderspiel Sieht das Erstellen der Tests anf nglich noch wie ein einfaches Aufnehmen aus entpuppt es sich bald als komplexe Programmieraufgabe Dies liegt insbesondere an dem in der Regel notwendigen Einbau weiterer Pr fbedingungen und der erforderlichen Umstrukturierung der Testscripts zur Verbesserung der Wartbarkeit weil in den meisten F llen die aufgezeichneten Scripts blo lineare Sequenzen von Aktionen und Ergebnispr fungen sind Besonders bei gr eren Projekten steht und f llt mit Letzterer der erfolgreiche Einsatz der Technik Zudem k nnen Eigenheiten der Anwendung Anpassung erfordern Gerade bei komplexen GUls mit verschachtelten Eingabe Controls beziehungsweise benutzerdefinierten Komponenten kann es vorkommen dass der beim Aufzeichnen generierte Code nicht die gew nschten Benutzereingaben erzeugt In solch einem Fall steigt der Aufwand zus tzlich durch die Fehlersuche im Testscript Nicht zu untersch tzen ist der Aufwand den die Wartung der Tests w hrend des Lebenszyklus eines Programms erfordert Einfach ist die Erweiterung der Programmoberfl che etwa durch neue Eingabemasken daf r sind nur neue Tests zu erzeugen ndert sich jedoch das GUI m ssen schnell gro e Teile des Testcodes neu erstellt werden Aufgrund dieser Anpassungen sollten man die Testprojekte in der Versionsverwaltung einbinden 34 T
19. erstellt werden Mit Hilfe einer Vielzahl von Kontrollelementen wie Bedingungen und Schleifen k nnen diese zu gr eren Bausteinen zusammengesetzt werden Komplexe Testf lle lassen mit Prozeduren Packages und Bibliotheken bersichtlich strukturieren und Testumgebungen modular aufbauen Anstatt der fest verdrahteten Texteingaben k nnen auch variable Werte verwendet und die aufgenommene Sequenz in eine Prozedur umgewandelt werden Auf diesem Weg lassen sich schnell datenge triebene Tests erstellen die immer wieder dieselbe Sequenz durchlaufen aber jedes mal mit anderen Daten Diese k nnen z B aus einer Datei oder einer Datenbank gelesen werden Ein integrierter Debugger hilft bei der Fehlerdiagnose Durch die schrittweise Ausf hrung von Tests lassen sich die Ursachen von Problemen genau lokalisieren Bei einem fehlgeschlagenen Testlauf ist ein Protokoll ein entscheidendes Hilfsmittel die Fehlerursache herauszufinden Das Protokoll von qftestJUI enth lt f r die Fehleranalyse 68 Testtools f r Java Swing Oberfl chen Zeitstempel optionale Anmerkungen Informationen ber Variablenexpansion verschiedene Arten von Meldungen und insbesondere Fehlerinformationen Aus dem Protokoll k nnen alle relevanten Informationen ber einen Testlauf zu einem HTML XML Testreport generiert werden Mit Hilfe selbst geschriebener XSLT Stylesheets kann der Anwender eigene Reports transformieren Offenheit und Flexibilit t ist dank der Nutzung von XML
20. nicht beachtet Implementierungsorientierte Tests werden hingegen als Whitebox Tests bezeichnet Bei Whitebox Tests wird vorausgesetzt dass die Implementierung des zu pr fenden Objektes 17 Testtools f r Java Swing Benutzeroberfl chen bekannt ist Sie basiert also auf der Analyse des Sourcecodes Dabei wird versucht m gliche Schwachstellen zu erkennen und mit Testf llen abzudecken Testmetriken Um die Qualit t der Software und die Wirksamkeit der durchgef hrten Tests zu bewerten werden Metriken angewandt Sie versuchen ber verschiedene Abdeckungsgrade eine Antwort auf die Frage zu finden ob ein Softwaresystem hinreichend getestet wird Eine Teststrategie legt fest welche Testf lle zu erstellen sind Allgemein besagt der Abdeckungsgrad welcher Prozentsatz der zu erstellenden Testf lle geschrieben wird Die zu verwendeten Testmetriken h ngen von den vorliegenden Informationen und dem Ziel der Beurteilung ab Zum Beispiel kann die Testdauer als Grundlage zur Erfassung des Aufwands und der Wirtschaftlichkeit des Tests benutzt werden Dieses Kriterium ist f r eine Aussage ber die Qualit t ungeeignet Zur Beurteilung der Qualit t von Tests werden Kriterien herangezogen die die Anzahl der Tests berdeckung der Eingabe und des Quelltextes als Grundlage haben Das Ziel jeder dieser Kriterien ist die m glichst vollst ndige Abdeckung aller aufgestellten Testf lle Eine Ausf hrliche Beschreibung der Abdeckungsgrade sei auf B
21. r eine Software muss es auf ein Testmodell Testtools f r Java Swing Benutzeroberfl chen beschr nkt werden Ein Testmodell ist eine pr fbare Repr sentation der Zusammen h nge von Teilen des Systems dass sich wiederum an einem Fehlermodell orientiert Das Fehlermodell erkennt Teile oder Beziehungen eines Systems in denen mit gro er Wahrscheinlichkeit Fehler gefunden werden k nnen Bei den Teststrategien werden verschiedene Stufen des Testens w hrend den entwicklungsbegeleitenden Testphasen unterschieden Zun chst werden A IN System test d Integrationstest A Komponententest Modultest Inspektionen Dokumente Code N Abb 5 Testphasen bei der Softwareentwicklung hierbei die Methoden und Funktionen der Software getestet anschlie end die Komponenten eines Systems gefolgt dann von deren Interaktionen Zu guter Letzt folgt ein kompletter Systemtest Der Hintergrund dieser Vorgehensweise ist das Finden von Fehlern in den fr hen Phasen und in weniger un bersichtlichen Softwareentw rfen in denen das Auffinden der Fehler verh ltnism ig einfach ist F r die einzelnen Softwaretests gibt es eine klassische Definition der Klassifikation Als Unterscheidungsmerkmal wird die Gr e und Zusammengeh rigkeit der jeweiligen Komponenten gew hlt SWO2 e Der Modultest auch Unittest genannt dient dem Test einzelner Klassen und deren Methoden Es wird deren Korrektheit geteste
22. und direkt in den Feldern editiert werden k nnen Zum Editieren einer Testsuite gibt es sowohl Funktionen zur Bearbeitung der Knoten als Ganzes wie Ausschneiden Kopieren Einf gen als auch f r deren Attribute Im unteren Fensterbereich befindet sich das Terminal welches die Standardausgaben des zu testenden Clients protokolliert Die grundlegenden Funktionen zum schnellen Erstellen von einfachen Test sind direkt ber die grafische Oberfl che verf gbar Sie erm glicht den schnellen Zugriff auf jedes Detail der aufgezeichneten Information und gibt eine gute bersicht ber die Daten und deren Zusammenh nge Durch die Testsuite navigiert man sich mithilfe des Baumes und w hlt einzelne Knoten aus f r die dann jeweils die Details im rechten Fensterbereich eingeblendet werden Aufnahme und Wiedergabe Vorbereitungen f r Testsuite F r die Organisation von den Sequenzen der Testsuite gibt es vier verschiedene Knoten In jedem Knoten werden die Variablen gebunden und die Childknoten einer nach dem anderen ausgef hrt Anschlie end werden die Variablen der Sequenz wieder gel scht 7 Testsuite SD Test 0 vorbereitung Java SUT Client starten LoginScreen LoginScreen Warten auf Client LoginScreen fe Warten auf Komponente frame Anmeldung gt LoginScreen Test Login HO Sequenz Aufnahme 14 02 05 19 51 H O Aufr umen LoginScreen beenden Prozeduren O Extrasequenzen HEP Fenster und Komponenten
23. werden mit Zeichen gef llt Sollte sich mal das Layout ge ndert haben so k nnen die GUI Elemente aufgrund der Objektorientierung bei Testwiederholung dennoch wieder erkannt werden 33 Testtools f r Java Swing Benutzeroberfl chen Funktionserweiterung durch Bildvergleich Zus tzlich zu diesen Standardpr fungen kann man die Scripts etwa durch benutzerdefinierte Funktionen um eigene Testbedingungen erweitern Erw hnenswert ist weiterhin die M glichkeit w hrend des Testens Bildschirmbereiche zum Beispiel ein Fenster oder ein Control mit aufgezeichneten Versionen zu vergleichen Bei der Testerstellung speichert man Teile der Anwendung als Bild und verwendet sie w hrend der Kontrolle als Referenz Das Ergebnis dieses Vergleichs erscheint als Differenzbild in dem Abweichungen schnell zu finden sind Einige Produkte stellen OCR Funktionen zur Verf gung um Texte aus den Bildern zu extrahieren Dieser Bildvergleich wirkt auf den ersten Blick ein wenig plump und ist wegen u erer Faktoren wie der aktuellen Farbtiefe abh ngig vom jeweiligen Testrechner Trotzdem kann er in einigen F llen eine sinnvolle Erg nzung zur Programmkontrolle im Blackbox Test sein Eigentlich k nnte die Welt jetzt in Ordnung sein die Anwendung ist programmiert ein Testtool angeschafft die Tests erstellt und man kann testen lassen immer und immer wieder Aber leider steckt der Teufel wie so oft im Detail Wer Testtools der beschriebenen Art einsetzen m
24. wurde Die Aufr umsequenz wird wie auch bei der Vorbereitungssequenz nach jeder Sequenz bzw jedem Test innerhalb des umschlie enden Tests ausgef hrt Sie dient dazu die Applikation nach dem Ausf hren eines Tests in einen spezifischen Zustand zu versetzen welcher die Basis f r den darauf folgenden Test bildet Die Aufr umsequenz ist vergleichbar mit tear down Methoden in Unit Tests Aufnahme von Testsequenzen Bevor eine Sequenz von Events im SUT aufgenommen werden kann muss zun chst das SUT aus qftestJUI heraus gestartet worden sein und die Verbindung zum SUT muss bestehen Dazu muss Java SUT Client starten Knoten markiert und der Wiedergabe Knopf gedr ckt werden Beim Start des SUT aus qftestJUI heraus werden Java Anwendungen in separaten JVM ausgef hrt Dabei wird zun chst spezieller Code ausgef hrt der eine RMI Verbindung zu gftestJUI herstellt und eine eigene EventQueue installiert bevor die Kontrolle an das SUT weitergegeben wird Die EventQueue wird ben tigt um die GUI Komponenten des SUT zu verfolgen und um Events aufzuzeichnen Nachdem die Anwendung l uft wird der Aufnahmeknopf rot dargestellt und aktiviert Die Aufnahme der Sequenz wird einfach mit einem Mausklick auf den Aufnahmeknopf Q gestartet Jetzt befindet man sich im Aufnahmemodus und kann einige Kommandos an der SUT ausf hren Die Aufnahme wird dann mit dem Startknopf beendet Die aufgezeichneten Events werden in der Testsuite an g
25. 0 Karol Fr hauf Jochen Ludewig Helmut Sandmayr Software Pr fung Eine Anleitung zum Test und zur Inspektion 2 Auflage Teubner Verlag amp vdf Hochschulverlag AG an der ETH Z rich 1995 Christian Ullenboom Java ist auch eine Insel Programmieren f r die Java 2 Plattform in der Version 1 4 3 Auflage Galileo Computing 2003 http www galileocomputing de openbook javainsel3 Guido Kr ger Handbuch der Java Programmierung 3 Auflage Addison Wesley Version 3 0 1 http dufo tugraz at mirror hjp3 index_c html Joachim Goll Cornelia Wei Frank M ller Java als erste Programmiersprache Vom Einsteiger zum Profi 3 Auflage Teubner Verlag 2001 75 Testtools f r Java Swing Benutzeroberfl chen Auflistung von weiteren Testwerkzeugen http www imbus de testlabor tool list html http opensourcetesting org functional php http www galinks com Tools Automated_Testing http www testingfaqs org http www softwaregatest com qatweb1 html JAVA Usability http www sozialnetz hessen de ca p h het http usability is uni sb de werkzeuge wu_index php http wob11 de loesungen tippstools html 76 Testtools f r Java Swing Oberfl chen 8 Glossar Akzeptanztests API AWT Container Entwicklungstest Fehlerkritikalit t Framework Funktionstest GUI IESE JDK JEC JRE JVM Komponenten Kritikalit t Lasttest Layout Manager MVC native Performancetest Regressionstest Test des
26. 4 M rz 1998 http java sun com javaone javaone98 keynotes gosling transcript_gosling html Ove Armbrust Michael Ochs Bj rn Snoek Stand der Praxis von Software Test und deren Automatisierung Fraunhofer Institut Experimentelles Software Engineering International Organization for Standardization www iso org Thomas J Heistracher Michael Thalmeier Tobias Witek Stefan Zeppetzauer GUI Testwerkzeuge im Vergleich ix Magazine 10 2003 Stefan Middendorf Reiner Singer J rn Heid JavaTM Programmierhandbuch und Referenz f r die JavaTM 2 Plattform Standard Edition 3 Auflage 2002 http www dpunkt de java Programmieren_mit_Java Oberflaechenprogrammierung 91 html http jfeunit sourceforge net Christian Kirsch Test it yourself Frei verf gbarer GUI Tester ix Magazine 10 2003 Guido Kr ger Handbuch der Java Programmierung 3 Auflage Kaptiel 35 1 2 Eigenschaften von Swing Addison Wesley Version 3 0 1 http dufo tugraz at mirror hjp3 index_c html Olga Kolov Frank M ller TDD in der Praxis Linux Enterprise 01 2005 http www linuxenterprise de itr online_artikel psecom id 652 nodeid 9 html S McConnell Code Complete Microsoft Press 1993 Andreas Mieth Projekterfahrung mit Testautomatisierung ix Magazine 10 2003 74 Testtools f r Java Swing Oberfl chen Muen98 Westf lische Wilhelms Universit t M nster Wirtschaftsinformatik und Informationsmanagement http www wi uni muenster de is vorles
27. AbstractMouseEventData srcEvtData AbstractMouseEventData dstEvtData int incr Weitere MouseEventData Ausf hrungen werden f r viele verschiedene Swing Klassen zur Verf gung gestellt ouseEventData f r Generic Component JComboBoxMouseEventData f r JComboBox JListMouseEventData f r JList JTabbedPaneMouseEventData f r JTabbedPane JTableHeaderMouseEventData f r JTableHeader JTableMouseEventData f r JTable JTextComponentMouseEventData f r JtextComponent Standardm ig ist die Click und Drop Positionen im Zentrum des Komponenten Rechtecks durch das MouseEventData vorgegeben Jedoch k nnen diese Werte durch Positionskonstanten z B NORTH EAST CENTER mit kundenspezifischen Werten x y ausf hrlich in die Komponente oder durch proportionale Prozent Werte xpercent ypercent angepasst werden JFCTestHelper stellt zur Unterst tzung von Drag Drop die enterDragAndLeave Methode zur Verf gung und erleichtert unter anderem Tastatur Events Die Methode sendString und sendKeyAction erm glichen das Senden von Tasteneingaben in die Event Queue f r bestimmte Komponente Weitere hilfreiche Helper Methoden und deren Beschreibung sind in der API Dokumentation auf der JFCUnit Homepage zu finden 53 Testtools f r Java Swing Benutzeroberfl chen Test durchf hren Zur Ausf hrung und bersetzung der Testf lle ist die Erweiterung des Klassenpfades um Junit3 8 und JFCUnit
28. CTestCase java 580 angezelgt in welchem Test und in welcher Codezeile at junit extensions jfcunit JFCTestCase 3 run JFCTestCase java 478 at java lang Thread run Unknown Source der Fehler aufgetreten ist Eine Besonderheit dabei ist Abbildung 18 Test nicht erfolgreich dass man dem Test zuschauen kann Das Anmelde Fenster wird ge ffnet und die Aktionen werden darauf sichtbar ausgef hrt Man kann sogar selbst in dem Fenster arbeiten was allerdings nicht empfehlenswert ist da es den Testablauf st ren kann J FCUnit mit XML In der beschriebenen Vorgehensweise k nnte man seine kompletten Testf lle ausprogrammieren Bei umfangreichen und komplexen Tests kann dies aber schnell un bersichtlich und fehleranf llig werden was unbedingt vermieden werden sollte Dieses weitere Feature erlaubt es dem Entwickler XML Code zu schreiben der den Hauptteil der Testsuite enth lt Das meiste vom Testgenerationsprozess kann ber die Aufnahme zum XML automatisiert werden Auf diese Vorgehensweise wird sp ter noch eingegangen Mit diesem Feature ist es aber nicht die Absicht der Entwickler die Java Kodierung komplett zu ersetzen Es soll eher die Definition und Manipulation von Testdatens tzen unterst tzen und vereinfachen Das aufw ndige Programmieren jedes kleinsten Schrittes soll vermieden werden XML Datei erstellen F r jedes vorkommende Tag lt suite gt lt test gt lt find gt gibt es einen sogenannten TagHandler
29. Komponenten im SUT mit vorgegebenen Werten Der Check Text Knoten zum Beispiel liest den Text aus einer Komponente aus und vergleicht ihn mit einem vorgegebenen Wert Stimmen diese nicht berein wird ein Fehler signalisiert Weitere Checks Check Elemente Vergleicht eine Liste von vorgegebenen Texten mit der Anzeige einer Komponente oder eines Unterelements Checks Vergleicht zus tzlich zu einer Liste von vorgegebenen Texten auch die selektierbare Elemente Selektion der Unterelemente einer Komponente Check enabled Status berpr ft den enabled Status einer Komponente Der Check funktioniert mit allen Komponenten nicht aber mit Unterelementen mit Ausnahme der Reiter einer JtabbedPane Check editable Status berpr ft den editable Status einer Komponente Check selected Status berpr ft den selected Status einer Komponente Check Abbild Vergleicht ein Abbild einer Komponente mit dem aktuellen Zustand Der Check funktioniert mit allen Komponenten und mit Unterelementen Check Geometrie berpr ft Position und Gr e einer Komponente Der Check funktioniert mit allen Komponenten nicht aber mit Unterelementen 63 Testtools f r Java Swing Benutzeroberfl chen Am einfachsten werden Checks erstellt indem man sie aufnimmt Die Aufnahme funktioniert nur wenn der SUT Client im Aufnahmemodus l uft ber den Check Knopf wird das SUT in den Checkmodus geschaltet In diesem Modus werden Events nicht weiter aufgezeichn
30. OSSAR sn san a e e ainda Ii di 77 Testtools f r Java Swing Benutzeroberfl chen Testtools f r Java Swing Oberfl chen 1 Aufgabenbeschreibung Titel Testtools f r Java Swing Benutzungsoberfl chen Aufgabenstellung In dieser Arbeit wird der Stand der Technik zum Thema Testtools f r Java Swing Benutzungsoberfl chen untersucht In einem ersten Teil sind die wichtigsten Begriffe zu erkl ren z B Java Swing Test Tools GUI Test und es ist in das Thema einzuf hren Der Hauptteil stellt die Marktuntersuchung dar eine Zusammenstellung der momentan verf gbaren SW Werkzeuge mit beschreibenden Attributen Anhand dieser Untersuchung sollen zwei relevante Tools ausgew hlt und anhand einer Testapplikation berpr ft oder verglichen werden Die Ergebnisse sind zu dokumentieren und zu kommentieren Im letzten Teil sollen Empfehlungen f r die Anwendung in der Lehre gegeben werden W nschenswert sind au erdem Hinweise f r die Durchf hrung automatisierter Usability Tests Testtools f r Java Swing Benutzeroberfl chen Testtools f r Java Swing Oberfl chen 2 Einf hrung Softwaresysteme sind ein gro er Bestandteil in vielen Bereichen unseres t glichen Lebens und aus unserem Alltag nicht mehr wegzudenken Sie werden aufgrund gr erer Anforderungen zunehmend gr er und komplexer Die Ziele des Herstellers bei der Entwicklung eines Systems sind die schnelle Erstellung die Kostenreduktion sowie die Qualit ts
31. Qualit tssicherung Es ist ungewiss wohin sich die Testautomatisierung weiterentwickeln wird In den letzten Jahren hat sich in diesem Bereich einiges getan und es wird in der Qualit tssicherung ein wichtiger Bestandteil bleiben Wer in diese Branche einsteigt hat gute Aussichten auf Jobangebote Jede Woche erf hrt man aus den Zeitungen von fehlerhaften Softwareprodukten oder erneuten R ckholaktionen mancher bekannten Autohersteller und ihrer Zulieferer Der Aufwand f r das Testen von Softwareprodukten nimmt schon 40 bis 50 der Gesamtzeit und der Gesamtkosten ein Durch die Testautomatisierung erhoffen sich alle eine bessere Qualit tssicherung und die Reduktion der Kosten Es gibt eine gro e Anzahl von Testwerkzeugen welche die Testdurchf hrung automatisieren Jedoch gibt es kaum Werkzeuge die den Tester bei der Testfallerstellung unterst tzen Daf r m ssten automatisch verwertbare Daten vorliegen In dieser Richtung gibt es bisher nur relativ wenige Forschungsans tze Es gibt auch noch keine bekannten Bestrebungen ein kommerzielles Testtool zu entwickeln Im Moment bedeutet die Erstellung von Testf llen erh hte Aufwand eine 70 Testtools f r Java Swing Oberfl chen Investition Der Erfolg und die Wirkung des Einsatzes sind jedoch nicht immer offensichtlich weshalb grade dieser Punkt ein Argument gegen die Verwendung der Testautomatisierung ist Deshalb sollte gerade die Aufgabe der Testfallerstellung und der Testdaten
32. SS Standards Die meisten Bedingungen die eine barrierefreie Seite erf llen muss sind jedoch nicht oder nur teilweise automatisch berpr fbar Das Aktionsb ndnis f r barrierefreie Informationstechnik AbI arbeitet zur Zeitan Testempfehlungen die es erm glichen die wenigsten automatisch pr fbaren Punkte auf einer gemeinsamen Grundlage f r Tests zu vereinheitlichen und nachvollziehbar durchf hren zu k nnen Die Erstellung einer Website nach den anerkannten Kriterien der Web Usability bewirkt Vorteile f r den Nutzer und den Anbieter von Informationen Dienstleistungen oder Produkten gleicherma en Welchen Wert hat die Usability TSmith Erh hte Produktivit t Ein durchschnittliches mittelgro es Unternehmen k nnte 5 Millionen US pro Jahr durch die gesteigerte Produktivit t der Mitarbeiter gewinnen wenn das Intranet Design auf das Niveau gebracht w rde welches dem obersten Viertels einer unternehmens bergreifenden Studie ber Intranet Usability entspricht Die Rendite im vergleich zum Investition Eintausend Prozent oder mehr amp Nielsen 2002 Allgemeiner Wert Eine Studie sch tzte dass Verbesserungen bei der Kundenerfahrung die Zahl der K ufer um 40 und den Auftragsumfang um 10 erh ht amp Creative Good 2000 Gesteigerte Verkaufszahlen Die durchschnittliche Ul hat etwa 40 M ngel Werden die 20 einfachsten davon korrigiert steigert sich die Usability um durchschnittlich 50 Der gro e gewi
33. Studienarbeit Testtools f r Java Swing Benutzungsoberfl chen Floran Kr mer Matrikelnummer 724603 florian kraemer stud fht esslingen de Betreuerin Prof Dipl Inform Astrid Beck Fachhochschule Esslingen Hochschule f r Technik Fachbereich Informationstechnik Studiengang Softwaretechnik und Medieninformatik Februar 2005 Testtools f r Java Swing Oberfl chen Inhaltsverzeichnis 1 2 7 8 AUFGABENBESCHREIBUNG uu cs nn sn nenne na nr eheeheen 5 ENT UANL io 7 OVA EOIN DY KIAD AIIN A AE AEE A cio 10 COUALITAT DURCH TESEI ae een een 12 TESTARTIVITATEN a lern a r a a a IA E a E a fine asfellen isie 15 TestmodelleundTFeststrategie n un enui Bi ik le late ernten 15 Testmiethoden Au ea A EEE TIERE 17 Testmetniken u c O ee Be NEST 18 TESTAUTOMATISIERUNG IN DER SOFTWAREENTWICKLUNG cocccccccoconononcccnnconononononcnnonononnnnononcnnonononnnnonenccnos 18 GUIFPROGRAMMIERUNG MIT JAVA SWING ns ein es er labo 22 Swing write oc UA rinnen ign tas aede Tiia 23 Komponenten see re rn AAA RE RE NEE 24 MVG ATCH ORT UNE o ee ee end 25 Ererwanhlbares ook andate ireland 26 GUI TESTTOOIS 6us 2 20 aera a aa A fir ENEE oaa EEE aaa EES E asie 28 STANDDER PRAXIS a e eo se o A tdo de 28 AUTOMATISCHES FUNKTIONALES TESTEN 2 ra ln anni nu 32 Funktionserweiterung durch Bildvereleich au ee ee a 34 Testen ist em Kinderspiel suelen E O EAA Erea 34 GUI TESTWERKZEUGE IM VERGLEICH oooocccccocc
34. Testautomatisierung wird trotz Einschr nkungen weiterhin eine bedeutende Rolle in der Softwareentwicklung spielen Die Entwicklungszeiten werden immer k rzer so dass wiederverwendbare Software und effiziente Tests unabdingbar sind Weiterhin l sst sich durch logische Analysen der zu testenden Software auch eine effizientere Pfadabdeckung als durch manuelle Testfallerstellung erreichen so dass auch bei gleich bleibender Anzahl der Testf lle die Anzahl der gefundenen Fehler steigt Dies wiederum sorgt zu einer h here Qualit t der Software Das Quality Assurance Institute http www qaiusa com f hrte einen Versuch durch bei dem derselbe Test sowohl manuell als auch automatisiert ausgef hrt wurde Der Test bestand aus 1750 Testf llen und 700 Fehlern Dabei war eine R ckgang des Aufwandes durch Automatisierung um 75 zu erreichen DRPOO Man sieht also dass sich das automatisierte Testen bei ausreichender Gr e des Tests durchaus bezahlt macht Bei der Auswahl von Testwerkzeugen muss man mit Bedacht ausw hlen besonders wenn Testwerkzeuge in Betracht gezogen werden die einen erheblichen finanziellen Beschaffungsaufwand bedeuten oder der effiziente Einsatz dieser Werkzeuge mit gro em 20 Testtools f r Java Swing Oberfl chen Mehraufwand verbunden ist Der Prozess der Auswahl selbst ist eine sehr zeitaufwendige Arbeit Kriterien f r die Werkzeugauswahl m ssen sorgf ltig auf die Testanforderungen abgestimmt werden Jedes
35. Werkzeug muss gegen diese Kriterien getestet werden Abbildung 6 zeigt einen aus vier Schritten bestehenden Prozess f r die erfolgreiche Auswahl von Testwerkzeugen Post92 Vorhersagen zu Testqualit t 1 Analyse der Benutzer Anforderungen und produktwitat 2 Bestimmung Gewichtete der Auswahl Kriterien Selektionskntenen 3 Suche nach Werkzeugen Anforderungs und Problemdom ne 4 Werkzeuge bewerten Ausgew hlte Werkzeug Werkzeuge Erhebungen Tool Auswertungs e Datenbank spreadsheet Abbildung 6 Prozess zur Auswahl von Testwerkzeugen nach Poston 1 Der Auswertende muss die Anforderungen der Benutzer identifizieren und quantifizieren Das bedeutet dass er die Art des ben tigten Werkzeugs ermitteln muss und dass er Daten zu den Kosten und zur Produktivit t sch tzen muss z B die Testkosten pro Phase oder die gew nschte Test berdeckung 2 Als n chstes ermittelt der Auswertende Kriterien zur Werkzeugauswahl z B Preis oder Anforderungen an die Funktionalit t und gewichtet sie Keine zwei Kriterien d rfen dasselbe Gewicht bekommen 3 Der Auswertende sucht nach vorhandenen Werkzeugen mittels Erhebungen Nur Werkzeuge welche die gew nschte Plattform und Programmiersprache unterst tzen werden ber cksichtigt 4 Als letztes vergleicht der Auswertende die vom Verk ufer gelieferten oder anderweitig ermittelten Informationen ber das Werkz
36. al zugeschrieben werden resultieren zu einem nicht unerheblichen Teil aus der Verwendung der Swing Bibliotheken e Zweitens Reifegrad und die Entwicklungsstabilit t Es stecken noch eine Menge kleinerer und gr erer Fehler in den Swing Bibliotheken Eines der h sslichsten Probleme im JDK 1 2 war die Eigenschaft von Swing Fensterelementen belegte Ressourcen nicht vollst ndig freizugeben und so bei wiederholtem ffnen und Schlie en nach und nach den gesamten Hauptspeicher aufzubrauchen Seit der Version 1 3 scheint dieses Problem nicht mehr aufzutreten e F r Applet Programmierer ist vor allem unsch n dass es nach wie vor keine Browser mit eingebauter Swing Unterst tzung gibt Sie m ssen daher entweder das Java Plugin verwenden und dem Anwender damit einen zus tzlichen Download und Installationsschritt zumuten oder sind nach wie vor auf die Verwendung des AWT beschr nkt Mit den neuen JDK Versionen geh ren diese Probleme der Vergangenheit an Die steigenden Rechnerleistung kompensieren die Hardwareanforderungen Mit dem JDK 1 3 hat SUN zudem die Startzeit der Anwendungen verk rzt den Speicherhunger der Swing Komponenten einged mmt und ihre Performance weiter verbessert und schlie lich viele der fr heren Bugs behoben Sun beh lt sich aber das Recht vor wie bei allen anderen Bestandteilen des javax Paketes auch Schnittstellen und Funktionalit t ohne Ank ndigung zu ver ndern oder aus dem Angebot herauszunehmen Sun zeigt bi
37. als zentrales Dateiformat von qftestJUI gew hrleistet Testsuites Protokolle und Reports basieren auf diesem Industriestandard und sind dank des Textformats hervorragend f r die Verwaltung mit g ngigen Versionskontrollsystemen geeignet Fortgeschritten Anwender erhalten ber die ausgereifte Skriptesprache Python unmittelbaren Zugriff aus das gesamte Java API der Testanwendung Im Vergleich zu dem OpenSource Produkt JFCUnit ist der Einarbeitungsaufwand durch den Funktionsumfang relativ gr er Aber durch die sehr ausf hrliche Dokumentation in HTML oder PDF die mitgeliefert wird f llt der Einstieg erheblich leichter Mithilfe des Tutorials werden die verschiedenen Komponenten und Funktionen vorgestellt und vermittelt innerhalb k rzester Zeit die ersten notwendigen Schritten zur Erstellung seiner eigener Testsuite Das Benutzerhandbuch beschreibt die grundlegenden Funktionen von qftestJUl und erweitert durch seinen gut strukturierten und verst ndlichen Referenzteil die Dokumentation Schnell und informativ wird in die Grundlagen von qftestJUI einf hrt Das Testwerkzeug hat bei der Einf hrung seinen bestimmten Preis Das kommerzielle Angebot richtet sich aber ausschlie lich an Firmenkunden W hrend meiner Arbeit konnte ich durch wiederholtes Anfordern der vier Wochen g ltige Evaluationslizenz alle Funktionen von qftestJUl frei schalten und nutzen Bei Problemen und Fragen stand der qftestJUI Support sieben Tage in der Woche zur Verf gung I
38. angebot stellt Compuware nach eigenen Angaben gegen ber QARun den Entwicklungsteams eine leistungsst rkere und flexiblere Testautomatisierungstechnolgie zur Verf gung Die visuelle aufzeichnende Technologie und das automatische Scripting beschleunigen das funktionale Testen von komplexen Microsoft Java und webbasierten Anwendungen Anf nger k nnen durch die schnelle Einf hrung und Hilfe eigene Tests einfacher erzeugen und ausf hren Weitere relevante Informationen f r GUI Tests waren ber die Produktbeschreibung von Compuware und weiteren Quellen nicht umfassend beschrieben Auf mehrere Anfragen beim Support blieb bis jetzt eine R ckantwort aus Ein weiteres Manko f r die Anschaffung von QARun oder anderen Produkten von Compuware ist dass f r eine sorgf ltige Evaluierung der Produkte keine kostenfreie Testlizenz erh ltlich ist Quelle http www compuware com products qacenter default htm Stand 12 2004 aftest UI von QFS Die Quality First Software GmbH QFS widmet sich haupts chlich dem Thema Softwarequalit t und bietet mit qftestJUl ein innovatives Produkt zur Erstellung Ausf hrung und Verwaltung von automatischen Tests f r Java Swing Anwendungen mit grafischer Benutzungsoberfl che Durch die vollst ndige Implementierung in Java legt das Produkt den Grundstein f r plattform bergreifende Tests Die Wiederverwendbarkeit der Tests streicht der Hersteller als wichtiges Features seines Produktes heraus und qftestJUI kommt
39. bei einer oder mehreren Testaktivit ten beispielsweise Planung und Verwaltung Spezifikation Aufbau von Ausgangsdateien Testdurchf hrung und Beurteilung Unterst tzung leistet Pol00 Der Nachdruck liegt hierbei auf der Unterst tzung Ein Werkzeug ist nur dann ein Hilfsmittel wenn sein Einsatz zu h herer Produktivit t und Effizienz f hrt Die f r manuelle Tests wichtige 18 Testtools f r Java Swing Oberfl chen Forderung nach einer m glichst minimalen Testfallmenge l sst sich durch die Testautomatisierung abschw chen Dies begr ndet sich dadurch dass a Maschinenzeit deutlich kosteng nstiger ist als menschliche Arbeitszeit und b Tests ohne erforderliches menschliches Zutun deutlich schneller ablaufen k nnen als manuelle oder teilmanuelle Tests So k nnen mittels automatisch generierter Testsuiten effektiv Kosten eingespart werden Die Testautomatisierung hat sich besonders bei wiederholenden Aufgaben bew hrt vor allem bei der Durchf hrung und der anschlie enden Auswertung Dies ist voraussichtlich auch der Grund f r die derzeitige Konzentration von Testtools die auf diese Aufgaben spezialisiert sind Die Testfallerstellung und Testdatengenerierung wird anderseits von sehr wenigen Tools unterst tzt zudem sind sie sehr zeitaufwendig und besonders abzuarbeiten Der Grund hierf r ist in der Art der Tests zu suchen Die Testwerkzeuge zur Testdurchf hrung sind meist auf Blackbox Tests spezialisiert f
40. ce Gos98 Swing write once run multiple o F r die JDK Entwickler war es ein erkl rtes Ziel die Nachteile von AWT WIN G zu beseitigen Die Vorstellung der neuen Java Version 1 2 mit der Entwicklung der Java Foundation Classes JFC von Sun Netscape und IBM erregte somit auf der JavaOne in San Francisco gro es Aufsehen Die JFC bestehen aus f nf Pakete Swing AWT Accessibility Java 2D und Drag and Drop Swing ist ein komplett neuer Satz von Java Oberfl chenelementen Durch diese Erweiterung wurde das Abstract Window Toolkit AWT vollst ndig berarbeitet und somit eine echte Abb 9 Duke Swing Log0 Alternative wobei Swing auf AWT basiert Swing verwendet von AWT das berarbeitete Event Handling und den Layout Manager arbeitet aber nur noch auf der Ebene der Toplevel Windows in sehr eingeschr nkter Weise mit Peers Durch die komplette Implementierung der Swing Komponenten in Java ist eine bessere Kompatibilit t zwischen den Programmen ber unterschiedlichen Plattformen hinweg gew hrleistet und erweitert die Auswahl an visuellen Komponenten gegen ber AWT wie beispielsweise einige m chtige Primitive zur Darstellung von B umen Alle GUI Elemente abgesehen von Top Level Fenstern Dialogen und grafischen Primitivoperationen werden von Swing selbst erzeugt und gezeichnet Unter Windows wird ein Swing Button nicht mehr von einem Windows Ul Manager dargestellt Auf allen Betriebssystemen findet der Anwender dasselbe Ausse
41. chen so dass andere Mitglieder des Qualit tssicherungsteams Ihre Testskripte erneut verwenden k nnen Auf diese Weise werden keine Aufgaben doppelt ausgef hrt Unterst tzende Umgebung Operating Systems Windows NT Windows 95 Windows 98 Windows 2000 und Windows XP Web Environments Netscape Navigator Internet Explorer AOL ActiveX DHTML HTML XML Client Server Windows applications Win32 Visual Basic Java ActiveX Terminal Emulators 3270 5250 VT100 Enterprise Applications Oracle PeopleSoft Siebel mySAP Net Add in Server Technologies Oracle Microsoft IBM ODBC Quelle http www mercury com de products quality center functional testing quicktest professional Stand 12 2004 WinRunner QuickTest Pro Common Record Replay Function Generator Automatic Code Generation ActiveScreen Run Wizard Code Editor amp Debugger Tree View Shared Object Repository Data Table Numerous Checkpoints TestGuard Script amp Function Libraries ScriptFusion ODBC amp Excel Connectivity VBScript Recovery Manager Analog Abbildung 16 WinRunner vs QuickTest Pro Werden die Funktionen beider Produkte ben tigt bietet das Unternehmen mit Mercury Functional Testing Produktsuite die Komplettl sung Es k nnen gemischte Skripte erstellt werden und jedes Produkt kann die Skripte des Anderen aufrufen Die Ergebnisse werden nach dem Test in eine
42. cnnnnonoccnnnonocnnnncccnnnnocononnnoconnnnncccnnncccncnnnsos 35 ROBOT FUNCTIONAL TESTER VON IBM RATIONAL enderra eirda herda da nc nennen nennen 35 ROD ES anos 35 Eunctional TestertorJavacand Weber dadas tl 36 WINRUNNERTM QUICKTEST PROFESSIONALTM VON MERCURY ccccoocccconccoconononnnnonnncnnnnocononononnnnonnncnonncconnncnnnoss 38 WINRURNET N ea a anhalten e 38 Ouicktest Protest it sn 40 SIELKT ESEMONESEAGURS As a a o e id Ae 42 QARUN VON COMPUWAR Es A a 43 OFTEST UIVON DES kA ku Br ke ei ae LE ias 44 TEEN AS ATI EI Weber 45 JEMMYVON NETBEANS at tt ee 46 ABRO rado ndedoo E r A a OE laica a G 47 N LEPESE TDA E TE PRODI E aana aaa a a A 47 EVALUATION DER TESTWERKZEUGE cccoooccccccnoccncnnonoccnnnonoccnnnnccnnnnoconononoconnnnnoconnncccnonnnoos 48 EIN JAVAISWING BEISPIER 2 2 A A A ehe A A A 48 TENTAR O dl A do e O a Nas 49 Morbereituns des Test nennen essentiellen 49 Test d rchf hren a 2a 22 22 Ri ln A a e e a 54 JEGUNMEMIEXMEn ee ii le wege 54 a aa 58 QORTES Pe E O S A ab BR el EEE EN E Le A Re AL E R E 59 FULDA yon OTLES I ea Eee 60 Aufnahme und Wiedergabe eu na ae 61 PEO TOM en u N E Ban ee EEE 64 REPO SNC UNO AAE AE a ee 65 Weitere Eigenschaften von qgftest Ul aussehen ee 66 Erfahrunge ata tes an AS A SAA 68 ZUSAMMENFASSUNG 4 4 8850 88058 eene eR EuS EEA EEEE EEE elsenehneenslkkgsssheitester 70 UMSETZUNG IN DER PRA Sa 71 AUTOMATISIERTE OAN BD A E AAEE ea NEE AEE SE E 72 EITERATTURVERZEICHNIS 0 en nsee ni en se 74 GL
43. d Merkmalen eines Software Produkts oder einer T tigkeit die sich auf deren Eignung zur Erf llung gegebener Erfordernisse bezieht ISO9126 Das bedeutet das die Qualit t eines Produktes somit die Summe aller seiner Eigenschaften bezogen auf die gestellten Anforderungen ist Die Eigenschaften f r die Qualit t von Software wurde schon im Jahre 1977 im Buch Factors in software quality von J McCall P K Richards und G Walters beschrieben und ist heute in der ISO Norm f r Software Engineering wieder zu finden Die Norm beschreibt ein Qualit tsmodell das die Softwareeigenschaften in sechs Kategorien einordnet 1509126 e Funktionalit t ist die bereinstimmung der Software mit der Spezifikation Sie ist eine der wichtigsten Eigenschaften von Software denn sie bestimmt inwiefern die Software ihren eigentlichen Zweck erf llt e Zuverl ssigkeit ist ein Ma das sich aus der fehlerfreien Funktion einer Software ber einen Zeitraum ergibt Diese Eigenschaft beinhaltet deshalb auch die Fehlertoleranz sowie die F higkeit einer Software aufgetretene Fehler zu behandeln und weiter zu funktionieren Benutzerfreundlichkeit beinhaltet Unterkategorien wie die Erlernbarkeit Verst ndlichkeit und Benutzererwartungskonformit t Sie ist ein Ma stab f r den Aufwand den ein Benutzer der Software f r das Verstehen und die Verwendung der Software aufbringen muss e Effizienz misst die Leistung der Software durch deren Zeitbeda
44. den identifizierten Werten ab Der niedrigste Werte f r Erstellung und Dokumentation von Anforderungen Architekturen Spezifikation lag bei 3 und der niedrigste Wert f r Entwicklung von Code bei 10 Ebenso war der niedrigste Wert f r Erstellung und Durchf hrung von Tests mit 10 beziffert Spitzenwerte wurden f r Erstellung und Dokumentation von Anforderungen z B mit 60 erreicht und mit 85 f r Entwicklung von Code Dabei ist zu beachten dass sich diese Werte nicht zu 100 aufsummieren da sie aus der Betrachtung verschiedener Unternehmen hervorgehen Hinsichtlich Software Product Qualitiy und Qualitiy in use stellt mit 54 Nennungen bei 70 der befragten Unternehmen Functionality Funktionalit t der Anwendung den wichtigsten Qualit tstreiber Die Eigenschaften Usability Reliability und Interoperability stehen mit 20 und mehr Nennungen in zweiter Linie In den Interviews wurden als Schwierigkeiten die im Hinblick auf die den angegebenen Qualit tstreiber auftreten z B bei Funktionalit t stark divergierende Kundenanforderungen angegeben Dabei ist das Feedback zu Produkten die an einem breiten Markt positioniert sind schlechter als das Feedback zu Produkten die f r einen kleinen Kreis von Kunden entwickelt wurden Auf die Frage im welchen Verh ltnis die Testaufw nde zum Gesamtaufwand des Projektes sind sch tzten 132 Unternehmen die Testaufw nde im Kontext eines Projektes auf durchschn
45. e Technik Inzwischen haben GUI Tests bei der berpr fung von Software eine gr ere Gewichtung und eine grundlegende Bedeutung bekommen Der Entwickler bekommt aus der Sicht des Anwenders einen besseren Zugang zum Gesamtsystem und kann die einzelnen Funktionalit ten umfassender testen Die Verteilung zwischen kommerziellen Werkzeugen und Eigenentwicklungen ist in allen Bereichen recht hnlich Etwas mehr als die H lfte der eingesetzten Werkzeuge sind Eigenentwicklungen Dies l sst auf ein Portfolio verf gbarerer kommerzieller Werkzeuge schlie en die nicht ausreichend f r die Einsatzgebiete anpassbar sind Alternativ besteht auch die M glichkeit dass bei kleinen und mittelst ndischen Unternehmen aufgrund von Ressourcen Knappheit solche Werkzeuge nicht angeschafft werden In den Interviews wurde vorwiegend die mangelnde Verf gbarkeit geeigneter Tools als Grund f r den Einsatz selbst entwickelter Tools genannt Weiterhin wurden mangelnde Anpassbarkeit kommerzieller Werkzeuge als Gr nde f r den Einsatz von Eigenentwicklungen benannt Kommerzielle Werkzeuge welche in den jeweiligen Tests von den befragten Unternehmen verwendet werden sind im Folgenden exemplarisch aufgelistet 29 Testtools f r Java Swing Benutzeroberfl chen e Unittests CAST Clover Compuware Tools TestPartner Mercury WinRunner Purify QAC Rational Entwicklertools SOTOGRAPH SQS TEST Professional Testcomplete 3 utplsql unit xUnit family
46. e Probleme Die Kommunikation zwischen den beiden Teilsystemen kann sehr schnell komplex und un bersehbar werden Deshalb wurde die klassische Architektur modifiziert und Swing verwendet das MVC Konzept in vereinfachter Form Der View und Controller Teil wurde zu einem Teil Delegate zusammengefasst weil das Erscheinungsbild und die spezifische Bedieneigenschaft fast immer zusammengeh ren Frei w hlbares Look and Feel Die Entwickler gaben dem Swing mit dem Pluggable Look and Feel eine herausragende Eigenschaft mit Applikationen mit einem Windows Look sehen jetzt unabh ngig von der Plattform auf dem Mac oder Unix Rechner gleich aus Dieses Feature erm glicht einem Anwender auch zur Laufzeit nach seinem Geschmack zwischen vier vordefinierten Look and Feels L amp F zu w hlen Zur Auswahl stehen Metal java eigenes L amp F Motif Unix Oberfl che Mac Apple Macintosh und Windows MS Windows Eine Applikation muss bei nderung des Look and Feel nicht mehr herunterfahren sondern kann ohne gro en zus tzlichen Aufwand praktisch ber einen speziellen Men punkt mit einem einzigen Methodenaufruf von einem Ul Manager vollst ndig und einfach ersetzt werden Die Klasse UlManager steuert das Aussehen und kann ermitteln welche zur Verf gung stehen und aktuell verwendet werden Metal LAF Windows LAF Look and Feel y Metal Motit Windows Metal Motif Look and Feel Lia Motif LAF meta rel wma
47. e Funktion erf llt 32 Testtools f r Java Swing Oberfl chen Einer der Vorteile dieser Methode liegt darin dass relativ wenige Nutzeraktionen gro e Teile des Programms schnell pr fen Allerdings funktioniert das nur bei sorgf ltiger Planung Eine gr ndliche Analyse hilft dabei die ben tigte Qualit t zu gew hrleisten und fr hzeitig den notwendigen Testaufwand zu minimieren Besonders leicht lassen sich Tests durch schlichtes Ausf hren des zu untersuchenden Programms erzeugen Als Ergebnis dieses Aufzeichnens erzeugen moderne Tools ein objektorientiertes Script das die relevanten Informationen wie Fensteraktionen und Events abbildet Im Script kapseln Objekte und deren Methode Fenstemachrichten Tastatur und Mausereignisse Zur Repr sentation der einzelnen Tests dienen Funktionen die Objektzugriffe gruppieren Einzelne von ihnen lassen sich zusammenfassen und k nnen so komplexe Testsuites bilden Auf Fehler w hrend des Tests muss das Werkzeug reagieren k nnen Die meisten Produkte erlauben es einen Basiszustand der Anwendung anzugeben zu dem sie bei einem Fehler zur ckkehren der die Weiterarbeit der Applikation verhindert Mit eingef gten Checkpoints berpr ft das Testtool ob zuvor definierte Ergebnisse erreicht werden oder ob Fehler auftreten Somit k nnen beispielsweise layoutspezifische Eigenschaften Position Gr e Farbe im direkten Zusammenhang mit den funktionalen Eigenschaften Inhalt einer Message Box
48. ehr einfach durch Analysieren der Elemente und der Struktur einer Testsuite zu l sen sind Zu diesem Zweck verf gt qftestJUI ber einen intuitiven Debugger Skripting Es ist einer der gro en Vorteile von qftestJUI dass komplexe Tests erstellt werden k nnen ohne eine einzige Zeile Code zu schreiben Allerdings gibt es Dinge die sich mit einem GUI alleine nicht bewerkstelligen lassen F r ein Programm das Daten in eine Datenbank schreibt k nnte es z B sinnvoll sein zu berpr fen ob die Daten korrekt geschrieben wurden Oder man k nnte Testdaten aus einer Datenbank oder einer Datei lesen und mit diesen einen Test ausf hren All das und mehr wird mit Hilfe der m chtigen Skriptsprache Jython erm glicht Jython ist eine Implementierung der Programmiersprache Python in Java die nahtlos in qftestJUl integriert ist 66 Testtools f r Java Swing Oberfl chen Beim Skripting ist die Herangehensweise von qftestJUI genau umgekehrt zu der anderer GUI Testprogramme Anstatt den gesamten Test durch ein Skript zu steuern bettet qftestJUl kleine Skripte in die Testsuite ein Prozeduren Bei automatischen GUI Tests m ssen immer wieder hnliche Abl ufe mit kleinen Vanationen ausgef hrt werden Um die Komplexit t einer Testsuite zu reduzieren und besser auf nderungen reagieren zu k nnen ist es sinnvoll wiederverwendbare Teile in Prozeduren auszulagem Eine Prozedur kann von jedem anderen Punkt der Testsuite und sogar aus anderen
49. eilung und Auswertung wurden einige Testf lle an einer einfachen Java Swing Beispielanwendung angewendet Ein Java Swing Beispiel Der in Abbildung 17 dargestellte Anmelde Dialog dient zur Demonstration automatisierter Tests beider Testtools ber die beiden Textfelder wird der Benutzername und das Passwort eingegeben Per Maus Klick am Anmelden Button wird der Anmeldevorgang berpr ft Bei erfolgreicher Anmeldung erscheint ein Nachricht Dialog Anmeldung erfolgreich oder bei einer falschen Eingabe die Fehlermeldung Passwort ist falsch Versuchen Sie es noch einmal Mit dem Abbrechen Button kann der Anmeldedialog beendet werden Der Anwendungsabbruch wird mit einem Best tigungs Dialog Programm wirklich beenden best tigt Anmeldung l21x Name po Passwort po Abbildung 17 Anmelde Dialog 48 Testtools f r Java Swing Oberfl chen J FCUnit Die JUnit Erweiterung JFCUnit ist wie wir schon aus dem vorherigen Kapitel erfahren haben ein OpenSource Produkt und in Java geschriebenes Framework zum Test von Swing Komponenten Somit k nnen direkt mit derselben Entwicklungsumgebung wie sie f r die Anwendungsentwicklung benutzt wird Tests geschrieben werden Im Grunde bleibt die Struktur und Ausf hrung der Testf lle von JUnit erhalten nur das durch JFCUnit weitere Methoden zur Verf gung gestellt werden Diese zus tzlichen Methoden und Erweiterungen unterst tzen folgende Aufgaben e Aufsp ren von
50. eine Detailansicht des jeweils ausgew hlten Protokollknotens im Baum Jeder Knoten eines Protokolls hat einen von vier Fehlerzust nden Normal Warnung Fehler oder Exception Dieser Zustand wird durch einen Rahmen um das Icon des Knotens dargestellt dessen Farbe Orange f r Warnung rot f r Fehler oder fett rot f r Exception ist Datei Bearbeiten Ansicht Hilfe ra Protokoll Check fehlgeschlagen BA Protokoll 2 Uhrzeit SHE Test h218 15 220 Ey Test Login Nachricht 09 Sequenz falsches Passwort bweichender enabled Status rwarteter enabled Status false rhaltener Status true Check enabled Status button Anmelden gt LoginScr 2 JButton button Anmelden 12 10 46 455 Missing name suggest bAnmel 12 10 46 495 Abweichender enabled Status Bildschirmabbild 12 10 49 960 Logged information from client Lo i 4 0 Aufr umen LoginScreen beenden z ox AS Bereit Anmerkung Abbildung 23 Protokoll Was sofort auff llt ist der rote Rahmen um den Wurzelknoten des Protokollbaumes Er verr t uns dass sich ein Fehler in einem der Kindknoten verbirgt Die Detailansicht auf der rechten Seite zeigt die Abweichung zwischen erwartetem und gefundenem Text Die grundlegenden Bearbeitungsm glichkeiten im Protokoll sind analog zur Testsuite mit dem Unterschied dass die Attribute der Knoten die aus der Testsui
51. eitgehend bekannten GUI Grundelemente wie Fenster Dialogboxen Men s an Durch die Peer Klassen wird die Oberfl che schnell und der Speicherverbrauch h lt sich durch die wenigen erforderlichen Zeilen Programmcode im Rahmen Das Event Modell war aber unzug nglich und die Auswahl an Oberfl chenelementen war sehr gering Ausgerechnet bei der Portabilit t schlie lich die St rke von Java bereitet das Toolkit vielen Entwicklern erhebliches Kopfzerbrechen Stein97 Die schwergewichtigen AWT Komponenten engl heavyweight components benutzen so genannte Java AWT Objekt Peer Klassen die als native Funktionen auf der jeweiligen Betriebssystemplattform implementiert sind Mit Hilfe der Peer Methoden kann die Darstellung der AWT Objekte am Bildschirm y a ge ndert werden Die in Java geschriebenen Peers schaffen eine einheitliche Schnittstelle die von der zugrunde liegende Benutzungsoberfl che unab LE Moit E I h ngig ist Wenn nun eine weitere grafische Oberfl che unterst tzt werden soll ist es erforderlich die Peer Schnittstellen aller AWT Komponenten unter Verwendung der betreffenden Windows Abb 8 Schichtenmodell der AWT Implementierung Plattform API zu implementieren Erst wenn alle Peers auf der betreffenden Plattform umgesetzt sind k nnen Java Anwendungen die von AWT Objekten Gebrauch machen auf der neu unterst tzten Oberfl che laufen In Abbildung 8 ist das Drei Schichten Modell der AWT Imple
52. el z B durch Projektdruck Tagesgesch ft Einsatzgarantie Kundensysteme kurze Realisierungszeitr ume e Geldmangel f r Testen Testen wird oft nicht honoriert teure Testsoftware hoher Personalaufwand Rechtfertigungsprobleme Kosten Nutzen e Aufwand Einf hrung Anpassung Wartung z B Modularisierung von Testf llen e Zusatzarbeit Dokumentation Anhand der weiteren Ergebnisse aus der Umfrage stellte das Fraunhofer Institut IESE fest dass ein gro es Interesse an den Themen Testen und Testautomatisierung besteht Erste Ans tze dieses Thema und damit die Qualit t der eigenen Software besser in den Griff zu bekommen werden bereits in vielen Firmen geleistet Dieser Stand der Praxis zeigt letztlich dass im Bereich von Testen und Testautomatisierung ein gro es Potential zur Verbesserung der Software der Methoden und zur Kosteneinsparung f r die Unternehmen sichtbar ist und dass dieses erst bei wenigen Unternehmen durchg ngig etabliert ist Ein Gro teil der M glichkeiten welche derzeit existieren wird noch nicht ausgesch pft und bietet daher gro e Chancen konomischere und stabilere Softwareprodukte herzustellen Um dies zu erreichen m ssen jedoch wie die Umfrage zeigte in vielen Unternehmen verschiedene Widerstandfaktoren berwunden und Voraussetzung noch geschaffen werden Der komplette Bericht ist im Internet zu finden IESEO4 Automatisches funktionales Testen Die rasche produktive Einsetzbarkeit d
53. en Zeitmangel und erhebliche Zweifel am Sinn dieser T tigkeiten genannt Personalmangel und der damit verbundene Zeitaufwand z hlen zu den Hauptgr nden f r einen Verzicht auf systematische Tests Wenig berraschend ist weiterhin die Begr ndung f r die Einf hrung von systematischen Verfahrensweisen bei Testaktivit ten Diese begr ndet sich berwiegend durch das Wachstum eines Unternehmens Auffallend waren die Ergebnisse ber den berblick der verwendeten Testtechniken in den Unternehmen Abdeckung und Betrieb S ttigungseffekt Funktionelles und strukturelles Testen Testen wissenschaftlicher Software Testen verteilter Systeme Testen auf Protokollkonformit t Testen von nebenl ufigen Programmen GUI Testen Web basiertes Testen SRET Betriebsprofile Mutationstesten Fehler erraten Datenfluss basiertes Testen Kontrollfluss basiertes Testen Built in Self Testing i Referenzmodelle f r code basiertes Testen z B Flussgraphen Aufrufgraphen i Zufallstesten Auf formalen Spezifikationen basierende Techniken Auf endlichen Automaten basierende Techniken Entscheidungstabellen Grenzwertanalyse Aquivalenzklassen Ad hoc Abbildung 15 berblick der verwendeten Testtechniken Von 94 Unternehmen geh rt GUI Testen zu der drittwichtigsten Testtechnik mit einem geringem Abstand hinter Ad hoc und funktionales strukturelles Testen Weiterhin sind Zufallstesten und das Erraten von Fehlern eine h ufig eingesetzt
54. en mit solchen aus dem Datenmodell der Applikation kombiniert Dadurch sind Test toleranter gegen ber den unvermeidlichen nderungen im Verlauf des Software Entwicklungsprozesses Der Schwerpunkt mit qftesJUl liegt bei der Durchf hrung von Regressionstests Mit Regressionstests soll durch wiederholte Kontrolle nach kleinen nderungen alter Funktionen sichergestellt werden ob die bekannten Fehler wirklich behoben wurden und ob durch die Fehlerbehebung keine neuen Fehler hinzugekommen sind Folglich muss sich qftestJUl an ein m glicherweise ge ndertes GUI anpassen k nnen Im Gegensatz zu Unittests die zwar unverzichtbar sind jedoch immer nur kleine Teile des Gesamtsystems isoliert betrachten testen GUI basierte Tests die Anwendung als Ganzes Dadurch k nnen viele verschiedene Arten von Fehlern aufgedeckt werden nicht nur solche an der Oberfl che selbst Die intuitive Objekt basierte Benutzeroberfl che von qftestJUI erleichtert das Erstellen von einfachen Test Mit einem Mausklick l sst sich die Aufnahme eines manuellen Tests starten Anschlie end kann das aufgezeichnetes Testskript beliebig oft wiederholt und auf ge nderten GUIs angewendet werden Das Hauptaugenmerk von qftestJUl ist nicht das Testen der zugrunde liegenden Swing Implementierung der Fenster und Komponenten Durch die Konstellation von Events und Checks k nnen mittels einfacher Tastenkombinationen in Handumdrehen Testsequenzen zur berpr fung der Logik der Anwendung
55. enntnisse ber das zu testende System Kurzfristig sind sie kosteng nstiger zeigen aber in der Praxis allerdings eine u erst hohe Durchl ssigkeit f r Fehler Black Box Tests werden stattdessen von Programmierern und Testern entwickelt die keine Kenntnisse ber den inneren Aufbau des zu testenden Systems haben In der Praxis werden Black Box Tests meist von speziellen Test Abteilungen oder Test Teams entwickelt Black Box Tests decken besonders viele Fehler auf erweisen sich in der Praxis aber zum einen als organisatorisch aufw ndig und zum anderen manchmal auch als sozial unvertr glich wegen eventueller Spannungen zwischen den Test und den Entwicklungsabteilungen Automatisierte Usability Tests Eine gute Benutzungsoberfl che muss nicht nur eindeutig zu berpr fende Eigenschaften aufweisen sondern ist gleichzeitig unscharfen Bewertungskriterien unterworfen wie Ergonomie intuitive Benutzung und sthetik Die Gebrauchstauglichkeit eines Produktes Usability wird in der ISO 9241 Teil 10 amp 11 definiert Diese europ ische Norm tr gt im Deutschen den Titel ergonomische Anforderungen f r B rot tigkeit mit Bildschirmger ten Entscheidende Faktoren f r die Usability eines Produktes sind zusammengefasst die Effizienz die Effektivit t und die Zufriedenheit Im Klartext geht es darum gesundheitliche Sch den beim Arbeiten am Bildschirm zu vermeiden und dem Benutzer seine Aufgaben zu erleichtern Zu den Normen gibt es noch
56. ente Knoten dass auf das Erscheinen eines Fehlermeldungs Dialogs gewartet wird Zum Schluss wird der OK Button gedr ckt Abspielen von Tests Den oder die entsprechende Knoten m ssen f r das Abspielen einer oder mehrerer Test markiert und mit dem Wiedergabe Knopf gestartet werden Anschlie end l sst sich der Ablauf in der Baumansicht verfolgen Bei einer Ausf hrung werden die Tests der obersten Ebene der Reihe nach ausgef hrt qftestJUI hebt Knoten die gerade ausgef hrt werden durch einen kleinen Pfeil hervor Au erdem werden Meldungen ber den Fortschritt des Tests in der Statuszeile und die Ausgaben des SUT Clients im Terminal ausgegeben Nach Abschluss der Startsequenz erscheint die Testanwendung am Bildschirm Sie ist vollst ndig unter Kontrolle und den wachsamen Augen von qftestJUl Die Events der aufgenommene Sequenz wird wie von Geisterhand ausgef hrt Nach dem Ende des Tests wird das Ergebnis in der Statuszeile angezeigt Im Idealfall steht dort Wiedergabe beendet keine Fehler Andernfalls wird die Zahl der Warnungen Fehler und Exceptions angezeigt Im Fehlerfall wird zus tzlich ein entsprechender Meldungsdialog ge ffnet Aufnehmen von Checks Auch wenn die Aufzeichnung und Abspielen von Sequenzen unterhaltsam sein kann geht es doch eigentlich darum herauszufinden ob sich das SUT dabei auch korrekt verh lt Diese Aufgabe bernehmen Checks Checks vergleichen die Anzeige oder den Status von
57. erden Beim framework based test design wird z B mit Hilfe eines GUI Capture Playback Testtools f r jede Benutzeraktion die man an der Anwendung t tigen kann eine Funktion programmiert die genau diese Aktion durchf hrt Um die entwickelten Funktionen anwenden zu k nnen wird ein Grundzustand der Anwendung definiert Die Anwendung wird nach dem Start zun chst in diesen Grundzustand versetzt Das Aufrufen einer Funktion l st nun die ihr zugeordnete Aktion aus z B indem das Testtool die n tigen GUI Interaktionen an der Anwendung durchf hrt und l sst die Anwendung in den Grundzustand zur ckkehren Damit k nnen alle Funktionen in beliebiger Reihenfolge angewendet werden Alle Testf lle greifen nun auf diese Funktionen zur ck um die vom Testfall vorgegebenen Aktionen in gew nschter Reihenfolge auszul sen Bei diesem Ansatz besteht der Vorteil darin dass wenn sich das Ausl sen einer Aktion in der Anwendung ver ndert lediglich die zugeh rige Funktion angepasst werden muss nicht jedoch die darauf basierenden Tests Durch die Umstellung auf automatische Tests darf nicht davon ausgegangen werden dass zwangsl ufig in k rzester Zeit mehr Fehler entdeckt werden Die Testf lle werden weiterhin noch manuell von Softwaretestern erstellt und ausgef hrt Die Testf lle der Testautomatisierung sind nur so gut und erfolgreich wie von den Testern entwickelt Die Automatisierung unterst tzt haupts chlich die Qualit tssicherung Die
58. erden Umfangreiche Systemtests unter m glichst realistischen Bedingungen sind notwendig Die bersicht bei gro en und komplexen Systemen ohne Kommentare k nnen bei hunderttausend Zeilen Programmcode mehrere zehntausend Fehler enthalten McC93 Das Finden solcher Fehler durch Festlegen von Tests und Testkriterien und die Ermittlung der Fehlerquellen um diese zu terminieren sind Aufgaben des Qualit tsmanagements Somit kann die Gesamtqualit t eines Produktes gesteigert werden In der Softwareindustrie besch ftigt sich das Qualit tsmanagement nicht nur mit der Kontrolle auf Fehler am Endprodukt die dann beseitigt werden m ssen sondern auch mit der Untersuchung der Ursache solcher Fehler Auf diese Weise k nnen Strategien erarbeitet werden diese in Zukunft zu vermeiden bzw das Risiko ihres Auftretens zu verringern Um eine Bewertung der inneren Qualit t und damit der Entwicklung eines Softwaresystems w hrend seiner Evolution vornehmen zu k nnen werden ausgehend von den Ergebnissen der Anforderungsanalyse und allgemein den Fallstudien geeignete Qualit tsmodelle mit geeigneten Operationalisierungen von Qualit t entwickelt Die theoretische Grundlage bilden Qualit tsmodelle wie Factor Criteria Metrics FCM in denen Qualit t durch Qualit tsmerkmale ausgedr ckt in messbaren Qualit tskriterien beschrieben wird Zur Messung der Qualit tskriterien und damit der inneren Qualit t werden passende Softwaremetriken identifiziert und we
59. erung f r Java Swing Anwendungen mit grafischer Benutzeroberfl che qftestJUl beinhaltet eine reiche Palette an Funktionen f r hohe Produktivit t im Testprozess e Plattform bergreifende Tests e Unterst tzt B ume und Tabellen e Tests tolerant gegen ber nderungen e Intuitive Bedienoberfl che e Ubersichtliche Strukturierung e komplexer Testf lle e Integrierter Debugger e Direkter Zugriff auf Java API e Industriestandards XML Python Die Installation von qftestJUI f r Windows kann entweder direkt mit dem ausf hrbaren exe File erfolgen oder mit dem Zip Archiv Die Installation mittels exe File folgt den unter Windows blichen Konventionen Um qftestJUI aus dem Archiv zu installieren wird das Archiv zun chst an einem geeigneten Ort ausgepackt z B C Programme gfs Zum Start ben tigt qftestJUl eine Lizenzdatei die von Quality First Software GmbH vergeben werden Ohne Lizenzdatei k nnen keine Testsuites gespeichert und geladen werden die mit qftestJUI ausgeliefert werden Die vier Wochen g ltige Lizenz wird ber ein Formular angefordert und nach Erhalt in das 59 Testtools f r Java Swing Benutzeroberfl chen Wurzelverzeichnis von qftestJUl abgelegt Danach steht dem Benutzer eine vollst ndige kommerzielle Version zur Verf gung Aufbau von qftestj UI Der linke Bereich des Hauptfensters enth lt eine Baumstruktur und ist zentrales Element gftestJUls grafischer Oberfl che Dieser Baum der die Testsuite rep
60. es Produkts ist in erster Linie von der Erlernbarkeit abh ngig aber auch von der Akzeptanz bei Test Experten und Einsteigern Eine ausf hrliche Dokumentation der verwendeten Skriptsprache tr gt ma geblich zum Erfolg bei Tutorials demonstrieren den praxisnahen Einsatz der Software und helfen beim flotteren Einstieg Zur Testerstellung dienen meist Aufzeichnungs und Wiedergabefunktionen GUI Testtools arbeiten nach dem Capture and Replay Prinzip Es teilt sich in drei Schritte Aufnahme Programmierung und Abspielen Zuerst zeichnen sie Benutzereingaben auf und generieren daraus den Testcode Im Allgemeinen arbeiten diese Programme objektorientiert das hei t sie zeichnen den Klick auf einen Button und nicht die entsprechenden Bildschirmkoordinaten auf Im zweiten Schritt l sst sich dieser wieder abspielen und damit das zu testenden Programm virtuell bedienen Anders ausgedr ckt bilden aufgezeichnete Nutzeraktionen die definierte Testeingabe Das zu testenden Programm wandelt die Eingabe in Fensteraktionen und in der Regel in gespeicherte Daten um zum Beispiel Datenbankeintr ge oder Dateien Bei dieser Vorgehensweise handelt es sich um reines funktionales Testen Das Programm wird in seiner Gesamtheit in seiner Interaktion mit all seinen Komponenten getestet im Gegensatz zu Unittests die in der Regel kleinere Einheiten wie Klassen oder Module kontrollieren F r das Ergebnis des Tests ist nur entscheidend ob die Software ihre aufgezeichnet
61. est sind laut eines Vergleichs mit GUI Testwerkzeugen in der Ausgabe 10 2003 des ix Magazins das gut durchdachte Name Mapping sowie die objektbasierte Skriptsprache wodurch seine Skripte zu den am einfachsten nachvollziehbaren und wartbaren im Test wurden Im Vergleich waren unter anderem die Produkte Teststudio IBM WinRunner Mercury und Testcomplete Automated QaCorp 42 Testtools f r Java Swing Oberfl chen Unterst tzende Umgebung Operating Systems Windows NT Windows 95 Windows 98 Windows 2000 Windows XP und Windows Server 2003 Web Environments Netscape Navigator Internet Explorer AOL DHTML JavaScript and CSS HTML XML Microsoft HTC HTA NET Standalone WinForms and WebForms Visual Basic 6 ActiveX JDK 1 1x 1 4 2 01 Web browser control PowerBuilder 6 5 7 0 8 0 amp 9 0 Win32 MFC 3270 5250 Applications via BlueExpress Unicode Siebel 6 7 7 5 PeopleSoft 8 Citrix Transactions Quelle http www segue com products functional regressional testing silktest asp Stand 12 2004 QARun von Compuware Der Softwarehersteller Compuware bietet mit seinem Produkt QARun eine weitere alternative L sung im Bereich GUI Testen und ist Teil der QACenter Produktreihe QACenter ist eine Sammlung von Werkzeugen zum Testen von Software und zur Test Automatisierung Ein besonderer Schwerpunkt liegt dabei auf der Bewertung von Anwendungen in unterschiedlichen Umgebungen sowie auf der Identifizierung und Behebung von Pr
62. esttools f r Java Swing Oberfl chen 4 GUI Testwerkzeuge im Vergleich In diesem Kapitel wird ein berblick ber einige Testwerkzeuge geliefert die gr tenteils in der Industrie an den Universit ten und Fachhochschulen eingesetzt werden Auf der Suche nach geeigneten Testtools f r Java Swing Anwendungen wird man in B chern ber Softwaretests und im Internet schnell f ndig F r verschiedene Testverfahren und Technologien gibt es eine sehr gro e Auswahl Neben den gro en bekannten Werkzeugen wie den IBM Rational Robot den Mercury WinRunner oder Compuware Silktest die auf das Capture and Replay Verfahren basieren gibt es nat rlich eine gro e Anzahl von kleinen freien Werkzeugen Sie sind in der Regel nicht so umfangreich bieten meist keine Integration in die weiteren Entwicklungswerkzeuge und decken nur reine Funktionstests ab Daf r stehen sie frei zur Verf gung Robot Functional Tester von IBM Rational Vor dem Kauf von IBM unterst tzte Rational Software Corporation Unternehmen darin Software Entwicklungsprojekte plan und vorhersehbar zu machen Projektzeitr ume zu verk rzen und dabei gleichzeitig die Qualit t der erstellten L sung zu sichern Durch die Kombination von Software Engineering Best Practices marktf hrenden Werkzeugen und umfassenden Dienstleistungen decken Rationals integrierte L sungen den gesamten Software Entwicklungszyklus ab Diese offenen Plattform L sungen werden von Hunderten von Partnerf
63. et Stattdessen wird die Komponente unter dem Mauszeiger hervorgehoben was die aktuelle Auswahl signalisiert Der Check wird durch Anklicken der Komponente aufgezeichnet und der Anwender erh lt ein Men mit allen f r diese Komponente zur Verf gung stehenden Arten von Checks Nach der Auswahl wird der aktuellen Wert der Komponente als Ma gabe verwendet Welche Komponente in Frage kommen h ngt von der Jeweiligen ab So stellen manche Komponenten keinen Text dar so dass z B ein Check Text Knoten f r einen Scrollbar keinen Sinn ergibt Um zur ck in den Aufnahmemodus zu gelangen wird der Check Button gedr ckt Checks und Events lassen sich sehr gut mischen Durch diese Konstellation kann die Logik der Anwendung getestet werden und nicht nur die zugrunde liegende Swing Implementierung Damit das st ndige Umschalten zwischen dem SUT und qftestJUI nicht m hsam wird kann mittels einer Tastenkombination direkt im SUT zwischen Aufnahmemodus und Checkmodus hin und herschalten ras Login GO Sequenz falsches Passwort MV Check Text frame Anmeldung gt LoginScreen pH X MPRC 5 8 frameAnmeldung text LoginScreen LY Check Text frame Anmeldung text gt LoginScreen m T Eingabe mustermann frame Anmeldung text gt LoginScreen K PTR Tabulator frame Anmeldung text gt LoginScreen Y Check Text frame 4nmeldung passwd gt LoginScreen r Ti Eingabe passwort frame4nmeldung passwd gt LoginScreen yY Check enabled Status butt
64. etliche Guidelines bez glich User Interface Design Durchf hrung von automatischen Usabilitytests k nnte nach Aussagen einiger Fachleute im Bereich Testautomatisierung beim derzeitigen Stand der Testtools und Strategien die Einhaltung dieser vorgegebenen Richtlinien nur statisch berpr fen Vieles im Bereich Usability ist subjektiv und die Definition in ihrer Formulierung sehr abstrakt Der Nutzer reagiert meist anders als sich der Entwickler das 72 Testtools f r Java Swing Oberfl chen gedacht hat In der Softwareentwicklung sind nach meinen Recherchen und Befragungen keine entsprechende Programme vorhanden Es gibt Programme wie zum Beispiel Morae die es erm glichen wichtige Erkenntnisse ber die Erfahrungen eines Benutzers durch die Erfassung mittels eines Recorders im Hintergrund der kompletten Interaktion zwischen Menschen und Computer zu gewinnen TSmith Es werden die Benutzer und Systemdaten synchronisiert f r Usability Analysen von Software Websites Intranets und e Business Anwendungen aufgenommen Im WebDesign Bereich gibt es automatische Testtools die nur die Aspekte der Barrierefreien Informationstechnik Verordnung BITV oder der Web Accessibility Guidelines WAI 1 0 berpr fen Zum Beispiel bietet das World Wide Web Consortium W3C Online Hilfsmittel zum Testen einer Seite hinsichtlich der Einhaltung der W3C Standards an sowohl hinsichtlich der Konformit t von X HTML Standards als auch zur Einhaltung der C
65. eug mit den gewichteten Auswahlkriterien Er bewertet die Werkzeuge je nach Grad ihrer Erf llung der Kriterien und tr gt die Daten in eine Datenbank ein Er kann auch Daten aus fr heren Bewertungen verwenden Das Ergebnis der Auswertung ist eine Empfehlung von einem oder mehreren Werkzeugen f r den gegebenen Test 21 Testtools f r Java Swing Benutzeroberfl chen GUI Programmierung mit Java Swing In seiner ersten Version enthielt Java schon eine sehr einfache Grafikbibliothek das AWT Eine plattformunabh ngige API Abstract Window Toolkit AWT Das eigentliche Ziel der AWT Entwicklung war es Java Virtual Machine ein vielseitiges aber einfach zu bedienendes Plattform a spezifisches API System f r die Gestaltung grafischer Oberfl chen mit verschiedenen grafischen Primitiven wie Buttons Men s etc zur esa Verf gung zu stellen die auf unterschiedlichen Plattformen lauff hig sind Die Kompromissl sung nach einer Entwicklungszeit von nur sechs Wochen hie s AWT Peers Die Entwicklung von AWT war im wahrsten Sinne ein Schnellschuss und nur der kleinste gemeinsame Nenner f r GUls Es bietet neben den grafischen Primitivoperationen zum Zeichnen von einfachen geometrischen Objekten Linien Kreisen Rechtecken F lloperationen und Methoden zur Textausgabe einen Mechanismus zur ereignisbasierten Ablaufsteuerung an der es erlaubt auf externe Ereignisse wie Mauseingaben zu reagieren Ferner bietet AWT die w
66. ew nschter Stelle bzw als neue Sequenz unterhalb des Extrasequenz Knotens eingef gt Alle Komponenten auf die sich die aufgezeichneten Events beziehen werden automatisch unterhalb des Fenster und Komponenten Knotens in die Testsuite integriert falls sie noch nicht vorhanden sind E G Sequenz falsches Passwort R MPRC 5 5 frame Anmeldung text gt LoginScreen m T Eingabe mustermann frame Anmeldung text LoginScreen K PTR Tabulator frame Anmeldung text gt LoginScreen T Eingabe passwort frame Anmeldung passwd gt LoginScreen x MPRC 1 1 button nmelden gt LoginScreen Warten auf Komponente dialogFehlermeldung LoginScreen R MPRC 1 1 buttonOK2 gt LoginScreen Abbildung 21 erstellte Sequenz In diesem Sequenzbeispiel ist zu erkennen dass die Sequenz mit einem Mausklick im Login Textfeld eingeleitet wird MPRC steht hierbei f r Move Pressed Released Clicked was eine zusammengefasste Version der einzelnen Mauseevents darstellt Die Koordinaten der Klicks werden relativ zum Nullpunkt der Komponenten frameAnmeldung text angegeben Durch den Texteingabe Knoten wird der Text mustermann in das Textfeld geschrieben Mit dem Tabulator Event im PTR Knoten wird dann in das Passwort Textfeld gewechselt Nachdem das Passwort eingegeben und der Anmelde Button gedr ckt wird bewirkt der Warten auf 62 Testtools f r Java Swing Oberfl chen Kompon
67. ezeichnet wobei Verifikationspunkte auf Ausgabefelder und 36 Testtools f r Java Swing Oberfl chen Oberfl cheninhalte erstellt werden k nnen Die Aufzeichnung wird anschlie end in ein Testscript bestehend aus Java Klassen umgewandelt Das System stellt ein hochentwickeltes Funktional und Regressions Testtool f r Tester und GUI Entwickler dar Es unterst tzt mit hoher Kontrollfunktionalit t das Testen von Java Microsoft Visual Studio NET wie auch Web basierter Anwendungen Die Testanwendung unterst tzt Test Neulinge mit Test Automationen wie Data driven Testing Ein Highlight ist sicherlich die ScriptAssure Technologie welche widerstandsf higes wiederverwendbares Scripting in Java basierten Testscripts erm glicht Dieses Novum d rfte bei h ufigen Code nderungen von Entwicklern und Testern sehr gesch tzt werden Wichtig bei der Entwicklung der aktuellen Testsoftware Generation war die Anforderung mit der gleichen leistungsstarken und professionellen Eclipse Entwicklungsumgebung zu arbeiten welche auch von den Entwicklungstools der WebSphere Studio Familie schon bekannt sind Ferner gibt es nun ein Versions Management welches die parallele Entwicklung von Testscripts unterst tzt Dies ber cksichtigt auch die Integration von Rational ClearCase LT das Versions Management Tool von Rational Der Rational Functional Tester berpr ft mit J2EE J2SE HTML DHTML XML JavaScript erstellte Anwendungen und Java A
68. f r die visuelle Darstellung der Komponente Es benutzt die Model Methoden um die f r ihn relevanten Daten abzufragen und nach der Vorgabe des Designers darzustellen Damit die Views und Controller bei Daten nderungen informiert werden lassen sie sich beim Model registrieren Durch einen Nachrichtenmechanismus bekommen sie die nderungen mitgeteilt Nach Erhalt einer nderungsnachricht werden die Daten beim Model abgefragt und die Darstellung auf den aktuellen Stand gebracht Diese Vorgehensweise entspricht dem Observer Pattern Der Controller l sst sich nur beim Model registrieren wenn das Verhalten des Controllers vom Zustand des Models abh ngt Zum Beispiel bei berschreitung der maximalen Anzahl der zu speichernden Werte oder wenn eine nderung des Models einen Men eintrag de oder aktiviert 25 Testtools f r Java Swing Benutzeroberfl chen Daten Datenstrukturen Delegate Component Pr sentation Bearbeitung Abbildung 12 Zusammenlegen von Controller und View Durch die Trennung der einzelnen Teile ist es m glich das Aussehen einer Komponente zu ver ndern ohne ihr Verhalten zu modifizieren Die drei Teilsysteme kommunizieren nur ber Protokolle Bei Einhaltung des Protokolls ist es m glich ein Teilsystems gegen ein anderes auszutauschen F r neue Benutzer Ereignisse muss zum Beispiel nur der Controller Teil ge ndert werden Es ergibt sich aus der strikten Trennung von View und Controller auch einig
69. ftware der Gesamtkosten Software Abbildung 3 Wirtschaftlichkeit des Testens Wurde ein Programm sorgf ltig getestet und sind alle gefundenen Fehler korrigiert so steigt zumindest die Wahrscheinlichkeit dass das Programm sich auch in den nicht getesteten F llen wunschgem verh lt Die Korrektheit eines Programms kann aber durch Testen au er in trivialen F llen nicht vollst ndig bewiesen werden Daf r m ssten alle Kombinationen aller m glichen Werte der Eingabedaten getestet werden Selbst wenn alle Programmanweisungen ausgef hrt w rden w re das noch keine Garantie f r fehlerfreie Software Alle Programm anweisungen in allen m glichen Programmzust nden auszuprobieren ist praktisch nicht m glich besonders bei interaktiven Programmen Ein Programm kann auch nach einer bestimmter Anzahl von erfolgreichen Testl ufen weitere Fehler enthalten denn es kann immer noch weitere Konstellationen des Programms mit auftretenden Fehlern geben Denn abh ngig vom Programmzustand kann eine Anweisung unterschiedliche Ergebnisse liefern So ist z B die Anweisung x 1 a nur dann erfolgreich wenn a ungleich Null ist program testing can be a very effective way to show the presence of bugs but it is hopelessly inadequate for showing their absence Dij72 Mit anderen Worten kann Testen nicht formal die Korrektheit von Software beweisen noch die Evaluation oder die konstruktive Kritik bei der Qualit tssicherung ersetzen Den
70. gewinnung im Fokus der zuk nftigen Entwicklungen von Testautomatisierungswerkzeugen liegen Kann in diesem Bereich ebenfalls eine Automatisierung verwirklicht werden so amortisieren sich die Kosten der Testautomatisierung schneller Der Einsatz bei kurzlebigen Softwareprojekten k nnte somit ebenfalls rentabel werden Umsetzung in der Praxis Es stellt sich die Frage welches der beiden evaluierten Produkte kann in den Labor Projekten w hrend des Studiums integriert werden Abgesehen von den gegebenen Erwerbskosten ist eines der Hauptkriterien der Einarbeitungsaufwand der vom Funktionsumfang und der Dokumentation abh ngig ist Des weiteren geh rt der Lernfaktor in Betracht gezogen Die Fachhochschule Esslingen setzt im Studiengang Softwaretechnik und Medieninformatik verst rkt auf den objektorientierten Ansatz durch die Programmiersprachen C und Java Beide Testframeworks sind in Java implementiert und fertigen ihre Tests in derselben Programmiersprachen wodurch man vollen Zugriff auf die gesamte Anwendung erh lt Zus tzliche Verifikationen und Einstellungen k nnen vorgenommen werden Das Testframework JUnit hat sich in den letzten Jahren als der Standard f r automatische Tests in Java herausgestellt und unterst tzt Extreme Programming JUnit wird in unz hligen Projekten erfolgreich benutzt und viele Entwicklungsumgebungen haben eine direkte JUnit Unterst tzung Aufgrund der breiten Akzeptanz von JUnit und der Erweiterung JFCUnit s
71. glichkeit eigene Erg nzungen hinzuzuf gen kann die Behandlung der Standardkomponenten auf die eigenen Bed rfnisse zugeschnitten werden Auf diese Wiese k nnen auch projektspezifische Komponenten gutin den automatischen Test aufgenommen werden Im Vergleich zu den anderen Test Frameworks bietet JFCunit keine komfortable Oberfl che zum Erstellen der Tests Der JUnit Testrunner unterst tzt nur das Starten des Tests und das Anzeigen der Ergebnisse Das Erstellen der Testf lle wird durch die XML Erweiterung mit der Record Funktion und die Wiederverwendung von Abl ufen deutlich vereinfacht Um den Umgang mit JFCunit zu erlernen ben tigt man eine gewisse Einarbeitungszeit JUnit Erfahrene haben dabei einen entscheidenden Vorteil dass es sich dabei um eine JUnit Erweiterung handelt Dadurch hneln die GUI Tests in diesem Falle stark den gewohnten Unit Tests Die bersichtliche Struktur und die gute Bezeichnung der Klassen und Methoden erweist sich JFCUnit bei der Benutzung mit einigem Ausprobieren als mehr oder weniger intuitiv Die Dokumentation Beispiel die JFCUnit Sourcen selbst und das Help Forum stehen dem Anwender zur Hilfe zum effektiven Einsatz von JFCunit Im Gegensatz zur Dokumentationsvielfalt von JUnit hat JFCunit noch Nachholbedarf In n chsten Zeit werden aber auch B cher erscheinen die den Umgang mit JFCUnit genauer erl utern aftest UI Mit qftestJUI bietet Quality First Software ein innovatives Produkt zur Testautomatisi
72. h ein Catch abgefangen wird oder bis der gesamte Test beendet ist Unterelemente komplexer Komponenten F r die komplexen Swing Komponenten JTable JTree JList etc bietet qftestJUI besondere Unterst tzung So kann z B der Inhalt von Tabellenzellen ausgelesen werden oder ein Mausklick relativ zum Ast eines Baumes angegeben werden der anhand seines Textes identifiziert wird unabh ngig von seiner Position im Baum 67 Testtools f r Java Swing Benutzeroberfl chen Erfahrung mit qftestj UI Das Capture Replay Testwerkzeug qftestJUl von der Firma Quality First Software QFS bietet ein sehr umfangreiches Testpaket mit gro em Funktionsumfang zur Testautomatisierung von GUI Systemtests f r Swing basierte Applikationen an Ein gro er Vorteil von qftestJUI ist die vollst ndige Implementierung in Java und geh rt somit zu den wenigen Testtools die platttform bergreifende Test unter Windows oder diversen Unix Varianten durchf hren k nnen Neben den aktuellen Java Versionen von Sun IBM und anderen Herstellem werden durchg ngig auch ltere Versionen ab JDK 1 1 unterst tzt Mit qftestJUI hat der Anwender vollen Zugriff auf die Struktur des zu testenden Systems inklusive komplexer Swing Komponenten wie B ume und Tabellen Es klinkt sich direkt in die zu testende Anwendung ein und ist dadurch icht auf die vom Betriebssystem bereitgestellten Schnittstellen beschr nkt Die aus der n Oberfl che gewonnenen Informationen werd
73. hand einer kleiner GUI Anwendung die Unterschiede zweier Testwerkzeuge in der Bedienung und Einarbeitung herausgefunden und erl utert Bei der Auswahl wurde als Kriterium die Verbreitung und Verf gbarkeit betrachtet Aufgrund meiner fehlenden Erfahrung mit Testwerkzeugen fiel die Wahl durch Empfehlungen und Erfahrungen Dritter f r die Evaluation auf JFCUnit und gftestJUl von der Firma QFS Im Java Umfeld hat sich das Test Framework und OpenSource Produkt JUnit auf der Ebene automatisierter Unittests mit seinen Erweiterungen als Standard etabliert Die JUnit Erweiterung JFCUnit sind das automatisierte Testen von Swing Komponenten m glich und wird mit JUnit zunehmend integraler Bestandteil g ngiger Entwicklungsumgebungen QFS hat sich schwerpunktm ig auf die Qualit tssicherung f r die Java Plattform spezialisiert Mit qftestJU haben sie ein Framework zur Testautomatisierung entwickelt das zu den Vertretern der Capture Replay Testtools geh rt Innerhalb von zwei Jahren seit der Markteinf hrung von gftestJUl hat QFS einen gro en Kundenstamm auf der ganzen Welt f r sich gewinnen k nnen und war 2004 auf der CeBIT in Hannover vertreten JFCUnit steht zum Download frei zur Verf gung QFS bietet seinen Kunden eine kostenlose Evaluationsversion zum freien Download an Die bereitgestellte Version ist f r den Zeitraum von vier Wochen mit uneingeschr nkter Funktionalit t der kommerziellen Version ausf hrbar F r eine ann hernde Beurt
74. hen und diese Bedienung vor Ein weiteres Merkmal von Swing ist die konzeptionelle Trennung von Funktionalit t und Aussehen einer Komponente und der Austausch von Daten zwischen den GUI Elementen per Drag amp Drop 23 Testtools f r Java Swing Benutzeroberfl chen Komponenten Mit der Einf hrung der Lightweight Components den Java Beans im JDK1 1 wurde Swing technisch umgesetzt Durch die angebotenen Swing Komponenten erfolgt die Realisierung der grafischen Primitivoperationen nicht mehr durch die Operationen des zugrunde liegenden GUI Systems Die gesamte Swing API ben tigt keine nativen Methoden und stellt die gesamte Verwaltung und Verarbeitung der Primitiven zur Verf gung Die Abh ngigkeit eines Partners auf der Betriebssystemseite ist somit unterbunden Swing ist also plattformunabh ngig Durch diesen Ansatz setzt Swing sein eigenes Look and Feel um Component AWT swing Swing ligthweight Swing heavyweight Komponenten Komponenten Abbildung 10 Swing Komponenten Die Swing Klassenbibliothek baut auf AWT auf Es besteht aus den AWT bernommen schwergewichtigen Komponenten heavyweight und den neuen leichtgewichtigen Swing Komponenten lightweight bemommen wurden die Containerklassen Frame Window Dialog und Applet und wurden durch Ableitungen erweitert siehe Abbildung Die abgeleiteten Klassen stellen Bildschirmfenster dar Diese schwergewichtigen Komponenten werden auch als Top Level Contai
75. ich bereits zu einem weitverbreitenden Industriestandard entwickelt hat Zum Suchen und Ersetzen und bei der berpr fung von Daten die an der Oberfl che angezeigt werden k nnen regul re Ausdr cke verwendet werden qftestJUl bindet hierzu das gnu regexp Paket ein welches eine Java Implementierung der klassischen Bibliothek f r regul re Ausr cke auf der Basis endlicher Automaten ist Das Paket enth lt das Java Archiv und den kompletten Quellcode da es unter der GNU Library General Public License steht Da das gesamte Java API zur Verf gung steht sind die M glichkeiten grenzenlos OftestJUl bietet noch f r den fortgeschrittenen Anwender der noch mehr Kontrolle ber seine Anwendung ben tigt mit der Skriptsprache Jython Zugang zu einem weiteren Standardpaket Jython ist eine 100 pure Java Implementierung der Programmiersprache Python Jython erm glicht die Ausf hrung von Python Programmen auf jeder Java Plattform Damit hat der Tester Zugriff auch auf die internen Informationen seiner Anwendung zu denen kein direkter Zugang ber das GUI besteht H ufige Ablaufmuster eines Tests lassen sich in Prozeduren auslagern die von beliebigen Stellen aus aufgerufen werden k nnen Diese k nnen ber Parameter gesteuert und somit vielseitig wiederverwendet werden Ein analoger Mechanismus erlaubt es vielf ltige Informationen in statischen oder dynamischen Variablen abzulegen und sp ter darauf zuzugreifen z B um den Inhalt einer Tabellenze
76. in99 und f r berdeckungskriterien und ma e auf Ze02 verwiesen F r die Unterst tzung des Softwaretesters zu Entwicklung Durchf hrung und Kontrolle der berdeckung des Tests ist aufgrund der hohen Anzahl der Testf lle eine Unterst tzung durch ein Testwerkzeug wertvoll Der Testaufwand f r Softwareprodukte wird durch die steigende Gr e und Komplexit t nat rlich noch gr er Trotzdem soll sich die gesamte Entwicklungsdauer nicht erh hen sondern sogar noch verringern Deswegen werden in vielen Bereichen eine Automatisierung der Testf llen angestrebt Die Erwartungen durch den Einsatz von Testwerkzeugen sind bei der Zeitersparnis und der Personalentlastung gro Dabei muss aber beachtet werden dass der Einsatz nicht immer gerechtfertig ist Testautomatisierung in der Softwareentwicklung Das die Qualit t eines Produktes durch Softwaretests sichergestellt wird hat sich inzwischen schon herumgesprochen Genauso ist bekannt dass die Arbeit wegen der aufzunehmenden M he und Zeit sehr unbeliebt ist Und dieser Aufwand ist abh ngig vom Produktumfang Es bleibt aber auch weiterhin unerreichbar durch ein Testwerkzeug per Knopfdruck die Korrektheit eines Programms zu berpr fen Das Ergebnis der Testf lle ist weiterhin vom Tester abh ngig der die Tests manuell erstellt und ausf hrt Die Arbeit des Testers kann mit Hilfe der Testautomatisierung nur erleichtert werden Ein Testtool ist ein automatisiertes Hilfsmittel das
77. inRunner muss hier der Quellcode der zu testenden Applikation 35 Testtools f r Java Swing Benutzeroberfl chen ver ndert werden um Ergebnisse aus dem System zu bekommen Die Erstellung eines Tests geschieht entweder durch klassisches Capture and Replay Verfahren oder durch das Testfactory Tool Bei Capture and Replay werden die aufgezeichneten Testskripts in einer BASIC hnlichen Sprache die SOABASIC genannt wird erstellt Erstellt man hingegen einen Test mit dem Testfactory Tools analysiert das Werkzeug das GUI der zu testenden Applikation Basierend auf diesen Daten erzeugt es anschlie end automatisch ein Testskript Rational Robot unterst tzt ebenfalls zahlreiche Programmiersprachen Besonders hervorzuheben sind die Unterst tzung von HTML XML Oracle Forms und verschiedene UI Technologien f r alle m glichen Einsatzzwecke angefangen von Java und webbasierter Funktionalit t bis hin zu allen VS NET Steuerelementen einschlie lich VB NET J C und Managed C Somit bietet Rational Robot anscheinend nach als einziges Produkt auf dem Markt umfassende Unterst tzung zum automatisierten Testen von Microsoft Net Software Tests von Web Applikationen k nnen auf verschiedenen Web Browsern mit denselben Test Skripts ausgef hrt werden Zus tzlich bietet Robot umfangreiche Debug Funktionen zum Beheben von Fehlern in Test Skripts Rational Robot stellt Anwendungsbeispiele f r allgemeine Objekte wie Men s Listen und Bitmaps
78. ingere Mitarbeiterzahl der meisten Unternehmen erkennen wie der bei 96 Mitarbeitern liegende Median mittlerer Wert der Stichprobe belegt Bei der Anzahl der Mitarbeiter in der Entwicklung und Wartung von Software ist deutlich eine geringere Zahl der Besch ftigten zu erwarten als mit dem Durchschnittswert angegeben da auch hier wieder eine sehr hohe Standardabweichung auf wenige extreme Ausrei er im maximalen Bereich der Mitarbeiterzahlen hindeutet Der Median der Stichprobe liegt bei 25 Mitarbeitern im Bereich Software Entwicklung und stellt einen plausiblen Wert im Verh ltnis zum Median von 96 Gesamtbesch ftigten dar Unter den 70 Unternehmen die Auskunft ber Investitionen zur Erreichung des aktuellen Grades an Testautomatisierung erteilten lag die Mehrzahl der investierten Mittel f r Testautomatisierung im Bereich unter 50 000 EUR sowohl f r Hard und Software als auch f r Investitionen in Personal F r die weitere Verbesserung im Bereich Testen Testautomatisierung wurden von den 70 antwortenden Unternehmen folgende Erfolgs und Widerstandsfaktoren genannt Erfolgsfaktoren e Mitarbeiter selbst durch Motivation und Leistungsbereitschaft e G nstiges motiviertes Personal z B Diplomand mit eigenem Interesse am Ergebnis e Positive Erfahrungen e Erarbeitung von Know how e Schrittweise Automatisierung mit Offenlegung der Zeitersparnis 31 Testtools f r Java Swing Benutzeroberfl chen Widerstandsfaktoren e Zeitmang
79. irmen erg nzt die mehr als 500 komplement re Produkte und Dienstleistungen liefern 96 Unternehmen der Fortune 100 nutzen Rational L sungen zur schnelleren Entwicklung von hervorragender Software IBM bietet jetzt in ihrer Rational System Testing Produktfamilie zwei Testtools f r automatische Funktionstest von grafischen Benutzeroberfl chen an IBM Rational Robot ist eines der bekanntesten und marktf hrenden Produkten in der Industrie und wurde im September 2002 von Yphise als bestes Automatisierungswerkzeug f r Funktions und Regressions Tests ausgezeichnet Functional Tester for Java und Web ist der Nachfolger des IBM XDE Tester Beide Produkte haben einen weitgehend gleichen Funktionsumfang weisen aber auch wesentliche Unterschiede auf Robot IBM Rational Robot gibt Testern die M glichkeit die Funktions und Regressionstests f r NET Java Web und andere GUI basierte Anwendungen zu automatisieren Zus tzlich zur Integration in andere Werkzeuge der Rational Suite z B TestManager zur Verwaltung von Testf llen unterst tzt Rational Robot auch die Einbindung des Testwerkzeugs in verschiedenste Entwicklungsumgebungen wie Microsoft Visual Studio Oracle Developer Delphi und verschiedene Java Entwicklungsumgebungen Robot kann sowohl f r Tests auf Windows als auch auf Unix Plattformen verwendet werden Robot bietet hnliche Unterst tzung zur Aufzeichnung von Testf llen wie vergleichsweise WinRunner Anders als bei W
80. iterentwickelt Des Weiteren werden Vorgehensmodelle angewandt Modelle deren Anwendung zu einem entwicklungs oder unternehmensspezifischem Qualit tsmodell f hrt beispielsweise Goal Question Metric QBench Qualit t durch Testen Testen ist ein Prozess ein Programm mit der Absicht auszuf hren Fehler zu finden Myers79 Das Testen einer Software ist neben Analyse Entwurf Implementierung sowie Einsatz und Wartung teil jeder Vorgehensweise bei der Entwicklung von Softwaresystemen und wichtiger Bestandteil der Qualit tssicherung Laut Myers werden 50 der Gesamtzeit und der Gesamtkosten von Softwareprojekten nur f r das Testen aufgewendet Um die Qualit t eines Produktes zu sichern muss die Implementierung gepr ft werden Entsprechen die Eigenschaften 12 Testtools f r Java Swing Oberfl chen ihrer Spezifikationen F r den Vergleich zwischen der Spezifikation und den wirklichen Softwareeigenschaften muss die Software ausgef hrt werden Testen ist nichts anderes als das Ausf hren eines Programms bzw einzelner Programmteile unter Verwendung verschiedener Kombinationen von Zust nden und Eingaben wobei erwartete und reale Ausgabe verglichen werden Die Aufgabe des Testens ist es die Fehler in einem Programm zu entdecken und nicht die Fehlerfreiheit eines Programms zu best tigen Gesamtkosten y Kosten f r Fehlerbeseitigung nach Freigabe Testkosten Ungetestete Minimum 0 Fehler So
81. ittlich ca 20 ein Die Werte liegen insgesamt zwischen 2 und 45 und lassen durch die Standard 30 Testtools f r Java Swing Oberfl chen Abweichung von ca 12 eine Einsch tzung im Bereich von einem Drittel bis einem F nftel des Gesamtprojektaufwandes f r das Testen der Software zu Die Frage nach der betrieblichen Organisation der im Hause stattfindenden Softwaretests wurde von 105 Unternehmen beantwortet Dabei konnten jedoch ca 30 der Unternehmen keine klare Zuordnung zu einer der m glichen Antworten vornehmen Unter den gegebenen Antworten f llt auf dass ein hohes Ma an bereinstimmung bei der Organisation von System und Abnahme Akzeptanz Tests besteht In diesen F llen dominiert die Durchf hrung von Tests in losen Gruppen und in eigenen Testabteilungen das Testen durch Einzelpersonen Wesentliche Unterschiede zu den drei bisher angesprochenen Testarten zeigen sich im Bereich der Unittests Hier dominieren die Einzelpersonen Tests mit ca 2 3 gegen ber den losen Gruppen und organisierten Abteilungen die das verbleibende 1 3 ausmachen Das gr te der 64 beantwortenden Unternehmen besch ftigt ca 150 000 Mitarbeiter wohingegen das kleinste eine Ein Mann Firma darstellt Durchschnittlich werden ca 4 800 Mitarbeiter besch ftigt Dieser sehr hohe Wert wird allerdings durch die recht hohe Standard Abweichung welche durch extreme Ausreilser verursacht wird nicht gest tzt sondern l sst eine deutlich ger
82. java awt Window Instanzen z B Frames und Dialoge die vom zu testenden Code ge ffnet wurden e Lokalisieren von Swing Komponenten im Komponentenbaum eines Fensters anhand des Typs des Namens oder beliebiger anderer Eigenschaften e Abschicken gezielter Events im AWT Event Handling Thread z B das Klicken auf einen Button oder die Auswahl eines JTree Teilbaumes e Thread Sicherheit e Vereinfachte Testfallbeschreibung mit XML JFCunit steht in der Version 2 08 unter der Lesser General License LGPL auf der sourgeforce Projekt Homepage jfc zum Download zur Verf gung und jeder kann sich an der Weiterentwicklung beteiligen JFCUnit wird als ZIP Archiv mitsamt Sourcecode und einer kurzen einf hrenden Dokumentation ausgeliefert F r den einwandfreien Testablauf kann JFCUnit nur in Verbindung mit JUnit und Jakarta Regexp installiert werden Die Zip Files werden in einem entsprechenden Verzeichnis entpackt und der CLASSPATH f r die jar Files gesetzt Eclipse und JBuilder Anwender brauchen nur ihr entsprechendes Plugin herunterladen und in ihrem HOME Verzeichnis entpacken inst ber die JUnit Oberfl che den Testrunner k nnen die Testsuites gesteuert werden Der Testrunner erm glicht den Aufbau der Testsuiten zu betrachten sie zu starten abzubrechen und die Ergebnisse zu betrachten Vorbereitung des Test Testklasse erstellen Die Erstellung einer Testsuite unterscheidet sich kaum vom Programmieren einer gew hnlichen Suite JFCU
83. kzeuge ein und befasst sich mit der GUI Programmiersprache Java Swing Kapitel 3 greift die Thematik der GUI Testtools auf Welchen Stellenwert haben diese Tools in der Industrie und in welchem Rahmen k nnen sie die Arbeit des Entwicklers und Testers erleichtern Insbesondere werden dann die einzelnen Schritte des Testablaufs und die verwendete Technik n her erl utert In Kapitel 4 werden kommerzielle und frei verf gbare Testwerkzeuge f r GUI Anwendungen vorgestellt Im folgenden Kapitel 5 werden zwei evaluierte Testtools mit ihren beschriebenen Attributen miteinander verglichen Die Wahl dieser Tools begr ndet sich auf deren Verf gbarkeit und Benutzung in der Industrie und an den Hochschulen Die Ergebnisse der Untersuchung der ausgew hlten Tools wird an einer Beispielanwendung dokumentiert Anhand einer kleinen Testapplikation wurden die Tools aufgrund ihrer Bedienung und Testauswertung berpr ft und verglichen Im letzten Kapitel wird eine Empfehlung aus dem resultierenden Ergebnis f r die Anwendung der Testtools in Studienprojekten gegeben und auf die Durchf hrung von Usability Test eingegangen ber das Testen von Software wurden schon zahlreiche B cher und Berichte ver ffentlicht Deswegen werden im Folgenden nur Punkte angesprochen die f r das Verst ndnis dieser Arbeit notwendig sind Testtools f r Java Swing Benutzeroberfl chen Wie ist Qualit t definiert software Qualit t ist die Gesamtheit von Eigenschaften un
84. l Zur ck vor Neuladen Stopp Startseite MozGest Guide Neuer Tab Lesezeichen qftestJUl Testergebnisse C Test LoginScreen qft Rechner golf Os x86 Windows XP 5 1 Durchgef hrt von Flo Ausf hrungsdatum 2005 02 16 12 17 51 Java Version 1 4 2_06 b03 gftestJU Version 1 06 1 1027 Ergebnis Fehler Uhrzeit 2005 02 16 12 17 51 Dauer 29232 ms 1 Fehler 11 Warnungen Test Uhrzeit 12 17 51 907 Dauer 29142 ms 1 Fehler 11 Warnungen 9 Test Login Uhrzeit 12 18 07 559 Dauer 10736 ms 1 Fehler 10 Warnungen 90 Sequenz falsches Passwort Uhrzeit 12 18 07 599 Dauer 10696 ms 1 Fehler 10 Warnungen Fehler e Abweichender enabled Status Erwarteter enabled Status false Erhaltener Status true Abbildung 24 Testergenisse im HTML Report Der Report beginnt mit einer Referenz auf die zugeh rige Protokolldatei Es schlie t sich ein Teil mit allgemeinen Systeminformationen an Dann folgen das Testresultat die Testlaufzeit sowie die Anzahl an aufgetretenen Exceptions Fehlern und Warnungen Die sich anschlie ende Baumdarstellung zeigt relevante Informationen zum Testablauf und Details der Knoten Hier sind vor allem die Knoten von Interesse die Fehler enthalten Auch die genaue Fehlerbeschreibung ist dokumentiert Weitere Eigenschaften von qftestj UI Der Debugger Wie bei jeder komplexen Entwicklung wird es ab einem gewissen Punkt n tig sein Probleme in einer Testsuite zu debuggen die nicht m
85. ld name_finder find 0 assertNotNull Could not find Passwort_jPasswordField jpField Der Finder ist ein erweiterbares Interface dass es dem Entwickler erm glicht die Suchkriterien f r jeden Komponententyp selbst zu definieren damit die Objekte gefunden werden Verschiedene allgemeine Finder Ausf hrungen werden zur Verf gung gestellt public class AbstractButtonFinder public class AbstractWindowFinder public class FrameFinder public class DialogFinder 51 Testtools f r Java Swing Benutzeroberfl chen public class JLabelFinder public class JmenultemFinder JUnit stellt f r das Testen eine Reihe von Zusicherungsmethoden zur Verf gung Die Assert Methoden dienen jeweils dazu eine bestimmte Aussage zuzusichern assertEquals etwa berpr ft auf Gleichheit und assertTrue testet den Wahrheitswert eines boolschen Ausdrucks Die Methode fail dagegen dient dazu einen Test fehlschlagen zu lassen Dies wird beispielsweise ben tigt wenn getestet werden soll ob eine bestimmte Exception geworfen wird Alle Zusicherungsmethoden besitzen einen optionalen ersten Parameter message vom Typ String der dazu dient aussagekr ftige Fehlermeldungen anzugeben falls der Test an dieser Stelle fehlschlagen sollte assertTrue booleancondition ist eine Bedingung wahr assertEquals Object expected Object actual sind zwei Objekte gleich assertFalse booleanconditon ist eine Bedingung falsch assertNull Objec
86. lem Problem Problem Stellung 1 Stellung 2 Stellung 3 Stellung 4 Was bedeutet Dynamisches Verschiedenartige Unterschiedliche benutzer Verhalten Plattformen Schnittstellenarten freundliches Testen durch Keine einheitlichen abh ngig von der Design eaa GUI Normen Problemstellung Beachtun wechselnde Testen auf Sich er Benutzer mit unterschiedlicher ER Regeln unterschiedlicher HW LICHEN TEST Testen der Erfahrung und bzw Testen auf WERKZEUGEN Usability durch verschiedenartigen unterschiedlichen Psychologen Interaktionen Bibliotheken Abbildung 1 Problemstellungen von GUI Schnittstellen Die Anforderungen an grafische Oberfl chen werden in der Zukunft immer gr er Der Benutzer verlangt seit der Einf hrung der Apple Fenstertechnik nach grafischen Oberfl chen und Multimedia Sie sind schon ein gro er Bestandteil von fast allen Software Produkten Dar ber hinaus muss die Software Spa machen gebrauchstauglich und lernf rdernd sein Dabei werden immer h here Anspr che an die Implementierung gestellt Der Erfolg eines Produkts h ngt dabei sehr von der Qualit t der GUIs ab Bei der berpr fung von Software haben inzwischen GUI Tests eine gr ere Gewichtung und eine grundlegende Bedeutung bekommen Die Tests werden seit geraumer Zeit aus der Sicht des Anwenders durchgef hrt Der Entwickler bekommt dadurch einen besseren Zugang zum Gesamtsystem und kann die einzelnen Funktionalit ten umfassender testen Es reicht nicht mehr
87. lle auszulesen und sp ter mit dem Inhalt eines Textfeldes zu vergleichen Die M nchner Firma hat sich in der Qualit tssicherungsbranche einen guten Namen gemacht und pr sentierte sich erstmalig als Aussteller bei der CeBIT2004 J CFUnit J Unit Die JUnit Erweiterung JFCUnit wurde initial von Matt Caswell und Greg Houston ins Leben gerufen und das Open Source Projekt zur Zeit ma geblich von Vija R Aravamudhan weiter entwickelt Mit dessen Hilfe k nnen mit der Programmiersprache Java Komponententests geschrieben und automatisch ausgef hrt werden Somit k nnen direkt mit der selben Entwicklungsumgebung wie sie f r die Anwendungsentwicklung benutzt wird Tests geschrieben werden Das in Java geschriebene Testframework JUnit ist ein Unittest Tool dient also dem Testen von isolierten Programmeinheiten wie einzelne Methoden Klassen oder Modulen Es setzt an den ffentlichen Schnittstellen dieser Einheiten an Trotzdem ist es ein White Box Testverfahren weil es die M glichkeit und auch die Bereitschaft voraussetzt bestehenden Code zu ndern insbesondere um Schnittstellen zu ndern bzw diese berhaupt erst einzuf hren um eine bestimmte Testbarkeit zu erreichen Mit JUnit werden wiederholbare Testf lle also Testdaten und das erwartete Ergebnis in derselben Programmiersprache erstellt wie der Testling selbst Diverse gesammelte Tests k nnen als Suiten zusammengestellt werden JFCUnit ist eine Bibliothek zum Durchf hren JUni
88. lung neuer Produkte die Kostenreduktion bei der Entwicklung sowie die Qualit tssteigerung der Produkte Die Beschleunigung der Softwareentwicklung wird durch die Wiederverwendung von Software erreicht Durch diese immer gr f gere Steigerung der Wiederverwendung von Funktionen Klassen Komponenten und Architektur wird die Softwareentwicklung vereinfacht aber auch fehleranf llig Dem Ansehen eines Unternehmens wird durch eine fehlerhafte Softwareauslieferung schnell geschadet und kann zu einem mehr oder weniger gro en wirtschaftlichen Schaden f hren Zum Beispiel verursachte der Fehlstart der Ariane 5 Gesamtkosten des Projekts 1987 bis 1998 von ber 6 7 Milliarden Euro Die gr ten Anteile der Verluste waren die vier verlorenen Satelliten 450 Mio Euro der Verzug im Entwicklungsprogramm gt 500 Mio Euro und die zwei zus tzlichen Erprobungsstarts Aus diesem Beispiel k nnen wir f r Software Engineering unter anderem daraus lernen dass e bestehende Software nicht unbesehen f r eine neue Aufgabe wieder verwendet werden darf Vorher muss gepr ft werden ob ihre F higkeiten den Anforderungen der neuen Aufgabe entsprechen Spezifikation e die F higkeiten einer Software sowie alle Annahmen die sie ber ihre Umgebung macht dokumentiert sein m ssen Andernfalls ist die Pr fung auf Wiederverwendbarkeit extrem aufwendig Dokumentation e wenn zwei Software Komponenten miteinander kooperieren so eindeutige Zusammenarbeitsregel
89. mentierung am Beispiel von Windows und X11 erl utert F r beide Oberfl chen sind die Peer Schnittstellen implementiert so dass ein AWT Objekt auf beiden Plattformen dargestellt 22 Testtools f r Java Swing Oberfl chen werden kann Java02 Die Peer Objekte stellen die Br cken zwischen der Java API und dem darunter liegenden Betriebssystems dar Eine AWT Schaltfl che kennt somit auf der Betriebssystemseite einen Partner der die Visualisierung vomimmt Ein einheitliches plattform bergreifendes Look and Feel war aber nicht realisierbar weil alle Fenster und Dialogelemente von dem darunter liegenden Betriebssystem zur Verf gung gestellt wurden Durch die Abh ngigkeit der betriebsspezifischen Komponenten gab es bei der Portabilit t enorme Probleme F r die Realisierung aufwendiger grafischer Benutzungsoberfl chen musste teilweise viel Aufwand betrieben werden Aufgrund der unterschiedlichen Komponenten der verschiedenen Betriebssysteme verwendete AWT nur eine Schnittmenge der g ngigen Komponenten The AWT was something we put together in six weeks to run on as many platforms as we could and its goal was really just to work So we came out with this very simple lowest common denominator thing that actually worked quite well But we knew at the time we were doing it that it was really limited After that was out we started doing the Swing thing and that involved working with Netscape and IBM and folks from all over the pla
90. mit gr eren Ver nderungen im Programm zurecht Mit qftest ist es m glich beliebig viele Programme gleichzeitig zu starten und damit komplexe Systeme als Ganzes zu testen Es l uft unter Windows und Unix mit JDKs von Sun IBM und Blackdown von 1 1 bis 1 5 Die Arbeit mit gftestJUl ist intuitiv und Tester sollten damit bereits nach wenigen Stunden erste lauff hige Tests erstellt haben Die grundlegenden Funktionen sind direkt ber die grafische Oberfl che verf gbar und erm glichen es einfache Tests zu erstellen Die Aufnahme eines manuellen Test lassen sich mit einem Mausklick starten Tastatur und Mausaktionen sowie die Reaktionen der Anwendung werden aufgezeichnet welche dann mit den Elementen der GUI und den zugeh rigen Daten automatisch in eine Baumstruktur integriert werden Mit der hierarchischen Struktur soll unter anderem den schnellen Zugriff auf die aufgezeichneten Informationen gew hrleisten und eine gute bersicht ber die Daten und deren Zusammenh nge geben Die direkte Aufnahme von Testsequenzen ist nur ein kleiner Teil der Automatisierung von GUI Tests mit qftest Mit modernen Kontrollstrukturen und Steuerungsm glichkeiten bietet es weitere Funktionalit ten e Variablen Packages Prozeduren e Starten von beliebigen Parameter Programmen e Bedingungen e Schleifen e Fehler Ausnahmebehandlung 44 Testtools f r Java Swing Oberfl chen Die Testsuiten und Protokolle werden als XML Dateien abgespeichert was s
91. n Dieses Feature erleichtert das Debugging Auf der Ebene automatisierter Klassen oder Komponententests hat sich im Java Umfeld das Test Framework Junit mit seinen Erweiterungen als Standard etabliert und wird zunehmend integraler Bestandteil g ngiger Entwicklungsumgebungen wie z B Eclipse Quelle http sourceforge net projects jfcunit http jfcunit sourceforge net Stand 12 2004 Jemmy von NetBeans Jemmy ist eine Java Bibliothek mit der s mtliche Benutzeraktionen wie etwa Knopfdr cke Texteingabe oder Baumexpandieren gespeichert und wiederholt werden k nnen Dadurch wird der regelm ige entwicklungsbegleitende Test auch ber Benutzerschnittstellen erm glicht Es kann sowohl getrennt als auch zusammen mit dem NetBeans IDE verwendet werden Jemmy kann auch f r automatische Demos von Java GUI Anwendungen verwendet werden Somit kann einfach gezeigt werden wie eine Anwendung arbeitet JemmyTest ist ein in Java geschriebenes Programm das die API von Jemmy verwendet um GUI Anwendungen zu testen Jemmy ist ein NetBeans unabh ngiges Modul Quelle http jemmy net beans org Stand 12 2004 46 Testtools f r Java Swing Oberfl chen Abbot Abbot Framework ist eine Java Bibliothek f r GUI Unittests und GUI Funktionstests Es stellt Methoden zur Erzeugung von User Level Aktionen hnlich wie java awt robot und zur berpr fung des Zustandes von GUI Komponenten zur Verf gung Zwei M glichkeiten stehen z
92. n definiert dokumentiert und eingehalten werden m ssen Wer liefert wem was unter welchen Bedingungen Design by Contract e jede potentielle Fehlersituation in einer Software entweder behandelt werden muss oder die Gr nde f r die Nichtbehandlung so dokumentiert werden m ssen dass die G ltigkeit der dabei getroffenen Annahmen berpr fbar ist Fehlerbehandlung e jedes Programm neben einem sorgf ltigen Test durch kompetente Fachleute inspiziert werden muss weil insbesondere die Erf llbarkeit und Ad quatheit von Annahmen und Ergebnissen h ufig nicht testbar ist Review e Software die nicht ben tigt wird auch nicht benutzt werden sollte Effektivit t e bei der Pr fung von Software die aus mehreren Komponenten besteht es nicht gen gt jede Komponente nur isoliert f r sich zu pr fen Test 11 Testtools f r Java Swing Benutzeroberfl chen WALLY ICH HABE DIE ajl ES GIBT DREI KLASSEN BETA VERSION DEINER VON FEHLERN 1 T DLICH 2 D MUCH 3 L STIC ICH SEHE HIER NUR T DUCH UND L STIG WOSIND DIE D MLICHEN AUF EINEM EXTRA AUS DRUCK ICH MUSS ERST EINE HALLE E mail SCOTTADAMS AOL Vi Ies Unites Festure Syndionte ino NYCH Quelle DIE ZEIT 30 8 96 5 Adams Abbildung 2 Fehlerkritikalit t Comic aus DIE ZEIT Qualit t ist unstrittig eine wertsteigernde Eigenschaft einer Software Diese kann jedoch nur durch Tests die diese best tigen sichergestellt w
93. n und Dialogen kann getestet werden JUnit ist vor allem als Testumgebung von Extreme Programming bekannt geworden In dieser Entwicklungsmethode wird der Testcode geschrieben bevor berhaupt der zu testende Code dazu geschrieben wird Der Test wird also gleichzeitig mit der Software entwickelt Der Programmierer muss sich also zuerst berlegen was seine Klasse tun soll Mit den Tests legt er den Rahmen dazu fest Wird dann die eigentliche Software dazu geschrieben hat man eine klare Kontrolle dar ber ob die Bedingungen die man vorher in der Form eines Tests festgelegt hat erf llt sind oder nicht Schl gt der Test fehl sind entweder die Erwartungen an die Klasse falsch oder die Umsetzung weist Fehler auf Durch die gleichzeitige Entwicklung von Tests und Software wird sichergestellt dass jeder Teil des Programms durch Tests gesch tzt ist ndert man die Software zu einem sp teren Zeitpunkt und die Tests scheitern so weiss man dass die Annahmen die man fr her gemacht hat nicht mehr zutreffen und ein Fehler sehr wahrscheinlich ist Regressionsprobleme werden so schnell erkannt Wird JFCUnit in der XP Weise genutzt so geht das Schreiben von Tests in die normale Arbeitsweise ber Mit der bung verringert sich auch der Aufwand f r die Erstellung der Testf lle Au erdem erh lt der Programmierer direktes Feedback ob die Funktionalit t der Swing Oberfl che korrekt sind und hat die exakte Kontrolle bei korrekt implementierten Tests
94. nachrichtet werden Gegen ber anderen Produkten fallen bei diesem Tool vor allem das ausgereifte Name Mapping sowie die einfache bersichtliche Skriptsprache TSL auf ix 10 2003 Unterst tzende Umgebung Operating Systems Windows NT Windows 95 Windows 98 Windows 2000 und Windows XP Web Environments Netscape Navigator Internet Explorer AOL DHTML HTML XML JavaScript Client Server Windows applications Win32 Visual Basic Java ActiveX Enterprise Applications Oracle PeopleSoft Siebel Baan Programming Environments PowerBuilder Oracle Developer Delphi Centura VisualAge Smalltalk Forte Janus Grids Terminal Emulators 3270 5250 VT100 Server Technologies Oracle Microsoft IBM ODBC Quelle http www mercury com de products quality center functional testing winrunner Stand 12 2004 39 Testtools f r Java Swing Benutzeroberfl chen Quicktest Professional Mit Quickstep Professional bietet Mercury eine Alternative zur kompletten Testsuite Mercury Functional Testing und unterst tzt gegen ber WinRunner andere Umgebungen Die Einarbeitung in Mercury QuickTest Professional wird unerfahrenen Testern mit Hilfe des Computer Based Training CBT erleichtert und innerhalb weniger Minuten k nnen eigene Testskripts durch Capture and Replay erstellt werden Durch einen einfachen Knopfdruck wird ein typischer Gesch ftprozess f r eine Applikation aufgezeichnet Jeder aufgezeichnete Schritt des Gesch fts
95. nd Komponenten und der notwendigen Tests festegelegt Entsprechend werden die einzusetzenden Testwerkzeuge definiert bzw festgehalten wann sie beschafft oder erstellt sein m ssen Der Aufwand wird durch die rechtzeitige Planung des Testablaufs und der Testumgebung reduziert Beim Testreview wird der Testplan und die Testspezifikationen berpr ft In der Testvorbereitung wird die erforderliche Umgebung f r den Test bereitgestellt Die Testf lle sollen bis auf die Eingabedaten in maschinenlesbarer Form an der Mensch Maschine Schnittstelle vorliegen Bei der Testdurchf hrung werden die Testf lle ausgef hrt Beim Ablauf ist es ratsam das sie mit m glichst wenigen Bedienereingriffen maschinell durchgef hrt werden sollte Die Testergebnisse werden in der Testauswertung gegen die erwarteten Solldaten gepr ft Dabei stellt sich dann die Frage ob die bearbeiteten Testf lle ausreichen Zum Schluss dient die Testkontrolle der berwachung und Steuerung des gesamten Testprozesses auf der Basis der Testplanung Testmodelle und Teststrategie Der Softwareentwickler steht bei einer unendlichen Anzahl der Eingaben kombiniert mit den Zust nden vor einem gewaltigen Problem Welche Eingaben soll er denn Testen Zielloses herumexperimentieren f hrt zu keinem Erfolg und das Vertrauen des Entwicklers schwindet schnell Es muss dort getestet werden wo Fehler am wahrscheinlichsten auftreten Aufgrund der gro en Anzahl der m glichen Tests f
96. ner bezeichnet Das Betriebssystem stellt diese Komponenten zur Verf gung und werden von den Swing Komponenten als Zugang zu der vom Betriebssystem verwalteten Oberfl che verwendet Die Klasse Component bildet die Basisklasse der Objekte die als grafische AWT Komponenten auf den Schirm kommen Die leichtgewichtigen Swing Komponenten in der Klasse JComponent sind nicht direkt von Component abgeleitet sondern erst von Container Das hat die Konsequenz dass jedes JComponent automatisch auch ein Container ist JComponent beinhaltet einen gro en Satz von zus tzlichen neuen Komponenten beginnend bei sehr einfachen beispielsweise Labels bis zu sehr komplexen Komponenten wie zum Beispiel Tabellen und Trees Alle Elemente von Swing sind Bestandteil des Pakets javax swing Um eine Namensverwirrung zu vermeiden wurde an die entsprechenden neuen Klassen ein J vorangestellt Zwischen den AWT und Swing Hauptfenstern besteht ein bedeutender Unterschied in ihrer Komponentenstruktur und den sich daraus ergebenden Unterschieden in der Bedienung W hrend jede Komponente eines AWT Fensters in ein eigenes undurchsichtiges Fenster gelegt wird besitzt ein Swing Hauptfenster eine einzige Hauptkomponente Heavyweight Beh lter Frame Window die alle anderen Komponenten aufnimmt und einen durchsichtigen Hintergrund besitzen kann Das Mischen beider Komponenten ist nicht zu 24 Testtools f r Java Swing Oberfl chen empfehlen es kann zu
97. ngen und ben tigte Testdaten zur ckgeben e Big Bang Strategie Die Big Bang Strategie erfolgt durch das Testen aller Komponenten auf einmal als monolithische Einheit Der Tester muss keinerlei Treiber oder Stubs schreiben jedoch sind Fehler innerhalb der komplettierten Anwendung schwieriger zu finden Testmethoden In den einzelnen Testphasen finden unterschiedliche Testmethoden Verwendung Die Auswahl der Methoden ist von den Zielen der jeweiligen Testphase und dem Testling abh ngig Es gibt zwei unterschiedliche Vorg nge bei Tests Beim destruktiven Testen werden durch die Testfallauswahl die Problembereiche eines Programms berpr ft mit dem erkl rtem Ziel m glichst viele Fehler zu entdecken Alternativ wird beim demonstrativen Testen Testf lle ausgew hlt die den korrekten Ablauf des Programms zeigen sollen Ri97 Bei den Test unterscheidet man Testmethoden die sich nach der Art der Testdatengenerierung und der Testf lle unterscheiden Allgemein sind dies spezifikationsorientierte und implementierungsorientierte Tests Ri97 Spezifikationsorientierte Tests werden gew hnlich als Blackbox Tests bezeichnet Bei dem Blackbox Testing wird nur anhand der Spezifikation und der Schnittstelle getestet unabh ngig davon wie die Implementierung aussieht Sie betrachten eine zu testende Software als Einheit die mit Eingaben versorgt wird und deren Ausgaben kontrolliert werden Der interne Ablauf innerhalb der Software wird dabei
98. nit verwendet die Klassen JFCTestCase welche von der Klasse junit framework TestCase abgeleitet ist die Klasse Testsuite von Junit und einer unterst tzenden Klasse JFCHelper Die Klasse JFCTestCase bietet den Rahmen f r Testf lle und enth lt die interne Thread Steuerung zu einem Testfall Die Klasse JFCHelper bietet den Zugriff auf die Swing Komponenten Jeder Testfall wird durch eine eigene Klasse abgebildet Im ersten Schritt muss zun chst die Testklasse angelegt werden die von junit extensions jfcunit JFCTestCase ableiten Somit hat man den Zugriff auf alle Hilfsklassen deren Methoden zum Finden der Komponenten und Ausl sen 49 Testtools f r Java Swing Benutzeroberfl chen der Events JFCUnit sorgt intern f r das Wechseln zwischen Test Thread und AWT Event Thread import javax swing import junit extensions jfcunit import junit extensions jfcunit finder public class LoginScreenTest extends JFCTestCase private LoginScreen loginScreen null public LoginScreenTest String name super name In der setUp Methode wird ein TestHelper instanziiert und mit der setHelper Methode zugewiesen Der TestHelper simuliert die Benutzeraktionen und es stehen ihm die Klassen JFCTestHelper und RobotTestHelper Package junit extensionjfcunit zur Verf gung Der JFCTestHelper erzeugt AWT Events die in der AWT Event Queue eingestellt werden Dagegen benutzt RobotTestHelper das awt Robot API und stellt die Benutze
99. nn entsteht jedoch wenn Usability von Anfang an mit einbezogen wird Dies kann zu einer Effektivit tssteigerung von ber 700 f hren amp Landaer 1995 Schlechte nachvollziehbare Strukturen missverst ndliche Navigationselemente oder technische Unzul nglichkeiten lassen den Kauf von Softwareprodukten und dem Besuch im Netz im Misserfolg enden 73 Testtools f r Java Swing Benutzeroberfl chen 7 Literaturverzeichnis Bin99 ct03 ct04 Cem97 Dij72 Ginz00 Glat04 Gos98 IESE04 1809126 1x03 Java02 fc04 KirsO3 Krueg03 LEOS McC93 Mie03 Robert V Binder Testing Object Oriented Systems Models Patterns and Tools Reading MA Addison Wesley 1999 Dr Andreas Elting Dr Walter Huber Schnellverfahren Mit Extreme Programming immer im Plan c t 03 2001 c t Newsticker Ungl ckliche Geldvermehrung bb 25 05 04 http www heise de newsticker meldung 47666 Cem Kaner Improving the Maintainability of Automated Test Suites Paper Presented at Quality Week 1997 Edsger W Dijkstra Notes on Structured Programming In O J Dahl Hrsg E W Dijkstra Hrsg C A R Hoare Hrsg Structured Programming London Academic Press 1972 Prof Dr Martin Glinz Universit t Z rivh KV Software Engineering Christian Glatschke Automatisierung dse Tests von Java Swing GUls JavaSpektrum 06 2004 Interview mit James Gosling vom 2
100. nnerhalb k rzester Zeit bekam ich hilfreiche R ckantwort Seit der Markteinf hrung konnte QFS bereits mehr als 100 Kunden aus allen Teilen der Welt f r sein Produkt qftestJUl gewinnen In der n heren Zukunft plant QFS Erweiterungen zu qftestJUI herauszubringen Es ist das Ziel auf Basis ihres Frameworks Werkzeuge aus dem gesamten Bereich der Software Qualit tssicherung zu liefern Die Kombination von Unittest und funktionalen Testen mit qftestJUl ist f r das Unternehmen ein weiteres Bestreben indem die Applikation als Ganzes durch qftestJUl getrieben und so eine realistische Umgebung f r komplexe Unittests aufgebaut wird Dies kann zu u erst m chtigen Tests f hren die weit dar ber hinaus gehen was mit Unit oder GUI Tests alleine m glich ist Durch der Jython Schnittstelle ist die Integration von Unittests in qftestJUI bereits jetzt erreichbar F r QFS ist aber das Thema so interessant dass sie hier eine noch wesentlich weitergehende Unterst tzung anstreben 69 Testtools f r Java Swing Benutzeroberfl chen 6 Zusammenfassung Testautomatisierung ist die Verwendung eines Testwerkzeugs um Tests zu erleichtern Es ist ein Hilfsmittel das eine oder mehrere Testaktivit ten unterst tzt Auf der einen Seite verlangt Testautomatisierung einen strukturierten Testprozess Auf der anderen Seite hilft Testautomatisierung bei der Einrichtung eines strukturierten Testprozesses Testwerkzeuge haben sowohl Vor als auch Nach
101. oblemen QARun kann wie zum Beispiel auch WinRunner Tests auf allen Windows Plattformen durchf hren Die Aufzeichnung von Testf llen erfolgt wie auch schon bei anderen Werkzeugen durch Aufzeichnung von Testf llen mittels Recorder Bei QARun muss der Quellcode der zu testenden Applikation erweitert werden um R ckmeldungen des Systems zu erhalten QARun verwendet wie auch die anderen Produkte ein eigenes Format zur Definition von Testf llen und unterst tzt diverse Programmiersprachen Zus tzlich zu den Standardsprachen werden HTML und Oracle Applikationen unterst tzt Au erdem ist es m glich Tests von SAP R 3 und Siebel Systemen durchzuf hren Compuware bietet seit kurzer Zeit mit Testpartner einen Nachfolger bzw ein umfangreicheres Produkt f r die QACenter Familie an TestPartner erweitert die Funktionalit ten von QARun f r Anwendungstests es bietet mehr Flexibilit t Produktivit t und dar ber hinaus nicht propriet res Skripting durch die weitverbreitete Sprache Microsoft VBA Visual Basic for Applications Der Nachfolger baut weitestgehend auf denselben Konzepte und Features des bis dato f r Compuware erfolgreichen QARun e Capture amp Replay e Identifizierung e Database Repository e Alias Mapping e Object Image Mapping e Support for multiple environments e Kontrollen e Asset Versioning e Events e Modular Scripting Funktionen e Logs 43 Testtools f r Java Swing Benutzeroberfl chen Mit diesem L sungs
102. oder ihres Typs identifiziert werden Stellen wir uns zum Beispiel ein Fenster vor das mehrere verschiedene Komponenten einschlie lich eines Buttons mit dem Text OK enth lt Die erste M glichkeit w re einen Code zu schreiben der alle Komponenten des Window Containers durchl uft bis der passenden Buttons gefunden ist Alternativ k nnte dieses Vorgehen die findButton Methode des JFCTestHelpers bernehmen Zum Auffinden weiterer Komponenten steht eine gro e Anzahl von weiteren Methoden zur Verf gung Beispielsweise sucht der CompontFinder die Komponente anhand ihres Typs und der NamedComponentFinder benutzt den Namen zur Suche Im ersten Schritt werden die GUI Komponenten die f r den Test ben tigt werden mithilfe des Named ComponenentFinder ermittelt Der Finder sucht nach einer Komponente des Typs JComponent mit dem Namen Name _jTextField und Passwort_PasswordField Mit der find Methode wird die erste Komponente mit dem Index 0 auf die diese Suchkriterien zutreffen gesucht Die assert Methode berpr ft ob das Textfeld gefunden wurde und nicht ung ltig ist Komponenten auffinden NamedComponentFinder name_finder new NamedComponentFinder JComponent class Name_jTextField JTextField jtField JTextField name_finder find 0 assertNotNull Could not find Name_jTextField jtField name_finder new NamedComponentFinder JComponent class Passwort_jPasswordField JTextField jpField JPasswordFie
103. oginScreen robot true gt 55 Testtools f r Java Swing Benutzeroberfl chen lt Registrieren eines neuen TagHanlder gt lt taghandlers action add tagname mytag classname myproject taghandler MyHandler gt find finder NamedComponentFinder id userNameField class java swing JTextField index 0 name LoginNameTextField gt lt find finder NamedComponentFinder id exitButton class java swing JButton index 0 name ExitButton gt lt Definition der Procedure gt lt procedure name insert gt lt find finder NamedComponentFinder id userNameField class java swing JTextField index 0 name LoginNameTextField gt lt key refid userNameField string name gt lt procedure gt lt test name LoginScreen robot true gt lt Verwendung der Procedure gt lt procedure call insert nachname Mustermann gt lt Verwendung des neuen Tags gt lt mytag name test gt lt test gt lt suite gt Voraussetzung f r Java Codierung Um eine XML Datei ausf hren zu k nnen muss lediglich die Java Klasse XMLTestSuite anstelle der TestSuite verwendet werden Dies ist die einzige Java Klasse die zum Ausf hren der Testf lle geschrieben werden muss Sie kennt die XML Datei und veranlasst die Auswertung der Tags public class TestXMLLoginScreen extends XMLTestSuite public static final String DOCUMENT_FACTORY
104. ollte ber eine Integration in einigen Java Projekten nachgedacht werden Die Implementierung der Testf lle m ssen gr tenteils selbst programmiert werden und k nnen durch die XML Erweiterung mit der Record Funktion deutlich vereinfacht werden Durch die Nutzung von JFCUnit geht das Schreiben von Tests projektbegleitend in die normale Arbeitsweise ber und mit der bung verringert sich auch der Aufwand f r die Erstellung der Testf lle Somit k nnten auch direkt mit der selben Entwicklungsumgebung wie sie f r die Anwendungsentwicklung benutzt wird Tests geschrieben werden Mit JFCUnit lassen sich einfache funktionale Tests abbilden Trotz des zur Zeit geringen Funktionsumfanges kann JFCUnit teilweise mit geringen Erweiterungen zum Test von kleinen Komponenten sinnvoll eingesetzt werden JFCUnit hat im Gegensatz zu qfestJUl keine so ausgereifte und ausf hrliche Dokumentation Die beigef gten Beispiele und das Help Forum sind aber bei mancher Problemstellung eine gro e Hilfe Es gibt auch schon zahlreiche IT B cher die sich mit Testautomatisierung und dem Testframework JUnit und JFCUnit auseinander setzen Zum besseren Verst ndnis w re es zum Vorteil sich mit JUnit zuerst auseinander zu setzen Die Benutzung vom Capture amp Replay Programm qftestJUl hilft vor allem die Testzeiten bei Regressionstests zu verk rzen Die Erstellung einer Testsuite und die Einarbeitung in die ersten notwendigen Schritte wird durch das Tutorial in k rzeste
105. on4nmelden gt LoginScreen r x MPRE 1 1 button nmelden LoginScreen Warten auf Komponente dialogFehlermeldung LoginScreen RX MPRE 1 1 buttonOK2 gt LoginScreen Abbildung 22 Check Erweiterung Die Sequenz falsches Passwort wird mit der berpr fung der beiden Textfelder und dem Anmelde Button in der Testanwendung erg nzt Die ersten beiden Check Knoten berpr fen ob die beiden Textfelder leer sind Nach der Texteingabe kontrolliert der dritte Check Knoten den enable Status des Anmelde Buttons Bei einem fehlerhaften Ablauf einer Testsequenz erscheint ein Dialog mit der Meldung Fehler bei der Wiedergabe Protokoll Nachdem ein Testlauf beendet ist erscheint in der Statuszeile des Hauptfensters von qftestJUl eine Meldung mit dem Ergebnis Im Idealfall lautet diese Keine Fehler Sind Probleme aufgetreten wird die Zahl der Warnungen Fehler und Exceptions angezeigt und gegebenenfalls zus tzlich ein Dialogfenster ge ffnet Dann ist es an der Zeit herauszufinden was schief gelaufen ist Mithilfe des Protokolls k nnen diese aufgetretenen Probleme genauer veranschaulicht werden Das Protokollfenster hnelt im Aufbau dem einer Testsuite Der Baum auf der linken Seite repr sentiert nun aber die zeitliche Darstellung des Testlaufs Die Zeitachse verl uft von oben 64 Testtools f r Java Swing Oberfl chen nach unten Analog zur Testsuite befindet sich auf der rechten Seite
106. ortgeschrittene Tester k nnen ihre Testkripte in der Expertenansicht anzeigen und bearbeiten Dort ist das zu Grunde liegende branchenf hrende VBScript zu sehen das QuickTest Professional automatisch generiert Alle in der Expertenansicht vorgenommenen nderungen werden automatisch mit der Stichwortansicht synchronisiert Nachdem ein Tester ein Skript ausgef hrt hat zeigt ein TestFusion Bericht alle Aspekte des Tests an eine Ergebnis bersicht eine erweiterbare Strukturansicht des Testskripts mit genauen Angaben zu Applikationsfehlern verwendeten Testdaten Screenshots der Applikation f r jeden Schritt auf denen Abweichungen markiert sind sowie genauen Erl uterungen aller Pr fpunkterfolge und Fehler Durch die Kombination von TestFusion Berichten mit Mercury TestDirector k nnen alle Mitarbeiter der Qualit tssicherung und Entwicklung Berichte gemeinsam nutzen Dank der Technologie f r die automatische Dokumentierung werden Testdokumentation und Testentwicklung in einem Schritt ausgef hrt Quick Test Professional vereinfacht zudem den Aktualisierungsprozess Wenn sich eine getestete Applikation ndert z B bei der Umbenennung einer Anmeldungsschaltfl che kann eine Aktualisierung am Shared Object Repository vorgenommen werden Diese Aktualisierung wird dann auf alle Skripte bertragen die mit diesem Objekt verbunden sind Testskripte lassen sich 40 Testtools f r Java Swing Oberfl chen in Mercury TestDirector ver ffentli
107. pplets und schlie t insbesondere eine Unterst tzung f r die SWT Java Bibliothek der Eclipse Shell mit ein Es wertet dynamisch generierte Daten ohne manuellen Eingriff aus und minimiert so die Scriptverwaltung Interessant ist auch die Verwaltung aller Testobjekte in einem zentralen Repository nderungen an Objektmerkmalen werden so auf alle entsprechenden Testscripts bertragen Das Testsystem unterst tzt die Betriebssysteme MS Windows 2000 Linux MS Windows NT und MS Windows XP Ferner werden die IBM Plattformen der 3270 zSeries and 5250 iSeries von der Testsoftware ber cksichtigt Quellen http www 306 ibm com software info ecatalog de_DE products C108274157640Y75 html http www 306 ibm com software awdtools tester functional index html Stand 12 2004 Rational Software hat eine neue automatisierte Technologie f r das Testen von Java Anwendungen entwickelt Mit Rationals neuer Adaptive Test Playback Technologie passen sich Tests automatisch an nderungen und Revisionen von Anwendungen an So erweitert die neue funktionale Regressionstest Technologie Rationals umfassende Softwareentwicklungs umgebungen f r Projektteams die java und webbasierte Business Applikationen erstellen Die neue Adaptive Test Playback Technologie von Rational bietet die erste selbstkorrigierende Objekterkennung welche die Anzahl der erforderlichen Anpassungen von bestehenden Tests w hrend des gesamten Lebenszyklus einer Anwendung deutlich
108. prozesses wird automatisch mit einem Satz und Screenshot in englischer Sprache dokumentiert In der Stichwortansicht k nnen Benutzer Testschritte einfach ndern entfernen oder neu anordnen In QuickTest Professional wird die tastaturgesteuerte Testtechnologie eingef hrt bei der keine Konfigurationen erforderlich sind Dadurch wird eine schnelle Testentwicklung einfachere Testwartung und leistungsst rkere Datensteuerungsf higkeit erm glicht QuickTest Professional f hrt automatisch Pr fpunkte ein die die Eigenschaften und Funktionen von Applikationen pr fen beispielsweise zur Validierung der Ausgabe oder zur Pr fung der Linkg ltigkeit F r jeden Schritt in der Stichwortansicht werden auf einem entsprechenden ActiveScreen Einzelheiten zu der getesteten Applikation angezeigt Es k nnen auch f r alle Objekte mehrere Arten von Pr fpunkten hinzugef gt werden um zu pr fen ob sich die Komponenten erwartungsgem verhalten Dazu klickt man einfach auf das Objekt auf dem ActiveScreen Anschlie end k nnen Testdaten in die Datentabelle eine integrierte Tabellenkalkulation mit der vollen Funktionalit t von Excel einf gt werden Dort hat der Tester die M glichkeit Datens tze zu bearbeiten und mehrere Testiterationen zu erstellen ohne jegliche Programmierung So werden mehrere Testf lle abgedeckt Daten k nnen ber die Tastatur eingegeben oder aus Datenbanken Tabellenkalkulationen oder Textdateien importiert werden F
109. r sentiert wieder spiegelt die hierarchische Struktur der GUI Anwendung und vereinigt die Kontrollstrukturen und die Daten zum Automatisieren von GUI Test E Testsuite LoginScreen gft u loj xj Datei Bearbeiten Ansicht Einf gen Aufnahme Wiedergabe Debugger Clients Extras Hilfe DADIJUVPINDDOITSGLO Testsuite Aufr umsequenz TN A Do D Test Login Er A x as ER Wariablen 0 PET LoginScreen beenden Prozeduren 6 Extrasequenzen cao Sequenz Aufnahme 15 02 05 15 13 Fenster und Komponenten gt 4 7 JFrame frame 4nmeldung Maximaler Fehler JDialog dialogNachricht Exception Dialog dialogFehlermeldung exception z JDialog dialogBeenden ooo Fu ptr Terminal jar C Programme gfs qgftest qftestJUI 1 06 1 lib png jar C Programme gfs gftest gf testJUI 1 06 1 lib jython jar C Programme gfs gftest g ftestJUI 1 06 1 lib cmu jar C Programme gfs qgftest gftestJUI 1 06 1 lib bsfengines jar C Programme qgfs qftest g testJUI 1 06 1 lib bs jar C Test Loginscreen jar Dgftest home C Programme gfes gftest DqgftestJUI home C Programme gfs gftest gftestJVUI 1 06 1 de qgfs apr s gftest start Startllient Loginscreen y Bereit Abbildung 19 Hauptfenster einer Testsuite Die Grunds
110. r Funktionalit t eines Softwaresystems bez glich der Spezifikation im Pflichtenheft Verifikationstests werden sowohl auf einzelne Klassen oder 16 Testtools f r Java Swing Oberfl chen Module eines Systems als auch auf die Integration dieser Komponenten durchgef hrt Validierungstests dienen zur berpr fung der Funktionalit t des Gesamtsystems auf Brauchbarkeit Diese Tests werden deshalb oft auch als Systemtests oder Gesamttests bezeichnet Bei Validierungstests werden wiederum Subsystemtests und Integrit tstests unterschieden Subsystemtests beziehen sich auf einen Teilbereich des Gesamtsystems der gr tenteils unabh ngig von den anderen Bereichen benutzt wird Integrit tstests besch ftigen sich mit dem Testen des aus den Subsystemen bestehenden Gesamtsystems F r den Tester bedeutet eine gewisse Reihenfolge ein geringerer Arbeitsaufwand leichteres Fehler finden und l sst leicht R ckschl sse auf die Fehlersuche zu Die Strategien sind f r die Kombination der Komponenten in dieser Testphase Ri97 e Bottom Up Strategie Die Komponenten werden in der Reihenfolge ihrer Abh ngigkeiten untereinander von unten nach oben integriert Der Vorteil f r den Tester bei dieser Vorgehensweise ist dass er nur Testtreiber schreiben muss e Top Down Strategie Analog zur Bottom Up Strategie werden die Komponenten von oben nach unten integriert Der Tester muss lediglich Stubs schreiben welche die Aufrufe der Komponenten abfa
111. r Zeit unterst tzt Die manuelle 71 Testtools f r Java Swing Benutzeroberfl chen Anpassung der aufgenommenen Testskripte m ssen bei qftestJUl auch vorgenommen werden da zus tzliche Pr fungen und Fehlerbehandlungen in die Skripte integriert werden m ssen Gerade dieser Umstand bringt einen erheblichen Mehraufwand bei Testtools im Vergleich zum manuellen Testen mit sich Der Vorteil von qftestJUl gegen ber JFCUnit ist die gute bersichtliche intuitive Benutzeroberfl che die eine Testsuite berschaubar macht und eine umfangreiche Funktionalit t anbietet Die JUnit Familie geh rt zu den wenigen Testwerkzeugen die White Box Testverfahren unterst tzen JUnit ist ein Unittest Tool das haupts chlich dem Testen von isolierten Programmeinheiten wie einzelne Methoden Klassen oder Modulen dient Es setzt an den ffentlichen Schnittstellen dieser Einheiten an Trotzdem ist es ein White Box Testverfahren weil es die M glichkeit und auch die Bereitschaft voraussetzt bestehenden Code zu ndern insbesondere um Schnittstellen zu ndern bzw diese berhaupt erst einzuf hren um eine bestimmte Testbarkeit zu erreichen Capture Replay Werkzeuge unterst tzen nur das Black Box Testverfahren welches die verborgene Funktionalit t der getesteten Anwendung gar nicht bzw indirekt testen kann White Box Test werden von den gleichen Programmierern entwickelt wie das zu testende System selbst Der den Test entwickelnde Programmierer hat also K
112. r gemeinsamen Berichtsoberfl che gesammelt Beide Produkte lassen sich vollst ndig in andere Mercury Testl sungen integrieren z B LoadRunner f r Lasttests und TestDirector f r ein globales Testmanagement F r X Window basierte Systeme bietet Mercury das Produkt XRunner mit weitestgehend hnlichen Features an 41 Testtools f r Java Swing Benutzeroberfl chen SilkTest von Seague SilkTest ist ein klassisches Funktions Regressions und GUI Test Tool mit einer benutzerfreundlichen Umgebung Seague bietet mit diesem Produkt eine Palette von Features an die es dem Benutzer erm glichen bei der Softwaretestautomatisierungsumsetzung in k rzester Zeit produktive Ergebnisse zu erzielen und zu unterst tzen Diese Features enthalten Ablaufelemente f r die Testentwicklung und Anpassung die Testplanung und Management direkten Datenbankzugriff und Validation die flexible und robuste 4Test Scripting Sprache ein eingebautes Wiederherstellungssystem f r die unbeaufsichtigten Tests und die F higkeit ber mehrere Plattformen Browser und Technologien mit einem Satz von Scripts zu testen Zusammen mit WinRunner und JUnit geh rt es zu den meist genutzten Testausf hrungstools f r Tesmanagement Programmen in der Industrie SilkTest erm glicht das Erstellen automatischer Testabl ufe sowohl f r Programme mit grafischen Benutzerschnittstellen als auch f r Aufrufe auf der Kommandozeile Das Testen von Datenbank Schnittstellen und API
113. r und damit gr er werdenden Testsuiten erzeugen anfangs zus tzlich noch h here Maschinenkosten Es zeigt sich aber dass Testautomatisierung einerseits durch die mehrfache Ausf hrungen der Tests mit vielen der heutigen Ans tze eine Investition in die Zukunft darstellt und die Kosten durch die sp tere Reduzierung des Personalaufwands und ber den Lebenszyklus der Software sich amortisieren Cem Kaner beschreibt zwei Ans tze der Automatisierung von Systemtests die sich in Projekten als erfolgsversprechend herausgestellt haben Cem97 e data driven test design e framework based test design 19 Testtools f r Java Swing Benutzeroberfl chen Beim data driven test design werden Tabellen erstellt die in jeder Zeile eine Kombination von Benutzereingaben und daraus resultierenden zu erwartenden Ergebnissen zusammenfassen Jede einzelne Zeile repr sentiert einen Testfall Um die Tests automatisch ablaufen lassen zu k nnen ben tigt man ein Testtreiber Programm das die erstellten Tabellen einlesen und interpretieren kann Der Testtreiber steuert die zu testende Anwendung entsprechend der Eintragungen in den Tabellen Der Vorteil dieses Ansatzes besteht darin dass die Tabellen leicht zu erstellen sind und somit mit geringem Zeitaufwand viele Tests entstehen k nnen Au erdem sind zum Erstellen der Tabellen keine Programmierkenntnisse erforderlich jedoch muss im Gegenzug ein relativ aufwendiger Testtreiber programmiert w
114. raktionen auf dem Betriebssystem nach Obwohl er langsamer ist als der JFCTestHelper deckt er bei den Tests die Schnittstelle zwischen Betriebssystem und Anwendung ab Das zu testende Fenster kann in der setUp Methode erzeugt werden wird vor jeder Testmethode ausgef hrt protected void setUp throws Exception super setUp setzen des JFCTestHelper setHelper new JFCTestHelper AnwenderDialog loginScreen new LoginScreen loginScreen setVisible true In der tearDown Methode entfernt nach einem Test alle brig gebliebenen Fenster und Dialoge vom Desktop um somit einen konsistenten Zustand f r die anderen nachfolgenden Tests zu gew hrleisten wird nach jeder Testmethode ausgef hrt protected void tearDown throws Exception loginScreen null TestHelper cleanUp this super tearDown 50 Testtools f r Java Swing Oberfl chen Testf lle erstellen Jeder Test wird in dem Testfall durch eine eigene Methode geschrieben die anhand ihrer Signatur erkannt wird Methoden die mit dem Pr fix test beginnen den R ckgabewert void und eine leere Parameterliste haben werden als Tests ausgef hrt Testmethode public void testUserAndPasswordEmpty Ein wichtiger Bestandteil von JFCUnit sind die sogenannten Finder deren Aufgabe ist einzelne GUI Komponenten innerhalb eines Containers aufzufinden Die Komponenten k nnen anhand ihres Namens
115. reduziert Testeinrichtungen profitieren von verk rzten Testzeiten und typischerweise automatisierenden Test Tools So lassen sich Test Scripts fortlaufend mit den Objekten abgleichen die in der neuen Version einer Software ver ndert wurden Dar ber hinaus identifiziert Rationals Adaptive Test Playback Technologie selbstt tig Zielobjekte in java und webbasierten Anwendungen automatisch und ohne eine zeitaufw ndige neue Zuordnung der Objekte Damit steigt die Zuverl ssigkeit der 37 Testtools f r Java Swing Benutzeroberfl chen Tests Mit den Java L sungen von Rational k nnen Entwickler Runtime Fehler Speicherlecks und Performance Abf lle erkennen und beseitigen Rational s Entwicklungs Tools decken den gesamten Software Entwicklungszyklus ab vom Requirement Management Software Configuration Management und Test Management bis zur Steuerung des Entwicklungsprozesses womit die Kommunikation in den Projekt Teams erleichtert wird Vielf ltige Trainings und Services sowie eine webbasierte Java Entwicklungs Community erg nzen die umfassenden Softwareentwicklungsl sungen von Rational F r einen raschen Start sowie zur Gew hrleistung einer optimalen Produktivit t mit IBM Rational Produkten bietet IBM verschiedene Serviceoptionen die u a technische Unterst tzung professionelle Services sowie von Ausbildern geleitetes und webbasiertes Training anbieten WinRunner Quicktest Professional von Mercury Zu Mercury
116. rf bei der Verarbeitung oder deren Ressourcenverbrauch e artbarkeit ist ein Ma das durch den Aufwand bestimmt ist der betrieben werden muss um die Software zu verbessern Fehler aufzufinden und zu korrigieren Diese Kategorie umfasst Unterpunkte wie die Testbarkeit einer Software deren Analysierbarkeit und deren Ver nderbarkeit e Portierbarkeit ist die F higkeit einer Software in unterschiedlichsten Anwendungsumgebungen zu funktionieren Alle diese Kriterien sind durch subjektive Einfl sse teilweise nicht messbar Zum Beispiel kann die Benutzerfreundlichkeit von verschiedenen Nutzergruppen unterschiedlich beurteilt werden Zumindest gibt es dadurch die M glichkeit diese Eigenschaften durch Test eingeschr nkt zu bestimmen Die Motivation und das Ziel jeder industriellen Software Entwicklung muss es sein ein m glichst fehlerfreies Software Produkt zu erstellen und dadurch die Qualit t zu verbessern Es gibt verschiedene Auffassungen von Qualit t Jeder Ansatz spiegelt sich in verschiedenen Sichten auf das Produkt wider Muen98 10 Testtools f r Java Swing Oberfl chen e der transzendente Ansatz e der produktbezogene Ansatz Entwicklung e der benutzerbezogene Ansatz Marketing Vertrieb e der prozessbezogene Ansatz Fertigung e der Kosten Nutzen bezogene Ansatz Finanzen Die Ziele der Softwareentwicklung sind haupts chlich durch wirtschaftliche Interessen definiert Diese sind die schnelle Erstel
117. rnreaktors bei dem die zur fortgesetzten Kernspaltung notwendige Kettenreaktion nicht mehr selbst erlischt bedrohlich Pr fen die Antwortzeiten unter Hochlast und berlastungsverhalten sind selbst nicht an der Oberfl che sichtbar legen fest wie die Komponenten eines Container angeordnet werden Model View Control Konzept betriebssystemeigene Untersuchung von Zeitverhalten und Ressourcen Verbrauch Wiederholte Kontrolle nach kleinen nderungen alter Funktionen soll sicherstellen ob die bekannten Fehler wirklich behoben wurden und ob durch die Fehlerbehebung keine neuen Fehler hinzugekommen sind 77 Testtools f r Java Swing Benutzeroberfl chen Robustheitstest Swing SUT XML Test auf Fehlertoleranz Wiederherstellbarkeit des Normalzustands nach Fehlern und Reife des Systems im Dauerbetrieb Als 1997 in San Francisco auf der JavaOne die neuen Komponenten vorgestellt wurden entschied sich Georges Saab ein Mitglied des JFC Teams f r Musik parallel zur Pr sentation Dies war gerade Swing Musik denn der Entwickler glaubte dass sie wieder in Mode k me So wurden auch die neuen grafischen Elemente im Paket mit dem Namen Swing abgelegt Obwohl der Name offiziell dem K rzel JFC weichen musste war er doch so popul r dass er weiter bestehen blieb System Under Test Extended Markup Language 78
118. s Functional Testing geh ren die eigenst ndigen Funktionstestprodukte WinRunner und Quickstep Professional Es ist nach Unternehmensangaben die umfassendste L sung f r Funktionstest und Regressionstestautomatisierung der Branche mit Unterst tzung f r nahezu alle Softwareapplikationen und Umgebungen WinRunner Anders als manch andere Produkte besteht es nur aus einer Applikation f r die gesamte Testerstellung und durchf hrung und kann auch in das Testmanagement Werkzeug TestDirector von Mercury integriert werden WinRunner kann auf verschiedenen Windows Versionen eingesetzt werden Zus tzlich zum Pr fen von Programmen unter Windows bringt WinRunner erweiterte Unterst tzung f r die Kontrolle von Web Visual Basic und Powerbuilder Applikationen mit Die Erstellung eines Testscripts beginnt bei diesem Produkt mit dem weitgehend automatischen Anlegen einer sogenannten GUI Map die f r die Umsetzung von Laufzeitkennung auf logische Bezeichner zust ndig ist Sofern die Entwickler des Testobjektes den internen Bezeichner eines GUI Elements von einer Version zur n chsten ndern f hrt das beim n chsten Ablauf der Testautomatisierung zu einem Automation Error Bei Winrunner werden die Bezeichner welche in der Testautomatisierung verwendet werden von den Bezeichnern welche der Entwickler verwendet getrennt und dieses Mapping an einer zentralen Stelle der sogenannten GUI Map verwaltet Als Ergebnis is
119. sher auch weiterhin keine gro en Ambitionen das AWT weiter zu entwickeln obwohl es bei Ger ten mit wenig Speicher noch lange nicht abgeschrieben ist IBM hat reagiert darauf und entwickelte eine Alternative das SWT Standard Widget Toolkit Es erfreut sich mittlerweile gr erer Beliebtheit und ist auch Basis der Entwicklungsumgebung Eclipse 27 Testtools f r Java Swing Benutzeroberfl chen 3 GUI Testtools Ohne Unterst tzung von Tools m ssen die aufwendigen GUI Tests von einer Person m hsam manuell durchgef hrt werden Die vorgegebene Aktionen werden anhand eines Testplans ausgef hrt und die Reaktion der Anwendung visuell berpr ft Diese aufwendige Prozedur kann mit Hilfe eines GUI Testtools automatisiert werden Bei grafischen Benutzungsoberfl chen gibt es eine beinahe unendliche Vielfalt von Befehlskombinationen und Reihenfolgen Die Erwartungen an die Testautomatisierung von Seiten einiger Manager sind sehr hoch und teilweise nicht umsetzbar Sie erhoffen sich eine schnelle Kostenreduktion Qualit tsverbesserung und Verringerung des Personal und Zeitaufwands Es ist eine Fehlannahme das durch effektivere Tests bei der Automatisierung sich die Kosten sofort reduzieren Eine Erstellung allgemeiner Tests ist sogar kostenintensiver Bei Testf llen auf GUI Ebene rechnet man bei der Erstellung mit einem 3 bis 10 facheren Aufwand Sind spezielle GUI Elemente enthalten so kann dieser Faktor auf das 30 fache steigen Die
120. sowie spezialisierte Anwendungsbeispiele f r spezifische Objekte der Entwicklungsumgebung zur Verf gung Robot erleichtert die Umsetzung von manuellen Tests in automatische Tests Regressionstests mit IBM Rational Robot stellen einen geeigneten fr hen Schritt in der Automatisierung dar weil das Tool laut einiger Anwender leicht zu handhaben ist und Tester bei der Untersuchung von Automatisierungsprozessen w hrend des Ablaufs unterst tzt Im Vergleich zu den anderen Produkten f llt vor allem die Integration in die Rational Suite und damit die Ausrichtung auf einen gesamtheitlichen Software Entwicklungsprozess positiv auf Rational bietet allerdings kein Name Mapping an worunter die Lesbarkeit der Skripte leidet Unterst tzende Umgebung Operating Systems Windows 98 Windows NT Windows 2000 und Windows XP Browser Netscape Navigator Internet Explorer Supports multiple languages Java HTML and DHTML Visual Basic Visual C ActiveX XML Supports multiple IDEs Microsoft VisualStudio NET Oracle Developer 2000 Delphi PeopleSoft PowerBuilder Quellen http www 306 ibm com software info ecatalog de_DE products K108274U58759163 html http www 306 ibm com software awdtools tester robot Stand 12 2004 Functional Tester for Java and Web Der Functional Tester for Java and Web ist ein Eclipse basiertes Tool f r die Automation funktionaler Tests von Java und Webanwendungen Es wird die Bedienung der Anwendungsoberfl che aufg
121. ssen werden Daten eingeben getHelper sendString new StringEventData this passwordField startme Button enable assertTrue ExitButton is not enable exitButton isEnabled true 52 Testtools f r Java Swing Oberfl chen Nachricht Dialog finden Anmeldung erfolgreich getHelper enterClickAndLeave new MouseEventData this enterButton DialogFinder dFinder new DialogFinder 2 Sekunden warten dFinder setWait 2 List showingDialogs dFinder findAll assertEquals Number of dialogs showing is wrong 1 showingDialogs size dialog JDialog showingDialogs get 0 assertEquals Wrong dialog showing up Nachricht dialog getTitle Dialog e amp Fenster schlie en TestHelper disposeWindow dialog this Um Mausaktionen ausf hren zu k nnen stellt die JFCTestHelper Klasse mehrere MouseEventData Ausf hrungen zur Verf gung Diese enth lt Methoden die unterschiedlich parametrisiert werden k nnen und somit viele verschiedene Aktionen erm glichen Beim Aufruf der Methode enterClickAndleave wird entsprechend der gew nschten Aktion ein parametrisierter MouseEventData mitgegeben In diesem Fall ist dies ein einfacher Klick auf den enterButton 2 Parameter Als erster Parameter wird immer die aktuelle Testklasse mit bergeben public void enterClickAndleave AbstractMouseEventData evtData public void enterDragAndLeave
122. steigerung Zur Kostenreduzierung und Beschleunigung der Softwareentwicklung werden vorwiegend Softwaremodule wiederverwendet Somit wird bereits bew hrte Software nicht mehr neu programmiert und kann mit dieser Baukastenmethode leichter aktualisiert werden Die Produktentwicklung entsteht seit der verst rkten Globalisierung nicht mehr am Reif brett in einem Hinterhof sondern zum Teil weltweit in verschiedenen Zeitzonen unter v llig verschiedenen Voraussetzungen Daf r sprechen einerseits wirtschaftliche Interessen andererseits m chte der Hersteller direkten Kontakt zu seinen Kunden haben Eine direkte Folge des daraus resultierenden Anwachsens von Entwicklungsproblemen sind Fehler in diesen Softwaresystemen Software werden in relativ unkritischen Anwendungen im privaten bis hin zu lebenskritischen Steuerungssystemen eingesetzt Entsprechend unterschiedlich k nnen die Folgen von Softwarefehler ausfallen Hierzu einige Beispiele Fehlstart Ariane 5 Es h tte eine beeindruckende Antwort auf die Herausforderung durch neue Konkurrenten auf dem Markt f r Satellitenstarts werden sollen Der Jungfernflug der Ariane 5 im Juni 1996 endete in einem spektakul ren Feuerwerk als die Rakete aufgrund eines Softwarefehlers unkontrollierbar Richtung Erde trudelte und nur kurz nach dem Start mitsamt ihrer Nutzlast den vier europ ischen Cluster Forschungssatelliten gesprengt werden musste Die Sprengung verursachte einen wirtschaftlichen Schaden von ca
123. t das hei t ob sie spezifikationskonform funktionieren F r diese Art des Testens bietet sich ein Whitebox Test an um die Funktionsweise der Methoden zu verifizieren Weitere Kontrollmethoden die nicht zum Testen im eigentlichen Sinne gez hlt werden wie das Review sind ebenfalls f r diese Testphase geeignet Verifikation der Module Eine Komponente ist eine Klasse oder eine Gruppe von Klassen die interagieren und eine gemeinsame Aufgabe erf llen Bei einem Komponententest wird eine Komponente als Einheit getestet H ufig kommt zu diesem Zweck ein Blackbox Test zum Einsatz Verifikation der Komponente Der Integrationstest dient der Kontrolle des Zusammenspiels von Komponenten Es wird also die Kollaboration der Klassen bzw Komponenten untersucht Hierbei werden Testf lle gew hlt an denen das Verhalten der Testlinge untereinander beobachtet werden kann Der Integrationstest ist ein wichtiger Bestandteil von Tests komplexer Anwendung Kombinierte einzeln bereits getestete Teile k nnen somit als Einheit betrachtet werden Validation bzw Verifikation zwischen den Komponenten Der Systemtest ist eine Pr fung der Software als vollst ndige Einheit Das Programm ist vollst ndig und es werden blicherweise alle Anwendungsf lle als Blackbox Tests gegen die Softwarespezifikation durchgef hrt Dies ist auch h ufig der Abnahmetest des Systems Verifikation bzw Validation des Systems Verifikationstests dienen zum berpr fen de
124. t die Testautomatisierung sehr schnell und leicht an ge nderte Bezeichner von GUI Elementen anzupassen Danach kann man damit beginnen Testscripts aufzuzeichnen und anschlie end im Editor zu bearbeiten Dar ber hinaus k nnen w hrend der Aufzeichnung manuell nderungen im Testscript vorgenommen werden Neben der Aufzeichnung von Eingaben k nnen Kontrollpunkte gesetzt werden bei welcher definierte Ergebnisse mit den tats chlichen Ergebnissen verglichen werden Diese Kontrollpunkte m ssen jedoch nicht in den Quellcode eingef gt werden sondern werden von WinRunner verwaltet Es gibt verschiedene Typen von Checkpoints Text GUI Bitmap URL Links 38 Testtools f r Java Swing Oberfl chen und Datenbank Mit einem Bitmap Checkpoint kann verifiziert werden dass ein Bild z B das Firmenlogo an einer bestimmten Stelle erscheint Bei fehlgeschlagenen Kontrollpunkten werden Screenshots f r die weitere Auswertung automatisch aufgenommen Die Speicherung der Testf lle erfolgt in einem propriet ren Format das zur Erstellung von Testf llen entwickelt wurde und TSL Test Scripting Language genannt wird Neben dem Erstellen und Abspielen von Tests kann WinRunner Datenbank Werte verifizieren um zu berpr fen dass eine Datentransaktion tats chlich stattgefunden hat Nach dem Ausf hren der Tests werden die Ergebnisse bersichtlich dargestellt und farblich unterschiedlich gekennzeichnet Um Tests mit unterschiedlichen Eingabedaten aus
125. t kombatibler Tests auf Swing basierender Komponenten Sie ist unter der GNU Lesser General Public License LGPL ber die Projekt Homepage jfc04 frei verf gbar Sie bietet im wesentlichen Unterst tzung beim automatisierten Testen auf Swing basierender Komponenten durch weitere Methoden zum 45 Testtools f r Java Swing Benutzeroberfl chen e Aufsp ren von java awt Window Instanzen z B Frames und Dialoge die vom zu testenden Code ge ffnet wurden e Lokalisieren von Swing Komponenten im Komponentenbaum eines Fensters anhand des Typs des Namens oder beliebiger anderer Eigenschaften e Abschicken gezielter Events im AWT Event Handling Thread z B das Klicken auf einen Button oder die Auswahl eines JTree Teilbaumes e Thread sichere Testen und Abfragen von Komponenten Seit der Version 2 0 stellt JFCUnit XML Recording und Playback zur Verf gung und erm glicht es dem Benutzern schnelle und automatische Testscripte zu erzeugen und editieren Die XML APIs sind OpenSource und erlauben es dem Entwickler dort eigene XML Tag Handlers zu definieren JFCUnit hakt bei der Simulation von Events in die Event Queue von Swing oder in die des Betriebssystems ein So k nnen Komponenten in Swing Oberfl chen lokalisiert und explizit f r diese Events ausgel st werden Ein Testprogramm simuliert damit die Bedienung durch den Benutzer nach und pr ft erwartete Reaktionen Gleichzeitig k nnen auch Events aufgenommen und gespeichert werde
126. t object ist eine Objektreferenz null assertNotNull Object object ist eine Objektreferenz nicht null assertSame Object expected Object actual zwei Objekte gleiche Referenzen assertNotSame Object expected Object actual zwei Objekte nicht gleiche Referenzen fail Testfall einfach fehlschl gt Die berpr fung des Anfangszustandes der Maske kann durch die assert Methoden erfolgen Das Name und Textfeld soll editierbar und leer sein Anfangszustand pr fen Textfeld editierbar assertTrue Username field is not editable userNameField isEditable true Textfelder leer assertEquals Username field is not empty userNameField getText assertTrue Password field is not empty passwordField getText length 0 Im n chsten Testschritt werden Benutzername und Passwort in die entsprechenden Textfelder ber den JFCTestHelper eingegeben Der Anmelde Button sollte enable sein und ausgel st werden Sobald die Komponenten alle gefunden und berpr ft wurden wird ein Maus Klick mit der enterClickAndLeave Methode simuliert Das zu erwartende Ergebnis ist die Anzeige eines Nachricht Dialogs Mit dem DialogFinder wird berpr ft wie viele Dialoge sichtbar sind und ob der erwartete Nachrichten Dialog angezeigt wird Zu guter letzt wird die dispose Metode aufgerufen damit im Falle eines unterbrochenen Test oder ge ffneter Dialoge alle Fenster und Dialoge geschlo
127. te bernommen wurden nicht ge ndert und dass keine Knoten entfernt oder eingef gt werden k nnen Knoten k nnen aber mit einer Bemerkung versehen werden z B um den Grund f r einen Fehler zu dokumentieren Reportgenerierung Im Qualit tssicherungsprozess ist es wichtig Testergebnisse zu dokumentieren und auch zu archivieren Das Protokoll ist zwar ein hervorragendes Werkzeug zum Aufsp ren von Fehlerursachen nach einem Testlauf als Zusammenfassung bzw Report jedoch ungeeignet Andererseits enth lt ein Protokoll nat rlich alle relevanten Informationen ber einen Testlauf so dass sich das Erstellen eines Reports durch das Zusammenfassen und Formatieren dieser Informationen bewerkstelligen l sst qftestJUI bietet die M glichkeit aus Protokollen Testreports zu generieren qftestJUl bietet zwei Arten von Reports einen einfachen HTML Report und einen XML Report Die XML Form kann der Anwender als Grundlage verwenden und sie mit Hilfe selbst geschriebener XSLT Stylesheets in einen beliebigen eigenen Report transformieren Die 65 Testtools f r Java Swing Benutzeroberfl chen Ausgabeform l sst sich durch das entsprechende Auswahlfeld bestimmen Der Auswahldialog enth lt noch weitere Felder um Einfluss auf Inhalt und Aussehen des Reports zu nehmen gftestJUI Testergebnisse Mozilla Firefox loj x Datei Bearbeiten Ansicht Gehe Lesezeichen Extras Hilfe lt a gt S KS yi aA ii B file C Test Loginscreen htm
128. teile Die Auswahl des richtigen Werkzeuge ist die Grundlage f r den Erfolg der Testautomatisierung Der Prozess der Werkzeug Auswahl muss mit gro er Umsicht erfolgen Testwerkzeuge k nnen in jeder Phase des Testprozesses zum Einsatz kommen Kommerzielle Testwerkzeuge f r beinahe jede Testaktivit t sind wie im Kapitel 4 ersichtlich am Markt erh ltlich Der Aufwand zur Automatisierung hat sich besonders bew hrt und bezahlt gemacht bei der Durchf hrung wiederholender Aufgaben und deren anschlie enden Auswertung Dies f hrt zu h heren Zuverl ssigkeit der Testaktivit t und zu h herer Zufriedenheit im Testteam was wiederum zu h herer Produktivit t f hrt Es l sst sich dar ber hinaus sicherstellen dass die ests regelm ig vollst ndig konsequent und regelm ig durchgef hrt werden Fehler k nnen fr hzeitig erkannt und beseitigt werden Die Testautomatisierung ist vor allem bei den heutigen Testmethoden abh ngig von der Flexibilit t Wartbarkeit und der Lebensdauer des zu testenden Produkt Der Kauf eines kommerziellen Werkzeugs mit einem gro em Umfang von Funktionalit t ist nicht billig F r kleinere Anwendungen oder Projekte sind die kosteng nstigen und einfach zu Hand habende OpenSource Testtools geeignet Die Gr nde zur Automatisierung hier nochmals kurz zusammengefasst e Herabsetzung des manuellen Aufwand e Herabsetzen der Testkosten e Erweiterung der Test berdeckung e Reproduzierbarkeit und e
129. ti sattelfeste Testplanung stehen Bei der Kar Testspezifikation Testumgebung Automatisierung von Tests ist dies ar oi Testdaten besonders wichtig da ansonsten durch Testreview Protokoll den im Vergleich zum manuellen Testen stark erh hten Testdurchsatz POP es D as im Sumpf der Testergebnisse versinken en K benenung k nnen Konkret bedeutet dies dass Testauswertung y Testdokumentation bereits zu Beginn der Testaktivit ten der gt Testkontrolle m Testprotokoll Grundstein f r eine erfolgreiche und DE effiziente Auswertung der Testergebnisse Freigabe des Testlings freigegebener Testling gelegt werden muss Es macht keinen Sinn Zeit durch die Automatisierung I E von Tests einzusparen um diese dann bei der Testauswertung wieder zu verlieren Aus diesem Grunde ist die gekonnte Verkn pfung von Anforderungsmanagement mit der Automatisierung von Test extrem sinnvoll und erfolgsversprechend Ein grober Testplan ist ein organisatorischer Rahmen der den zeitlichen Ablauf beispielsweise auf der Basis der Meilensteine eines Projektes und die administrativen Verfahren f r die Test festlegt F r die Verfeinerung des Testplans ist die Testspezifikation notwendig Sie h lt die Testmodelle Teststrategie Testmethodik Testf lle und Testdaten schriftlich fest In der Testspezifikation wird auch die Reihenfolge der Implementierung von Modulen u
130. truktur einer Testsuite ist fest definiert Der Wurzel Testknoten enth lt eine beliebige Anzahl von Tests und Sequenzen Sequenzen geben einer Testsuite die Struktur und bestimmen den Ablauf eines Tests In ihrer Grundform sind sie Container die ihre Childknoten einen nach dem anderen ausf hren Sie k nnen dabei Werte f r Variablen festlegen die w hrend der Ausf hrung der Children G ltigkeit besitzen Ein Test ist eine besondere Sequenz die es erlaubt vor und nach der Ausf hrung jedes ihrer Childknoten spezielle Ma nahmen zu treffen um einen gesicherten Ausgangszustand herzustellen Im Prozeduren Knoten k nnen wieder verwertbare Sequenzen in Prozeduren organisiert werden welche mittels eines Prozeduraufrufs von einer beliebigen anderen Stelle aufgerufen werden k nnen Der Extrasequenzen Knoten ist so eine Art Spielwiese zum Ausprobieren und Zusammenstellen von Tests In dieser Zwischenablage k nnen beliebig viele Knoten unbehindert von den normalen Einschr nkungen abgelegt werden Im Fenster und Komponenten Knoten sind alle aufgenommenen Fenster und Komponenten des testenden Programms System Under Test SUT mit ihren Eigenschaften enthalten 60 Testtools f r Java Swing Oberfl chen Eine Testsuite kann aus mehr als 40 verschiedenen Arten von Knoten bestehen Jeder Knoten hat bestimmte Eigenschaften darunter seine Attribute die qftestJUI in der Detailansicht im rechten Bereich des Hauptfensters darstellt
131. tzers Der produktorientierte Ansatz des Testens der einem Funktionstest gleichkommt stellt die Qualit t der Software aus der Sicht des Nutzers sicher In der Software w re dies ein Test nach den Anwendungsf llen der Software der auch als Abnahmetest betrachtet werden kann Der prozessorientierte Ansatz zeichnet sich dagegen durch den Entwicklungsprozess begleitende Kontrollen aus Die Qualit t wird vom Entwickler w hrend seiner Arbeit durch fortlaufende Tests sichergestellt Dabei testet er die internen Abl ufe der Software deren Korrektheit auch die Fehlerfreiheit der Funktionen der Software best tigen Ginz00 Qualit t kann nicht im nachhinein in ein Produkt hineingepr ft werden Daher ist es unerl sslich die Erzeugung von Qualit t durch konstruktive Testma nahmen zu f rdern F r eine stabile und qualitativ hochwertige Software gelten auch heute noch die Regeln die das amerikanische Magazin Byte bereits 1995 formulierte LEO5 e K mpfe f r ein stabiles Design e Teile die Aufgaben sauber auf e Vermeide Abk rzungen e Baue reichlich Absicherungen ein e Nutze die Werkzeuge vern nftig e Verlasse Dich auf weniger Entwickler e K mpfe stetig gegen die Zunahme von Funktionen e Nutze formale Methoden wo es Sinn macht e Starte mit dem Testen wenn Du die erste Zeile Code schreibst 14 Testtools f r Java Swing Oberfl chen Testaktivit ten Vor dem Beginn jedes Tests sollte eine AH gi Test ifika
132. um Erstellen eines Tests zur Verf gung Entweder wird der Test innerhalb eines JUnit Testfalls direkt im Code eingebunden Test First Entwicklung oder ber das Erstellen von Skripten mittels des Skripteditors Quelle http abbot sourceforge net Stand 12 2004 Welches ist das beste Produkt Der anf ngliche Aufwand Testwerkzeuge einzuf hren ist auf Grund des gro en Funktionsumfangs der Produkte relativ hoch Die Einarbeitungszeit variiert stark vom Umfang der beiliegenden Dokumentation der einzelnen Produkte Generell sollte man vor dem Erwerb eines kommerziellen Testwerkzeugs mit einer Evalierungsversion die grunds tzliche Eignung des Produktes f r den gew nschten Einsatz ausprobieren Da die Software Entwicklung unterschiedliche Anforderungen stellt ist es sehr schwierig objektiv ein bestes Produkt zu bestimmen Eine weiterer Aspekt bei der Auswahl des geeigneten Testtool ist die Kostenrechnung Ein kommerzielles GUI Testtool kostet leicht einen vierstelligen Euro Betrag pro Lizenz Bei nderungen sind mehr oder weniger aufw ndige Anpassungen an den Testscripten erforderlich auch das verursacht Kosten Dann sollte man noch ber cksichtigen dass nicht alle Testf lle automatisiert werden k nnen Man muss nach wie vor ca 30 50 des Tests manuell durchf hren Es ist also alles andere als einfach automatisches Testen einzuf hren und dennoch Kosten zu sparen Einige neu erschienene Handb cher f r Testautomation erl
133. ung des Testf lle vereinfachen Es gibt weitere Tags zum Pr fen von erwarteten Werten Daneben existieren Tags die es erm glichen die Durchf hrung von einzelnen Testschritten von Bedingungen abh ngig zu machen oder aber Schleifen bei der Durchf hrung einzubauen Damit k nnen Tabellen und Listen zeilenweise ausgelesen werden Eine besondere gro e Rolle spielen das lt suite gt und das lt test gt Tag Sie veranlassen den dynamischen Aufbau der TestSuite mit den TestCases Hier eine kleine Auflistung von g ngigen Tags und ihren TagHandlers Mithilfe des lt procedure gt Tags k nnen Testabl ufe definiert werden und mehrfach verwendet werden Wenn ein bestimmter Ablauf wiederholt gebraucht wird wie z B das Ausf llen der Felder zum Anlegen eines Datensatzes kann er in einer lt procedure gt gekapselt werden An den Stellen an den der Ablauf verwendet werden soll kann die lt procedure gt dann mit call aufgerufen werden Es besteht auch die M glichkeit Parameter zu bergeben die dann in der lt procedure gt verwendet werden k nnen Mit dem lt taghanderls gt Tag k nnen neue Tags registriert oder bereits vorhandene berlagert werden Der Name des Tags und die Tag Handler Klasse werden angegeben und mit add wird das entsprechende Tag registriert Wenn das Tag bereits vorhanden ist wird es schlie lich berlagert Mit remove kann ein Tag dann wieder entfernt werden lt suite name XMLTestSuite gt lt test name L
134. ungen SE Winter1998 SW Qualit C3 A4t 4 pdf Myers79 Glenford J Myers Methodisches Testen von Programmen Oldenbourg 1979 Pol100 Martin Pol Tim Koomen Andreas Spillner Management und Optimierung des Testprozesses ein praktischer Leitfaden f r Testen von Software mit TPI und TMap dpunkt verlag 2000 Post92 R M Poston M P Sexton Evaluating and selecting testing tools IEEE Software Volume 9 Issue 3 May 1992 Pages 33 42 QBench Homepage QBench Stand der Technik http www qbench de QBench CMS projektbeschreibung part2_de Ri97 E H Riedemann Testmethoden f r sequentielle und nebenl ufige Software Systeme Teubner Verlag Stuttgart 1997 Stein02 Michael Stein 14 12 2002 http www raumfahrer net raumfahrt raketen ariane5_fehlstart shtml Stein97 Uwe Steinm ller Let it swing www heise de ix artikel 1997 10 132 SWO2 H M Sneed M Winter Testen objekorientierter Software Hanser Verlag 2002 Spg00 Elfriede Dustin Jeff Rashka John Paul Software automatisch testen Verfahren Handhabung und Leistung Springer 2000 TSmith http de techsmith com products morae usability asp Ze02 A Zeller Software Test Strukturtest Universit t des Saarlandes Softwaretechnik II SS 2002 http www st cs uni sb de edu se2 Weitere Quellen wurden von mir beim Erstellen dieser Studienarbeit verwendet Ernest Wallm ller Software Qualit tssicherung in der Praxis Carl Hanser Verlag 199
135. unter Java 2 notwendig Das Ausf hren geschieht ber folgenden Aufruf java junit textui Testrunner Jm jfcunit LoginScreenTest Benutzer von Eclipse m ssen nur den Run Button Hunit 23 gt Package Explorer Hierarchy a Nach 11 968 Sekunden fertig gestellt b T Q kB dr cken Der Testrunner vom Junit compiliert und Wiederholungen 1 1 El Fehler 0 El St rungen 1 startet den Test Junit stellt bei der Ausf hrung eine A konsolenbasierte oder eine grafische Ausgabe zur amp st rungen Efetierarchie m ba LoginScreenTest Verf gung Die grafische Variante hat sich dabei mehr E durchgesetzt Der gr ne Balken stellt den Fortschritt Tracest rung 3 EP beim erfolgreichen Testen dar Wenn er sich rot f rbt 30 junit Framework ComparisonFailure Wrong dialog showing up expected lt at junit framework Assert assertEquals Assert java 81 ist mindestens ein Test fehlgeschlagen Der Test wird at LoginscreenTest testUser ndPasswordEmpty LoginscreenTest java 81 i at sun reflect NativeMethodAccessorImpl invokeD Native Method sofort unterbrochen wenn eine Bedingung nicht atsun reflect NativeMethodAccessorImpl invoke Unknown Source e i y gt F at sun reflect DelegatingMethodAccessorImpl invoke Unknown Source erfullt ist In dem unteren Feld Failure Trace wird at java lang reflect Method invoke Unknown Source p F at junit extensions jfcunit JFCTestCase 5 run JF
136. utern einige Beispiele f r diese Kostenrechnungen F r kleinere GUI Anwendungen oder Projekte sind die kosteng nstigen und einfach zu Hand habende OpenSource GUI Testtools f r Java Oberfl chen geeignet Die bersicht zeigt dass einige der beschriebenen Werkzeuge gro teils dieselben oder hnliche Funktionen bieten Leider gibt es keine Vereinheitlichung der Testscripts und auch keine Konvertierungsm glichkeiten was einen Austausch von Testf llen oder einen Umstieg auf ein anderes Werkzeug aufwendig macht Die Unterschiede zwischen den Produkten sind lediglich in Details zu finden die jedoch hier nicht alle angesprochen werden k nnen Eine Entscheidung f r ein Testwerkzeug kann demnach nur bei Betrachtung dieser Details im Hinblick auf eine spezielle Anwendung getroffen werden Auch eine m gliche Integration in bereits vorhandene oftware kann dabei eine ausschlaggebende Rolle spielen F r detaillierte Informationen zu den S einzelnen Produkten sei auf die Homepage des jeweiligen Herstellers verwiesen Im Literaturverzeichnis sind einige Links aufgelistet die eine weitere Auswahl von Testwerkzeugen anbieten 47 Testtools f r Java Swing Benutzeroberfl chen 5 Evaluation der Testwerkzeuge Bei der Auswahl von Testwerkzeugen muss man mit Bedacht ausw hlen Welches Werkzeug erf llt die vorgegeben Kriterien der Testanforderungen Der Prozess der Auswahl selbst ist eine sehr zeitaufwendige Arbeit In diesem Kapitel werden an
137. wichtigsten Faktor f r den Erfolg eines Projektes ist der Mensch Nach einem fehlerhaften Testdurchlauf erweist sich schon die Fehlersuche als psychologisches Problem Welcher Programmierer sucht schon mit Begeisterung und unter Zeitdruck nach seinen eigenen Fehlern Es wird auch als unbeliebte und oft st rende T tigkeit empfunden Die Akzeptanz der Betroffenen muss bei qualit ts und produktivit tssteigernden Ma nahmen gegeben sein 13 Testtools f r Java Swing Benutzeroberfl chen Ansonsten kommt es im besten Fall zur Ignoranz der Ma nahme und im schlimmsten Fall zur Demotivation und Unzufriedenheit Das neuere Vorgehensverfahren Test Driven Developement beim Extreme Programming ist nur eine bedingte Abhilfe zur schnellen Fehlersuche Die Programmierer m ssen die Testf lle auf jeden Fall festlegen bevor sie zu implementieren beginnen Tests sammeln sich in einer Ablage und werden automatisiert abgearbeitet Jedes Mal wenn ein Programmierer eine neue Funktion in das System einbaut ist er verpflichtet alle bisher vorhandenen Tests wieder ablaufen zu lassen um die Funktionst chtigkeit des Systems zu bewahren Er muss explizit zeigen das seine Modifikation keinen Schaden angerichtet hat Aber auch konventionelle Softwareentwicklungen m ssen weiterhin gr ndlich gepr ft werden bevor die Kunden das Produkt erhalten ct01 Die Qualit t von Software kann aus zwei Sichten betrachtet werden der des Entwicklers und der des Nu
138. zuf hren bietet WinRunner einen DataDriver Wizard Damit kann ein aufgezeichneter Prozess in einen datengesteuerten Test umgewandelt werden Die dazu ben tigten Daten k nnen entweder direkt in ein Spreadsheet eingegeben oder von einer externen Applikation wie z B einer Datenbank eingelesen werden Auch das Einf gen von Funktionen in das Testscript findet ber einen Wizard statt Aus verschiedenen Gruppen von Funktionen kann die Geeignete ausgew hlt werden Mit einem weiteren Wizard k nnen Schnittstellen zu unbekannten non standard Objekten erstellt werden Durch eine weitere Benutzerschnittstelle kann die Ausf hrung von Tests gesteuert werden Die zu testende Applikation wird durch Winrunner automatisch gesteuert Zus tzlich zu Tests auf den bereits beschriebenen Programmiersprachen unterst tzt WinRunner Delphi HTML XML Oracle Forms und weitere 30 Umgebungen Test Scripts von Web Applikationen k nnen auf verschiedenen Web Browsern ausgef hrt werden Das hei t die Testf lle m ssen nicht f r jeden Browser neu aufgezeichnet werden WinRunner bietet Funktionen zum automatischen Neustart der zu testenden Software beim Auftreten eines Fehlers oder eines Absturzes Mercury bietet auch ein Werkzeug f r Belastungstests an in das WinRunner integriert werden kann Mit der neu hinzugef gten Funktion E Mail Benachrichtigung kann bei einem fehlgeschlagenen Test sogar der Tester unterwegs per E Mail an seinen Posteingang Handy oder PDA be

Download Pdf Manuals

image

Related Search

Related Contents

Notas acerca deste manual de instruções Dados pessoais  Mise en oeuvre d`un processus de diagnostic  SIMLOCATE T1    Philips HQ200/50 Data Sheet  Principes et pratique de l`électrophorèse sur gel d`agarose  TRIBUNAL MARÍTIMO  Your First Use of c./NIX •••••••••••••••••••••••••• 8  

Copyright © All rights reserved.
Failed to retrieve file