Mag. Alexander Weichselberger
SEQIS Software Testing Know-how Weitere Termine 10. Juni Agiles Testmanagement am Beispiel SCRUM 16. September Testmanagement mit externen Partnern 21. Oktober Software unter Druck: Erfolgsfaktoren bei Last- und Performancetests
Open Source Testautomationstools in der Projektpraxis Mag. Alexander Vukovic
Agenda Motivation Toolauswahl Web, Ajax & Co Kriterien & Vorauswahl Weinverwaltung WatiN Selenium VNCRobot Empfehlungen 4
Manuelles Regressionstesten ist... Langweilig Langwierig Teuer Ineffizient Nicht wiederholbar Oft nicht reproduzierbar Motivation 5
Ein Tool löst Probleme (meistens)... Motivation oder schafft neue :-) 6
Wir brauchen eine praktische Lösung... Schnell verfügbar Steile Lernkurve Nachhaltig Möglichst ohne Kosten Motivation 7
Open Source Software... Schnell gefunden Gleich heruntergeladen Motivation Verkaufsgespräche entfallen Oft gut dokumentiert Total Cost of Ownership durch entfallene Lizenzgebühren ggf. geringer 8
Wo Licht ist, ist auch Schatten... Motivation Wie groß ist die Community? Wie nachhaltig ist die Weiterentwicklung des Tools? Gibt es auch kommerziellen Support? Besteht die Gefahr der Closed Source Konvertierung? Gibt es Schulungsanbieter? Wieviel Zeit haben wir? Wer berät mich? 9
Um die richtige Lösung zu finden... Toolauswahl Fundierte Toolauswahl Auf Basis allgemeiner und projektspezifischer Kriterien Betrachtung des gesamten Open Source Marktes 10
Toolradar Open Source Testautomation Toolauswahl Suche test automation SourceForge: 7562 Projekte OpenSourceTesting.org: 95 Projekte Suche open source test automation Google: 1.280.000 Hits Wie das richtige Tool finden? 11
Toolauswahl in der Praxis... Toolauswahl 1. Umfeld definieren 2. Kriterien auswählen 3. Vorauswahl treffen 4. Shortlist im Detail evaluieren 5. Praktische Machbarkeit nachweisen 6. Toolreihung 7. Entscheidung 12
Schritt 1: Umfeld definieren Derzeit das häufigste Umfeld Web, Ajax & Co Webapplikationen Volatiles Browserumfeld Dynamischer Content Zwei- oder Dreischichtarchitektur AJAX-Toolkits Flash HTML5 13
Schritt 2: Kriterien auswählen Drei Beispielprojekte... Kriterium Projekt Java Projekt Flash Projekt.Net Applikationsserver Java, Tomcat Safari, Firefox und Internet Explorer Gewünscht Eclipse Java Entwicklungskenntnisse vorhanden GWT als AJAX-Framework Java ASP.NET Flash-Player Nicht notwendig IDE Adobe Keine Entwicklungskenntnisse vorhanden Keine Internet Explorer 6 9 Nicht notwendig MS Visual Studio.Net Entwicklungskenntnisse vorhanden Kein Ajax-Framework Kriterien & Vorauswahl Zielbrowser Unittest-Integration IDE Entwicklungskenntnisse GUI-Framework 14
Schritt 2: Kriterien auswählen Projektübergreifende Kriterien (Auswahl) Allgemein Kriterien & Vorauswahl Testautomation Handling & Usability Architektur Reporting Datadriven-Testing Dokumentation Capturing Community Support Skriptsprache Kommerzieller Support Lizenzmodelle Vordefinierte Funktionen Skript-IDE 15
Schritt 3: Vorauswahl treffen Drei Kandidaten, die für unsere Projekte geeignet sein sollten: Shortlist... Kriterien & Vorauswahl http://watin.sourceforge.net/ VNCRobot (aka T-Plan Robot) http://www.vncrobot.com/ Selenium http://seleniumhq.org/ http://sourceforge.net/projects/tplanrobot/ 16
Vorbereitung für die nächsten Schritte Unsere Applikation Unter Test (AUT) Weinverwaltung 17
Vorbereitung für die nächsten Schritte Demo Testfall manuell Weinverwaltung 18
Schritt 4: Vorauswahl im Detail evaluieren WatiN - Architektur In.Net implementiertes Testskript WatiN 19
Schritt 4: Vorauswahl im Detail evaluieren WatiN Allgemeine Kriterien Usability Handling & Usability Community Dokumentation Community Support WatiN Framework, kein eigenes Tool Architektur Skriptsprache API gut, Tutorial, HowTo, etc. mit Lücken Automationskomfort Kein Forum, kein Wiki Kommerziell Komm. Support Lizenzmodelle Kompatibilität Technisch Browser Support über Donation (Spende) Apache License 2.0 Capture Vordefinierte Funktionen Skript-IDE Betriebssystem Windows Plattformen ab Windows 2000 Legende Vorteil Nachteil Neutral Nur über WatiN-Testrecorder, derzeit nicht produktiv verwendbar (instabil) Corefunktionen für Automation, ganzes.netframework für Erweiterungen MS Visual Studio, keine eigene Methodik Data-Driven Testing IE6, 7, 8 und Firefox 2,3 unter Windows Automation über COM-Objekte Keine, C# und.net-framework Über.Net-Framework und z. B. FitNesse Allgemeine Features Reporting Keines, selbst zu erweitern über.net-framework 20
Schritt 4: Vorauswahl im Detail evaluieren WatiN Projektkriterien WatiN Kriterium Projekt Java Projekt Flash Projekt.Net Applikationsserver Java ASP.NET Entwicklungskenntnisse GUI-Framework Java, Tomcat Safari, Firefox und Internet Explorer Gewünscht Eclipse Java Entwicklungskenntnisse vorhanden GWT als AJAX-Framework Flash-Player Nicht notwendig IDE Adobe Keine Entwicklungskenntnisse vorhanden Keine Internet Explorer 6 9 Nicht notwendig MS Visual Studio.Net Entwicklungskenntnisse vorhanden Kein Ajax-Framework Projekteignung Bedingt geeignet Nicht geeignet Sehr gut geeignet Legende Vorteil Nachteil Neutral Zielbrowser Unittest-Integration IDE 21
Schritt 5: Praktische Machbarkeit nachweisen Demo WatiN WatiN 22
Schritt 4: Vorauswahl im Detail evaluieren Selenium - Architektur Selenium IDE Selenium JavaScript Injection Selenium RC 23
Schritt 4: Vorauswahl im Detail evaluieren Selenium Allgemeine Kriterien Usability Selenium Handling & Usability Technisch Selenium IDE als Firefox-Plugin leicht erlernbar, eigene Scriptsprache Selenese, Selenium RC kompliziert aufzusetzen Community Dokumentation Community Support Skriptsprache Generell sehr ausführliche und aktuelle Dokumentation User Group, Mailingliste, aktive Community, viel Know-How im Web verfübar Kommerziell Komm. Support Lizenzmodelle Div. Firmen bieten Support an Apache License 2.0 Kompatibilität Browser Architektur Automationskomfort Capture Vordefinierte Funktionen Skript-IDE Betriebssystem Windows, OS X, Solaris, Linux Legende Vorteil Nachteil Neutral Selenium IDE bietet komfortable CaptureFunktion, keinen GUI-Spy In Selenese keine zusätzlichen Funktionen wie Filezugriff, etc., Zielsprachen alles möglich Selenium IDE und IDEs der Zielsprachen Methodik Data-Driven Testing IE6, 7, 8, Firefox 2, 3, Safari, Opera Automation über JavaScript Injection Proprietär Selenese, Export in Java, C#, Ruby, Perl, PHP, Python Z. B. Über FitNesse Allgemeine Features Reporting Automatisch generierbarer Report, nicht anpassbar, über Zielsprache eigene Reports möglich 24
Schritt 4: Vorauswahl im Detail evaluieren Selenium Projektkriterien Selenium Kriterium Projekt Java Projekt Flash Projekt.Net Applikationsserver Java ASP.NET Entwicklungskenntnisse GUI-Framework Java, Tomcat Safari, Firefox und Internet Explorer Gewünscht Eclipse Java Entwicklungskenntnisse vorhanden GWT als AJAX-Framework Flash-Player Nicht notwendig IDE Adobe Keine Entwicklungskenntnisse vorhanden Keine Internet Explorer 6 9 Nicht notwendig MS Visual Studio.Net Entwicklungskenntnisse vorhanden Kein Ajax-Framework Projekteignung Sehr gut geeignet Nicht geeignet Sehr gut geeignet Legende Vorteil Nachteil Neutral Zielbrowser Unittest-Integration IDE 25
Schritt 5: Praktische Machbarkeit nachweisen Demo Selenium Selenium 26
Schritt 4: Vorauswahl im Detail evaluieren VNCRobot - Architektur VNC-Server VNCRobot beliebiges Betriebssystem und Browser 27
Schritt 4: Vorauswahl im Detail evaluieren VNCRobot Allgemeine Kriterien Usability Handling & Usability Technisch Java-Oberfläche, plattformportabel aber mit JavaLook & Feel Architektur Community Dokumentation Community Support Skriptsprache Wenig Dokumentation online verfügbar Kein Community Support, Projekt auf Sourceforge wird von der Homepage nicht verlinkt Automationskomfort Vordefinierte Funktionen Ablaufcapture nur über Koordinaten, Bildcapture nur manuell Keine zusätzlichen Funktionen, Controls wie Trees und Tabellen sind schwierig zu automatisieren. Applikationssynchronisation ist schwierig Skript-IDE IDE in VNCRobot integriert, wenig Komfortfunktionen Capture VNCRobot Kommerziell Komm. Support Lizenzmodelle Open Source Projekt wurde an T-Plan Inc. Verkauft. Dort kommerzielle Lizenz verfügbar. Dort aktive Weiterentwicklung Apache License 2.0 Kompatibilität Browser Betriebssystem Legende Methodik Data-Driven Testing Alle vergangenen und zukünftigen, wenn ein VNC-Server auf dem Betriebssystem verfügbar ist Alle vergangenen und zukünftigen, wenn ein VNC-Server verfügbar ist Vorteil Nachteil Neutral Automation über VNC-Server über Bildsuche und Bilderkennung, danach echte Benutzerinteraktion über Maus und Tastatur Proprietär, sehr eingeschränkt. Kann in der neuesten Version durch Java-Code erweitert werden Nur über zusätzlichen Java-Code möglich Allgemeine Features Reporting HTML-Reports, anpassbar 28
Schritt 4: Vorauswahl im Detail evaluieren VNCRobot Projektkriterien VNCRobot Kriterium Projekt Java Projekt Flash Projekt.Net Applikationsserver Java ASP.NET Entwicklungskenntnisse GUI-Framework Java, Tomcat Safari, Firefox und Internet Explorer Gewünscht Eclipse Java Entwicklungskenntnisse vorhanden GWT als AJAX-Framework Flash-Player Nicht notwendig IDE Adobe Keine Entwicklungskenntnisse vorhanden Keine Internet Explorer 6 9 Nicht notwendig MS Visual Studio.Net Entwicklungskenntnisse vorhanden Kein Ajax-Framework Projekteignung Geeignet, aber aufwändig Geeignet, aber aufwändig Geeignet, aber aufwändig Legende Vorteil Nachteil Neutral Zielbrowser Unittest-Integration IDE 29
Schritt 5: Praktische Machbarkeit nachweisen VNCRobot VNCRobot 30
Schritt 6: Toolreihung Welches Tool für welches Projekt? Empfehlungen Kriterium Projekt Java Projekt Flash Projekt.Net Applikationsserver Java, Tomcat Safari, Firefox und Internet Explorer Gewünscht Eclipse Java Entwicklungskenntnisse vorhanden GWT als AJAX-Framework Java ASP.NET Flash-Player Nicht notwendig IDE Adobe Keine Entwicklungskenntnisse vorhanden Keine Internet Explorer 6 9 Nicht notwendig MS Visual Studio.Net Entwicklungskenntnisse vorhanden Kein Ajax-Framework VNCRobot WatiN Selenium VNCRobot Zielbrowser Unittest-Integration IDE Entwicklungskenntnisse GUI-Framework 1. Platz 2. Platz 3. Platz Selenium VNCRobot 31
10 things I did tell you :-) Empfehlungen (1) Open Source Tools verursachen Kosten (TCO) (2) Definieren Sie die Kriterien für Ihr Projekt (3) Betrachten Sie alle wichtigen allgemeinen Testautomationskriterien (4) Führen Sie eine Toolevaluierung durch, bevor Sie mit der Umsetzung beginnen (5) Testen Sie die Machbarkeit mit den schwierigsten Controls Ihrer Plattform(en) 32
10 things I did tell you :-) Empfehlungen (6) Finden Sie einen Kompromiss zwischen Automatisierbarkeit und Aufwand (7) Achten Sie auf das Open Source Projektumfeld (Community, Lizenz, Nachhaltigkeit, Wartungskosten) (8) Stützen Sie die Lernkurve für neue Tools mit bestehendem Know-how (9) Nutzen Sie die Erfahrung anderer Nutzer im Web (10) Wählen Sie das richtige Tool, für die richtige Aufgabenstellung 33
Empfehlungen Nutzen Sie unser Know-how über www.whichtestingtool.com Nach der kostenlosen Registrierung können Sie den vollständigen Beispieltoolvergleich zwischen WatiN, Selenium und VNCRobot herunterladen Empfehlungen 34
Ich freue mich auf Ihre Fragen! 35
Open Source Testautomationstools in der Projektpraxis Mag. Alexander Vukovic