Agile Testautomatisierung im XING Mobile Team. Daniel Knott Sergej Mudruk XING AG

Ähnliche Dokumente
Agile Testautomatisierung im XING Mobile Team

Agile Testautomatisierung im XING Mobile Team

Android Testautomatisierung mit dem Framework Robotium

Android-Testautomatisierung mit Robotium

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

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

Expertenumfrage: Mobile Entertainment

Mobile App Testing. Praxisleitfaden für Softwaretester und Entwickler mobiler Anwendungen. Daniel Knott. Aus dem Englischen übersetzt von Nils Röttger

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

ubitexx Smartphones einfach sicher betreiben Dominik Dudy, Key Account Manager

Mobile App Testing. Software Test im mobilen Umfeld ATB Expertentreff, Wien, Functional Test Automation Tools

Vom Prototypen zur Anwendung

Mobile Business. Mag. Alfred Luger, MA Co-Founder/COO runtastic GmbH Co-Founder AllaboutApps GmbH

Mobile Apps in a Nutshell. Martin Straumann, Stv. BU Leiter Microsoft Technologien

Mobile Applications. Adrian Nägeli, CTO bitforge AG

Silpion IT-Solutions GmbH, Brandshofer Deich 48, Hamburg

Anforderungen und Umsetzung einer BYOD Strategie

10 things I wished they d told me! aktuell. innovativ. praxisbezogen.

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme

Mobile Device Management (MDM) Part2

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

Mobile Development in.net mit Xamarin

Mobile Device Management (MDM)

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

Cloud Computing Teil 2

So#ware- Engineering und Management für eine Smartphone App

Inhaltsverzeichnis. Mobile Device Management 11 Vorwort und Einleitung 11

Copyright by QualityMinds. Quelle:

Unternehmensportfolio

Mobile App development mit Xamarin. Christian Hassa Andreas Willich TechTalk Software AG

Raber+Märcker Techno Summit 2014 Microsoft Dynamics NAV 2013 R2 Überblick und Hintergründe zu aktuellen Version.

Testautomatisierung. Nr. 4 Januar Given When Test. Testen als Karriere. Entwickler entdecken UI-Testing. Markus Gärtner Seite 10

INNOVATIVE PREMIUM- DIENSTLEISTUNGEN FÜR INDIVIDUELLE MOBILITÄT. CARSHARING.

Kurzer Status über Mobile Radio Apps, wo ist die Industrie heute? Wo geht die Reise hin?

Expertenumfrage: Mobile Applications

Mit Cloud Power werden Sie zum

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

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Was lehrt uns der traffic-reichste mobile Auftritt der Schweiz. Patrick Comboeuf, SBB

Romano Roth & Oliver Brack Zühlke Engineering AG

Mobile Testing. Veranstaltung am 7. September 2012, 8:30 Uhr, Hotel Radisson BLU, Hamburg

Eine App, viele Plattformen

Agenda. Basics. Gadgets für Ihre Mitarbeiter. Module by SystAG Systemhaus GmbH 3

App Store Ranking Geschäftsmodelle für mobile Applikationen

Mobile Backend in der

ShareFile Jörg Vosse

BlackBerry Mobile Fusion Universal Device Service. Thomas Dingfelder, Senior Technical Account Manager ubitexx a Subsidiary of Research In Motion

SealPath Enterprise 2013

Marcus Ross. PhoneGap. Mobile Cross-Plattform-Entwicklung mit Apache Cordova & Co. dpunkt.verlag

informatik ag IT mit klarer Linie S i e b e l O p e n U I

Mobile Plattform - und was Daraus werden kann. Referent: Dipl.Ing.(FH) Wolfram Herzog

Keynote Mobile Technologien

SharePoint 2013 Mobile Access

Plattformunabhängige App-Entwicklung - Eine für alle?

Relution Enterprise App Store. Mobilizing Enterprises. 2.6 Release Note

Öko APEX Hybride Lösung für Smartphones mit APEX und PhoneGap

ENTERPRISE MOBILITY EINFACH GEMACHT MIT SILVERBACK BY MATRIX42

Deploy Early oder die richtigen. Zutaten für Ihren Relaunch

Best practices Citrix XenMobile

Verwaltung von Geräten, die nicht im Besitz des Unternehmens sind Ermöglich mobiles Arbeiten für Mitarbeiter von verschiedenen Standorten

ios, Android, WP7... Alle nativ auf einen Streich!

Apps in ArcGIS: Neuerungen. 18. Juni 2015

CyberLink präsentiert mit PowerDVD 14 ein neues Entertainment- System für PCs, Cloud und Mobilgeräte

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

23. Januar, Zürich-Oerlikon

Der Höhenflug geht weiter: German Businesscloud 2015

Check Point IPS. Agenda. Check Point & AlgoSec Security-Update 24./25. September «Eine Firewall ohne IPS ist keine Firewall»

Mobile Backend in. Cloud. Azure Mobile Services / Websites / Active Directory /

Benutzerleitfaden MobDat-CSG (Nutzung des Heimrechners für dienstliche Zwecke)

Warum auch Sie HootSuite nutzen sollten!

HP ALM. Was gibt es Neues und wo geht die Reise hin. Thomas Köppner, Technical Consultant, HP

Java für C++ Programmierer

Christian Meder inovex. Sauberes Grün QS für Android

SMARTPHONES. Möglichkeiten, Gefahren, Sicherheit Best Practice Peter Teufl

C++ und mobile Plattformen

Prävention von Datenverlust durch einen sicheren Corporate Container. Dominic Schmidt-Rieche, Enterprise Account Executive

E-Banking so richten Sie Ihren Zugriff ein

Technologie Impulse Deutschland Rainer Fritzsche

MOBILE APP. MDE Mobile Datenerfassung für kommunale Betriebe und öffentliche Einrichtungen. Mehr Informationen auf

Mobile Device Management (MDM) Part1

Relution Enterprise Appstore. Enable Enterprise Mobility. 2.5 Release Note

itemis APPlause Referent: Florian Kalisch, Denis Radjenovic

Systemvoraussetzungen Mobile Client Version 16.0

Microsoft Azure: Ein Überblick für Entwickler. Malte Lantin Technical Evangelist, Developer Experience & Evangelism (DX) Microsoft Deutschland GmbH

Anleitung zur. I. Wie funktioniert die Onleihe?

Installations- und Bedienungsanleitung CrontoSign Swiss

Der Arbeitsplatz der Zukunft ist heterogen: Mobile Endgeräte, Consumerization & Virtualisierung als Chance für Anwender und IT

ArcGIS Online Werkstatt

Usability von Bedienkonzepten auf Tablets

Mobility im Unternehmenseinsatz. Timo Deiner, Senior Presales Expert Mobility, SAP Deutschland Communication World 2012, 10.

Jörg Neumann Acando GmbH

Agenda Azure Active Directory mehr als nur Benutzer und Gruppen

Bewährt. Sicher.

Mit einer App zum Katalog!?

Technische Informationen. Fabasoft Cloud

Specification-by-Example Tutorial

Benutzerdokumentation für Studierende. Self Service (PW-Recovery Tool) Verwaltungsdirektion Informatikdienste Marc Feer

BICC Innovation Forum Smart Mobile Apps

Transkript:

Agile Testautomatisierung im XING Mobile Team Daniel Knott Sergej Mudruk XING AG

Sergej Mudruk Senior Manager Quality Assurance Sergej.Mudruk@xing.com Sergej Mudruk ist Senior Manager Quality Assurance. Hat in Hamburg Informatik studiert und ist seit Mai 2008 bei der XING AG beschäftigt. Zuerst in der Entwicklung der internen Testinfrastruktur tätig, war er später Qualitätssicherungs-Mitglied des ersten agilen Teams bei der XING AG. Hiermit hat er an der Einführung der Qualitätssicherung in dem agilen Kontext teilgenommen. Seit der Mitte 2012 ist er ein Mitglied des Mobile-Teams mit dem Hauptfokus auf die iphone App. Er ist für alle Qualitätssicherungs-Prozesse - wie die Test Planung, manuelles und automatisiertes Testen zuständig. Mehr Details auf seinem XING-Profil: https://www.xing.com/profile/sergej_mudruk

Inhaltsverzeichnis 1. XING AG 2. Herausforderungen in der mobilen Entwicklung 3. Agile Testautomatisierung 4. Werkzeuge 5. Best Practices 2

XING AG Gegründet 2003 als OpenBC Seit 2006 XING AG > 12 Mio. Mitglieder ~ 30% Mobile Traffic 3

Herausforderungen in der mobilen Entwicklung 4

Herausforderungen Plattformen 5

Herausforderungen Plattformen Verschiedene Hersteller Verschiedene User Interfaces Unterschiedliche Hardware Viele So5ware- Versionen Ein Hersteller Unterschiedliche Hardware Viele So5ware- Versionen 6

Herausforderungen I18N 7

Herausforderungen Datennetze 8

Werkzeuge 9

Werkzeuge Robotium Black Box Test Tool Basiert auf Java und JUnit 3 Support für Android 1.6 4.x Simuliert User InteracIon Device & Simulator Einfacher AuJau Testet gegen APK Datei 10

Werkzeuge Robotium 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)); 11

Werkzeuge Robotium 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)); 12

Werkzeuge Robotium 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)); 13

Werkzeuge Robotium 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)); 14

Werkzeuge Robotium 15

Werkzeuge KIF (Keep It Functional) Grey Box Test Tool ObjecIve C Device & Simulator Simuliert User InteracIon Sehr schnell & CI IntegraIon 16

Werkzeuge KIF (Keep It Functional) + (id)scenariologinwithwrongcredentials { KIFTestScenario *scenario = [KIFTestScenario scenariowithdescription:@"test } the login wrong credentials"]; [scenario addstep:[kifteststep steptoentertext:@"wrongusername" intoviewwithaccessibilitylabel:@"login User Name"]]; [scenario addstep:[kifteststep steptoentertext:@"wrongpassword intoviewwithaccessibilitylabel:@"login Password"]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel:@"done"]]; [scenario addstep:[kiftestste steptowaitforviewwithaccessibilitylabel: LocalizedString(@"ID_LOGIN_FAILED_MESSAGE")]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel: LocalizedString(@"BUTTON_OK")]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel: LocalizedString(@"ACC_FIELD_USER_NAME_LOGIN")]]; 17

Werkzeuge KIF (Keep It Functional) + (id)scenariologinwithwrongcredentials { KIFTestScenario *scenario = [KIFTestScenario scenariowithdescription:@"test } the login wrong credentials"]; [scenario addstep:[kifteststep steptoentertext:@"wrongusername" intoviewwithaccessibilitylabel:@"login User Name"]]; [scenario addstep:[kifteststep steptoentertext:@"wrongpassword intoviewwithaccessibilitylabel:@"login Password"]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel:@"done"]]; [scenario addstep:[kiftestste steptowaitforviewwithaccessibilitylabel: LocalizedString(@"ID_LOGIN_FAILED_MESSAGE")]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel: LocalizedString(@"BUTTON_OK")]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel: LocalizedString(@"ACC_FIELD_USER_NAME_LOGIN")]]; 18

Werkzeuge KIF (Keep It Functional) + (id)scenariologinwithwrongcredentials { KIFTestScenario *scenario = [KIFTestScenario scenariowithdescription:@"test } the login wrong credentials"]; [scenario addstep:[kifteststep steptoentertext:@"wrongusername" intoviewwithaccessibilitylabel:@"login User Name"]]; [scenario addstep:[kifteststep steptoentertext:@"wrongpassword intoviewwithaccessibilitylabel:@"login Password"]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel:@"done"]]; [scenario addstep:[kiftestste steptowaitforviewwithaccessibilitylabel: LocalizedString(@"ID_LOGIN_FAILED_MESSAGE")]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel: LocalizedString(@"BUTTON_OK")]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel: LocalizedString(@"ACC_FIELD_USER_NAME_LOGIN")]]; 19

Werkzeuge KIF (Keep It Functional) + (id)scenariologinwithwrongcredentials { KIFTestScenario *scenario = [KIFTestScenario scenariowithdescription:@"test } the login wrong credentials"]; [scenario addstep:[kifteststep steptoentertext:@"wrongusername" intoviewwithaccessibilitylabel:@"login User Name"]]; [scenario addstep:[kifteststep steptoentertext:@"wrongpassword intoviewwithaccessibilitylabel:@"login Password"]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel:@"done"]]; [scenario addstep:[kiftestste steptowaitforviewwithaccessibilitylabel: LocalizedString(@"ID_LOGIN_FAILED_MESSAGE")]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel: LocalizedString(@"BUTTON_OK")]]; [scenario addstep:[kifteststep steptotapviewwithaccessibilitylabel: LocalizedString(@"ACC_FIELD_USER_NAME_LOGIN")]]; 20

Werkzeuge KIF (Keep It Functional) 21

Best Practices 22

Best Practices Testcode und Anwendung in gleicher Sprache TestautomaIsierung schreiben Kontrollierte Testumgebung Werkzeuge kombinieren Versionskontrolle nutzen ConInuous IntegraIon nutzen Mobile Simulatoren meiden Crowd- / Cloud TesIng nutzen Nutzer und den Markt beobachten Kunden kennen! 23

Vielen Dank für Ihre Aufmerksamkeit! Sergej Mudruk Senior Manager Quality Assurance Daniel Knott Manager Quality Assurance The professional network www.xing.com 24

Links & Referenzen Robotium [http://code.google.com/p/robotium/] KIF [http://corner.squareup.com/2011/07/ios-integration-testing.html] WaxSim [https://github.com/square/waxsim] Hockeykit [http://hockeykit.net/] Twitter Logo [https://si0.twimg.com/a/1318896278/images/logos/twitter_newbird_white.png] Businesswoman [http://www.istockphoto.com/stock-photo-16742115-businesswomanholding-a-blank-sign-isolated.php] Letters, by davide vizzini limbte [http://www.flickr.com/photos/limbte/4007115435/] Little Dish, by Juan de Dios Santander Vela [http://www.flickr.com/photos/juandesant/ 209098053] App Store Logo [http://upload.wikimedia.org/wikipedia/de/0/05/app-store-logo.png] Robot [http://www.nassaulibrary.org/eastrock/robot.jpg] Robotium Logo [http://f.hatena.ne.jp/images/fotolife/r/re_shikajiro/20110601/ 20110601224550.jpg] Square Logo [http://c580513.r13.cf2.rackcdn.com/wp-content/uploads/2011/07/square_logo _Landscape1-500x214.png?9d7bd4] 25

Links & Referenzen Apple Logo [http://www.lte-tablets.de/files/2011/08/apple_logo.jpg] Android Logo [http://www.android.com/media/wallpaper/gif/android_logo.gif] Windows Phone Logo [http://upload.wikimedia.org/wikipedia/de/thumb/2/23/windows_ Phone_Logo.svg/500px-Windows_Phone_Logo.svg.png] Blackberry Logo [http://us.blackberry.com/legal/bblogo_gray_003.jpg] WebOS Logo [http://upload.wikimedia.org/wikipedia/en/e/e0/webos_logo.svg] Symbian Logo [http://upload.wikimedia.org/wikipedia/de/thumb/c/c8/symbian_os_ logo.svg/686px-symbian_os_logo.svg.png] 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-market-place-2x.png] 26