Android Testautomatisierung mit dem Framework Robotium



Ähnliche Dokumente
Android-Testautomatisierung mit Robotium

Agile Testautomatisierung im XING Mobile Team

Agile Testautomatisierung im XING Mobile Team

Präsentation Von Laura Baake und Janina Schwemer

DATENSICHERUNG MOBILE ENDGERÄTE

DATENSICHERUNG MOBILE ENDGERÄTE

Installations- und Bedienungsanleitung CrontoSign Swiss

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Das Internet ist mobil. John Riordan Bern, 17. Jan 2013

Enterprise Mobility, Live! Pascal Kaufmann, Swisscom IT Services AG 12. Juni 2013

ROFIN App Benutzerhandbuch. Version 1.0

Apple Train the Trainer 08 Developer Programs. Josef Kolbitsch

Konzept zur Push Notification/GCM für das LP System (vormals BDS System)

mobile Responsive Design Lässt Ihre Anwendungen und Inhalte auf jedem Gerät einfach gut aussehen

E-Banking so richten Sie Ihren Zugriff ein

Mobile App Testing - Mit der richtigen Strategie zum Erfolg

Dieses Dokument beschreibt die Verbindungsherstellung mit dem WLAN-Netzwerk der PHLU auf Smartphones. hotline.hslu.ch Andere

IVE-W530BT. Bluetooth Software Update Manual mit Android Telefonen

Bewusster Umgang mit Smartphones

iphone Apps vs. Mobile Web

Smartphones: Affinitäten der CHECK24-Kunden. Nach Herstellern, Städten, Alter und Geschlecht

Anleitung für Zugriff auf Hosted Zarafa

Ein mobiler Electronic Program Guide

S Sparkasse. pushtan-einrichtung. Nutzungsanleitung pushtan. Leitfaden zur Einrichtung in Firma und Verein für Windows

Sage 200 BI Häufige Fehler & Lösungen. Version

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

ZEISS VR ONE Virtual Reality Brille ohne Schale

Anforderungen und Umsetzung einer BYOD Strategie

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

FUTURE NETWORK MOBILE TESTING. EBCONT proconsult, Millennium Tower, Handelskai 94 96, A 1200 Vienna 15/05/14

Test mit lokaler XAMPP Oxid Installation

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

Apps am Smartphone. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

FULL LINK COMPATIBILITY SEAT SERVICE TECHNOLOGY TO ENJOY

Relution Enterprise App Store. Mobilizing Enterprises. 2.6 Release Note

15 Arten von QR-Code-Inhalten!

Shopping - Mode - Lifestyle

Relution Enterprise Appstore. Enable Enterprise Mobility. 2.5 Release Note

Der schnelle Weg zu Ihrer eigenen App

PlaceCam 3. Die Videokonferenzsoftware für Windows und Mac OS X. Jürgen Völkel Vertrieb daviko GmbH

UFED 4PC/Touch 4.1 & UFED Physical/Logical Analyzer 4.1.1

SCHRITT FÜR SCHRITT ZU IHRER VERSCHLÜSSELTEN

Marktanalyse mobile Betriebssysteme und Smartphone Modelle in Deutschland. Sortimentsvorschlag für Händler. Viktor Riemer Oktober 2011

Architekturen mobiler Multi Plattform Apps

Java Entwicklung für Embedded Devices Best & Worst Practices!

Wie schafft man eine optimale Multiscreen-Experience?

ERPaaS TM. In nur drei Minuten zur individuellen Lösung und maximaler Flexibilität.

2. Installation der minitek-app auf einem Smartphone. 3. Verbindung zwischen minitek-app und minitek herstellen

Smartphone Betriebssysteme

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

KOMPATIBILITÄT FULL LINK SEAT SERVICE TECHNOLOGY TO ENJOY

Liferay 6.2. Open Source IT-Dienstleister. Ein modernes Open Source Portal System. forwerts solutions GmbH, Gabriele Maas

1) Blackberry. 2) Symbian OS. 3) Android. 4) Apple ios. 5) Windows Phone 7

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

Buchen eines Webinars

HANDBUCH ZUR AKTIVIERUNG UND NUTZUNG DER HANDY-SIGNATUR APP

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme

Sparkasse. pushtan-einrichtung. Nutzungsanleitung pushtan. Leitfaden zur Einrichtung in Banking 4W für Windows

Nutzung und Einstellung eines Smartphones. zur Nutzung von. OpenScape UC. und. WLAN zur Telefonie

Sparkasse. pushtan-einrichtung. Nutzungsanleitung pushtan. Leitfaden zur Einrichtung in StarMoney 9.0 für Windows

Unterscheidung Tablet PC & Tablet Computer. Tablet PC; ursprüngliche Bezeichnung von Microsoft. Tablets gemeint

PC/Mac oder Smartphone/Tablet. Compi-Treff vom 9. Januar 2015 Thomas Sigg

Sparkasse. pushtan-einrichtung. Nutzungsanleitung pushtan. Leitfaden zur Einrichtung in OutBank für ios. Vorbereitung pushtan aktivieren Banking-App

Die MOBILE Welt als Geschäftsmodell?

Mobile Monitor Smartphone und Tablet-PC: Geräte, Nutzung und Zufriedenheit

Bitte beachten Sie. Nur für Kabelmodem! - 1 -

FritzCall.CoCPit Schnelleinrichtung

Mobile Security (Android OS) Ein Vortrag zur Sensibilisierung eines Benutzers im Umgang mit Smartphones und Tablets mit dem Android OS.

pushtan-einrichtung Leitfaden zur Einrichtung in Sparkasse+ für ios

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

Handbuch für die DailyDeal Entwertungs-App

Die Museums-App mit moderner Bluetooth Beacon Technologie

Tess TeSign nutzen mit App's"! iphone und Bria Informationen zur Nutzung

Installationsanleitung dateiagent Pro

SBB Schulung für digitale Fahrplanabfrage und Ticketkäufe.

Social Media für Gründer. BPW Business Juni 2012

:: Anleitung Hosting Server 1cloud.ch ::

Übersicht Handy-Adapter Stand 08/2013

MEHR INNOVATION. MIT SICHERHEIT. COMPAREX Briefing Circle 2014

Expertenumfrage: Mobile Applications

Studenten-Team der Universität Rostock erringt 2. Platz im nationalen Finale des Ricoh & Java Developer Challenge

Lizenzen auschecken. Was ist zu tun?

IRF2000 Application Note Eingeschränkter Remote Zugriff

Anleitung zum Prüfen von WebDAV

Diese Produkte stehen kurz vor end of support 14. Juli Extended Support

ITIL und Entwicklungsmodelle: Die zwei Kulturen

Anleitung zur Installation von Klingeltönen für ios-geräte

Nominierung Digital Marketer of the Year 2014

IT-Trend-Befragung Xing Community IT Connection

iphone 4 - Einrichtung des VPN Clients (Cisco VPN Client) / Verbinden des iphones mit einem Exchange

Transkript:

Android Testautomatisierung mit dem Framework Robotium Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com

Daniel Knott Manager Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat einen technischen Hintergrund in verschiedenen Programmiersprachen und Quality Assurance Tools. Nach seiner Ausbildung bei der IBM Deutschland GmbH studierte er an der Fachhochschule Wiesbaden Informatik mit dem Schwerpunkt Softwarequalitätssicherung. Seit 2010 arbeitet Daniel Knott als Manager Quality Assurance bei der XING AG. In verschiedenen Projekten (XING Suche, XING Empfehlungen) war er verantwortlich für das Testmanagement, für die Ausführung der Testfälle sowie für die Testautomatisierung. Zur Zeit arbeitet Daniel Knott im XING mobile Team. Dort ist er verantwortlich für das Testmanagement aller Mobilen Apps der XING AG, dazu gehören iphone, Android, touch.xing.com, Windows Phone 7 und die Blackberry App. Neben dem Testmanagement betreut Daniel die Testautomatisierung der iphone und Android App. Zusätzlich zu seiner Tätigkeit bei der XING AG ist Daniel ein Sprecher auf agilen Konferenzen. Sein XING Profil https://www.xing.com/profile/daniel_knott. Sein Blog http://www.adventuresinqa.com

Inhaltsverzeichnis 1. XING AG 2. Warum Testautomatisierung? 3. Robotium 4. Code / Live Demo 5. Vor -und Nachteile 6. Best Practices 3

XING AG Gegründet 2003 als OpenBC Seit 2006 XING AG > 11.7 Mio. Mitglieder ~25% Mobiler Traffic 4

XING AG 5

XING AG 50 Releases im Jahr 6

XING AG 7

Warum Testautomatisierung? 8

Warum Testautomatisierung? 9

Warum Testautomatisierung? Falsche Übersetzung App lässt sich nicht installieren Fehlende Ressourcen Keine Verbindung zum Backend Layout- Probleme Probleme mit Landscape / Portrait Mode 10

Warum Testautomatisierung? 11

Warum Testautomatisierung? 12

Robotium 13

Robotium Allgemeines Black Box Test Tool Basiert auf Java und JUnit 3 Support von Android 1.6 4.x Simuliert User- InterakQonen Device & Simulator Einfacher AuSau Testet APK Files 14

Robotium Methoden clickonbutton(text) clickontext(text) clickonimage(id) clickinlist(line) searchtext(text) entertext(id, text) waitforactivity(name, timeout) waitforview(view) It s like Selenium, but for Android TM 15

Code-Beispiele 16

Code Login public void testloginfailed() throws Exception { } solo.entertext(0, wrongusername ); solo.entertext(1, wrongpassword ); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_login)); solo.waitforactivity("com.xing.android.activities.spinnerloginactivity", 2000); asserttrue("error: Error message is not shown", verifytextispresent(solo.getstring( com.xing.android.r.string.dialog_error_body))); solo.clickonbutton(solo.getstring(com.xing.android.r.string.dialog_button)); 17

Code Login public void testloginfailed() throws Exception { } solo.entertext(0, wrongusername ); solo.entertext(1, wrongpassword ); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_login)); solo.waitforactivity("com.xing.android.activities.spinnerloginactivity", 2000); asserttrue("error: Error message is not shown", verifytextispresent(solo.getstring( com.xing.android.r.string.dialog_error_body))); solo.clickonbutton(solo.getstring(com.xing.android.r.string.dialog_button)); 18

Code Login public void testloginfailed() throws Exception { } solo.entertext(0, wrongusername ); solo.entertext(1, wrongpassword ); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_login)); solo.waitforactivity("com.xing.android.activities.spinnerloginactivity", 2000); asserttrue("error: Error message is not shown", verifytextispresent(solo.getstring( com.xing.android.r.string.dialog_error_body))); solo.clickonbutton(solo.getstring(com.xing.android.r.string.dialog_button)); 19

Code Login public void testloginfailed() throws Exception { } solo.entertext(0, wrongusername ); solo.entertext(1, wrongpassword ); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_login)); solo.waitforactivity("com.xing.android.activities.spinnerloginactivity", 2000); asserttrue("error: Error message is not shown", verifytextispresent(solo.getstring( com.xing.android.r.string.dialog_error_body))); solo.clickonbutton(solo.getstring(com.xing.android.r.string.dialog_button)); 20

Code Login 21

Code Status Update public void teststatusupdate() throws Exception { solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_news)); solo.entertext(0, bin auf der Mobile Developer Conference ); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_send)); solo.clickonmenuitem(solo.getstring(com.xing.android.r.string.menu_refresh)); asserttrue("error: Update is not shown", searchtext( bin auf der Mobile Developer Conference )); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_delete)); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_yes)); assertfalse("error: Update is still shown", searchtext( bin auf der Mobile Developer Conference )); } 22

Code Status Update public void teststatusupdate() throws Exception { solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_news)); solo.entertext(0, bin auf der Mobile Developer Conference ); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_send)); solo.clickonmenuitem(solo.getstring(com.xing.android.r.string.menu_refresh)); asserttrue("error: Update is not shown", searchtext( bin auf der Mobile Developer Conference )); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_delete)); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_yes)); assertfalse("error: Update is still shown", searchtext( bin auf der Mobile Developer Conference )); } 23

Code Status Update public void teststatusupdate() throws Exception { solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_news)); solo.entertext(0, bin auf der Mobile Developer Conference ); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_send)); solo.clickonmenuitem(solo.getstring(com.xing.android.r.string.menu_refresh)); asserttrue("error: Update is not shown", searchtext( bin auf der Mobile Developer Conference )); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_delete)); solo.clickonbutton(solo.getstring(com.xing.android.r.string.button_yes)); assertfalse("error: Update is still shown", searchtext( bin auf der Mobile Developer Conference )); } 24

Code Status Update 25

Vor -und Nachteile 26

Vorteile Testen auf echter Hardware Verschiedene Versionen testen Einfacher Aufbau App Source Code nicht notwendig Integration in CI Server (Jenkins) Open Source Starke Community 27

Nachteile Ausführungszeit sehr langsam Kein Web-View- oder Flash-Support Keine Screenshotfunktion Kein Multi Device Support Kein Zugriff auf andere APKs Reaktion auf Anrufe, SMS, Tweets Kamera, Sensoren, Bluetooth 28

Best Practices 29

Best Practices Testcode und Entwicklungscode in gleicher Sprache Sicherung aller Tests in einer Versionskontrolle Tools kombinieren Continuous Integration Server nutzen Android Simulator meiden Gerootete Geräte meiden In allen Netzen Testen Die Kunden kennen! 30

Vielen Dank für Ihre Aufmerksamkeit Daniel Knott Manager Quality Assurance daniel.knott@xing.com @dnlkntt http://www.adventuresinqa.com/ Das professionelle Netzwerk www.xing.com 31

Links & Referenzen Robotium http://code.google.com/p/robotium/ Android Logo http://www.android.com/media/wallpaper/gif/android_logo.gif Twitter Logo https://si0.twimg.com/a/1318896278/images/logos/twitter_newbird_white.png Businesswoman http://www.istockphoto.com/stock-photo-16742115-businesswoman-holding-a-blanksign-isolated.php Letters, by davide vizzini limbtehttp://www.flickr.com/photos/limbte/4007115435/ Robotium Logo http://f.hatena.ne.jp/images/fotolife/r/re_shikajiro/20110601/20110601224550.jpg Samsung Logo http://samsung.de/webdownloads/pressedownloads/samsung_standard_brandline_c.jpg HTC Logo http://fs02.androidpit.info/userfiles/44704/image/bilder/htc/htc_logo.jpg 32

Links & Referenzen LG Logo http://upload.wikimedia.org/wikipedia/de/f/f1/lg-logo.svg Sony Ericsson Logo http://www.xginsider.com/wp-content/uploads/2010/09/sony-ericsson-logo.jpg Motorola Logo http://www.android-hilfe.de/attachments/android-news/42706d1310665896-motorola-atrixab-sofort-deutschland-erhaeltlich-ohne-lapdock-logo-motorola.jpg] Huawei Logo http://www.android.com/media/wallpaper/gif/android_logo.gif Iqnite Logo http://www.bredex.de/web/tl_files/bredexdateien/pictures/events/ iqnite_logo_deutschland2012_rgb.jpg Google Play Logo http://www.android.com/images/brand/android_app_on_play_logo_small.png Apple App Store Logo http://www.inext.me/wp-content/uploads/2011/09/ app-store_logo.png Windows Market Place Logo http://modmyi.com/attachments/forums/iphone-4- new-skins-themes-launches/483774d1290368882-release-windows-phone-7-hd-marketplace-2x.png 33