iOS Testautomatisierung und Continuous Integration2. eBay Tech Talk - 22.11.2012                                 1
Thomas Weese - Senior iOS Dev.Holger Hammel - Team Lead; Java Dev.mobile.de•  Deutschlands größter Online-Fahrzeugmarkt•  ...
Apps werden komplexer•  Inhaltliche Komplexität•  iOS-Versionen und Gerätevielfalt•  Sprach- und Länderversionen   –  mobi...
Bugs sind sehr teuer•  Apple Review => Mehrere Tage live•  Kundenzufriedenheit sinkt•  Schlechte Rezensionen•  Marketingka...
Automatisiert Testen? JA!Zwar•  Initial Aufwand nötig: Setup, Lernen, PflegeAber•  Reduziert manuellen Testaufwand•  Ermög...
Effizient Testen - Erfahrungen•    Risiken•    Refactorings & Bugfixes•    Kein Layout•    Keine Trivial-Logik•  Rote Test...
Testarten - Überblick                                                      Unit Tests                                     ...
Feature - AufgabenstellungA user can filter the result set by location and see his configuration onthe search form.       ...
UnitTest – Text Formatierung   •  OCUnit (SenTestingKit)   •  OCHamcrest#pragma mark Tests!!// ...!!-(void) testFormatedLo...
Akzeptanztests: Cucumber•  Behaviour Driven Development Tool    –  ähnlich Concordion•  für zB Java, .NET, via Frank mit O...
Cucumber Szenario: Location TextScenario: A user can filter the resultset by a location and see hisconfiguration on the se...
Akzeptanztest ImplementierungCucumber AkzeptanzkriterienWhen I enter the text "14532" from keyboard to the    !text field ...
Frank•  Cucumber Testszenarien auf   iOS Simulator                                    Given I touch the table cell•  Steue...
14
Fazit und Ausblick•    Setup funktioniert•    Tests finden Bugs•    seit 2 Jahren praktisch keine Bugs in Produktion•    4...
Q&AHolger Hammelhhammel@team.mobile.detwitter: @mobilep2Thomas Weesetweese@team.mobile.de                              16
Links	  •  Cucumber:	  h0p://cukes.info	  	  •  Frank:	  h0p://tes9ngwithfrank.com	  •  Hamcrest:	  h0p://code.google.com/...
Upcoming SlideShare
Loading in …5
×

iOS Testautomation bei mobile.de

637 views
546 views

Published on

Vortrag im Rahmen des 2. eBay Tech Talks am 22.11.2012.
Es werden verschiedene Testarten vorgestellt, die die Qualität der mobile.de iOS apps sichern: Unit Tests, und vor allem BDD Akzeptanztests mit Cucumber und Frank.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
637
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

iOS Testautomation bei mobile.de

  1. 1. iOS Testautomatisierung und Continuous Integration2. eBay Tech Talk - 22.11.2012 1
  2. 2. Thomas Weese - Senior iOS Dev.Holger Hammel - Team Lead; Java Dev.mobile.de•  Deutschlands größter Online-Fahrzeugmarkt•  Teil des eBay-Konzerns•  150 Leute, 60 Entwickler; Berlin•  1,4 Mill. Fahrzeuge•  ~ 1 Milliarde Page Impressions / Monat (7/2012)•  rund 30% Traffic Share mobile devicesmobile.de Apps-Team•  iOS, Android, mobile webapps;•  13 Teammitglieder: Dev, Product, QA, Siteops 2
  3. 3. Apps werden komplexer•  Inhaltliche Komplexität•  iOS-Versionen und Gerätevielfalt•  Sprach- und Länderversionen –  mobile.de, automobile.it, automobile.fr iOS  6   68%   iOS  5   23%  •  Lange Lebenszeit iOS  4   9%   3
  4. 4. Bugs sind sehr teuer•  Apple Review => Mehrere Tage live•  Kundenzufriedenheit sinkt•  Schlechte Rezensionen•  Marketingkampagnen verpuffen•  Neue Funktionen müssen warten 4
  5. 5. Automatisiert Testen? JA!Zwar•  Initial Aufwand nötig: Setup, Lernen, PflegeAber•  Reduziert manuellen Testaufwand•  Ermöglicht kurze Releasezyklen•  Sichert Qualität•  Spart Geld und Nerven 5
  6. 6. Effizient Testen - Erfahrungen•  Risiken•  Refactorings & Bugfixes•  Kein Layout•  Keine Trivial-Logik•  Rote Tests = Stop-the-line•  Keine Blinkertests•  Externe Services –  Mock Server, Proxy 6
  7. 7. Testarten - Überblick Unit Tests OCUnit AkzeptanzTestsGiven I touch the table cell Cucumber -> Frank -> SimulatorWhen I enter the text "14532” Session Based Tests Das Team & die Hardware 7
  8. 8. Feature - AufgabenstellungA user can filter the result set by location and see his configuration onthe search form. 8
  9. 9. UnitTest – Text Formatierung •  OCUnit (SenTestingKit) •  OCHamcrest#pragma mark Tests!!// ...!!-(void) testFormatedLocationIsCorrectForDetailedLocation {! ! // ...!! QuickSearchViewController* vc = ! [[QuickSearchViewController alloc] initWithNibName: nil bundle: nil];! ! NSString* formatedLabelText = ! [vc formatedLocationLabelFromSearch: self.search];!! assertThat(formatedLabelText,! is(equalTo(@"14532 Kleinmachnow, Deutschland, 100km")));!}! 9
  10. 10. Akzeptanztests: Cucumber•  Behaviour Driven Development Tool –  ähnlich Concordion•  für zB Java, .NET, via Frank mit Objective-C•  Beschreibung von erwartetem Verhalten in natürlicher Sprache: english, deutsch, …•  Pattern: Given – When – Then•  Implementierung der Tests mit Rubyhttp://cukes.info 10
  11. 11. Cucumber Szenario: Location TextScenario: A user can filter the resultset by a location and see hisconfiguration on the search form!Given I touch the table cell marked "PLZ, UmkreisCell”!When I enter the text "14532" from keyboard to the ! text field "Adresseneingabe”!Then I should see "14532 Kleinmachnow, Deutschland" ! in view "Adresseneingabe"!!When I touch "Zurück”!Then I should see ! "14532 Kleinmachnow, Deutschland, 100km” ! in view "PLZ, UmkreisCell”
! 11
  12. 12. Akzeptanztest ImplementierungCucumber AkzeptanzkriterienWhen I enter the text "14532" from keyboard to the !text field "Adresseneingabe”! =>Ruby ImplementierungWhen /^I enter the text "([^"]*)" from keyboard ! to the text field "([^"]*)"$/ do ! |text_to_type, text_field_mark|!! selector = "view marked:#{text_field_mark} first”! 12
  13. 13. Frank•  Cucumber Testszenarien auf iOS Simulator Given I touch the table cell•  Steuerung des Simulators When I enter the text "14532” Then I should see –  Touch, Swipe usw.•  Selektieren und Inspektion von Elementenhttp://testingwithfrank.com 13
  14. 14. 14
  15. 15. Fazit und Ausblick•  Setup funktioniert•  Tests finden Bugs•  seit 2 Jahren praktisch keine Bugs in Produktion•  4.5 Sterne Bewertung, 2 Millionen Downloads•  Skalierbarkeit Frank/Cucumber ?•  Ruby als Testimplementierungssprache•  Testbasis vergrößern: Unit Tests, Test Driven Developement•  Ständiges Evaluieren bekannter und neuer Frameworks •  UI Automation, kif, Selenium, … 15
  16. 16. Q&AHolger Hammelhhammel@team.mobile.detwitter: @mobilep2Thomas Weesetweese@team.mobile.de 16
  17. 17. Links  •  Cucumber:  h0p://cukes.info    •  Frank:  h0p://tes9ngwithfrank.com  •  Hamcrest:  h0p://code.google.com/p/hamcrest/  •  mobile.de  iOS-­‐App:   h0ps://itunes.apple.com/de/app/mobile.de-­‐ mobile-­‐autoborse/id378563358  

×