• Save
iOS Testautomation bei mobile.de
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

iOS Testautomation bei mobile.de

on

  • 743 views

Vortrag im Rahmen des 2. eBay Tech Talks am 22.11.2012. ...

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.

Statistics

Views

Total Views
743
Views on SlideShare
743
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

iOS Testautomation bei mobile.de Presentation Transcript

  • 1. iOS Testautomatisierung und Continuous Integration2. eBay Tech Talk - 22.11.2012 1
  • 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. 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. Bugs sind sehr teuer•  Apple Review => Mehrere Tage live•  Kundenzufriedenheit sinkt•  Schlechte Rezensionen•  Marketingkampagnen verpuffen•  Neue Funktionen müssen warten 4
  • 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. 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. 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. Feature - AufgabenstellungA user can filter the result set by location and see his configuration onthe search form. 8
  • 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. 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. 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. 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. 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
  • 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. Q&AHolger Hammelhhammel@team.mobile.detwitter: @mobilep2Thomas Weesetweese@team.mobile.de 16
  • 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