Mobile App Testing ScanAgile 2012

Daniel Knott
Daniel KnottHead of Software Testing
Daniel Knott
XING AG
@dnlkntt
http://www.adventuresinqa.com
Mobile App Testing –
Challenges, Solutions and Best Practices
Scandinavian Agile Conference 2012
Daniel Knott
Manager Quality Assurance
@dnlkntt
daniel.knott@xing.com
Daniel Knott has a technical background with different programming languages and quality
assurance tools. After his vocational education at IBM Deutschland GmbH, he studied
Computer Science with a focus on quality assurance. Since 2010 Daniel is working as a
Quality Assurance Manager at XING AG. In different projects he was responsible for the test
management, test automation and test execution in agile teams at XING. Currently, he works
in the mobile team, where he is involved in the test management and test automation on
Android and iPhone devices. Daniel likes to work in agile software development teams and to
automate test cases using technologies such as Robotium, KIF (Keep It Functional),
Selenium and Java. XING profile: https://www.xing.com/profile/Daniel_Knott.
Blog: http://www.adventuresinqa.com
1.  XING AG
2.  Why mobile testing?
3.  Challenges
4.  Solutions
5.  Best Practices
What’s inside?
2Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
3Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
XING AG
 www.xing.com
 Business Social Network
 Located in Hamburg
 > 11.7 Mio. Members
 ~20% Mobile Traffic
XING AG
4Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
XING AG
5Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Releases
50
XING AG
6Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
7Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Why mobile testing?
Why mobile testing?
8Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Why mobile testing?
9Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
App	
  installa*on	
  is	
  failing	
  
Layout	
  problems	
  
Problems	
  with	
  Landscape	
  /	
  Portrait	
  Mode	
  
Wrong	
  transla*on	
  
Missing	
  ressources	
  
No	
  connec*on	
  to	
  backend	
  
10Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Challenges
Challenges – Platforms
11Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Challenges – Platforms
12Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
More	
  than	
  one	
  Vendor	
  
Different	
  User	
  Interfaces	
  
Different	
  Hardware	
  
Different	
  SoFware	
  Versions	
  
One	
  Vendor	
  
Different	
  Hardware	
  
Different	
  SoFware	
  Versions	
  
Challenges – I18N
13Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Challenges – Carrier Network
14Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
15Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Solution –
Test Automation
Solution – Robotium
16Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Black	
  Box	
  Test	
  Tool	
  
Based	
  on	
  Java	
  and	
  JUnit	
  3	
  
Supports	
  Android	
  1.6	
  –	
  4.x	
  
Simulate	
  User	
  Interac*on	
  
Simple	
  Structure	
  
Device	
  &	
  Simulator	
  
Test	
  against	
  APK	
  files	
  
Solution – Robotium
17Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
It‘s likeSelenium,
but for
AndroidTM
clickOnButton(text)
clickOnText(text)
clickOnImage(id)
clickInList(line)
searchText(text)
enterText(id, text)
waitForActivity(name, timeout)
waitForView(view)
Solution – Robotium
18Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
	
  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));	
  
	
  }	
  
Solution – Robotium
19Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
	
  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));	
  
	
  }	
  
Solution – Robotium
20Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
	
  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));	
  
	
  }	
  
Solution – Robotium
21Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
	
  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));	
  
	
  }	
  
Solution – Robotium
22Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Solution – KIF (Keep It Functional)
23Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Grey	
  Box	
  Test	
  Tool	
  
Objec*ve	
  C	
  
Currently	
  Simulator	
  only	
  
Simulate	
  User	
  Interac*on	
  
Really	
  Fast	
  &	
  Easy	
  to	
  integrate	
  
Solution – KIF (Keep It Functional)
24Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
stepToEnterText: @”Text”
stepToTapViewWithAccessibilityLabel: @”Text”
stepToWaitForViewWithAccessibilityLabel: @”Text”
stepToWaitForTimeInterval: 1
stepToWaitForTappableViewWithAccessibilityLabel: @”Text”
stepToWaitForAbsenceOfViewWithAccessibilityLabel: @”Text”
stepToTapRowInTableViewWithAccessibilityLabel: @”Text”
Solution – KIF (Keep It Functional)
25Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
+	
  (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:[KIFTestStep	
  
	
  stepToWaitForViewWithAccessibilityLabel:LocalizedString 	
   	
   	
   	
  	
  	
  
	
  (@"ID_LOGIN_FAILED_MESSAGE")]];	
  
	
  [scenario	
  addStep:[KIFTestStep	
  
	
  stepToTapViewWithAccessibilityLabel:LocalizedString
	
  (@"ACC_FIELD_USER_NAME_LOGIN")]];	
  
Solution – KIF (Keep It Functional)
26Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
+	
  (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:[KIFTestStep	
  
	
  stepToWaitForViewWithAccessibilityLabel:LocalizedString 	
   	
   	
   	
  	
  	
  
	
  (@"ID_LOGIN_FAILED_MESSAGE")]];	
  
	
  [scenario	
  addStep:[KIFTestStep	
  
	
  stepToTapViewWithAccessibilityLabel:LocalizedString
	
  (@"ACC_FIELD_USER_NAME_LOGIN")]];	
  
Solution – KIF (Keep It Functional)
27Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
+	
  (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:[KIFTestStep	
  
	
  stepToWaitForViewWithAccessibilityLabel:LocalizedString 	
   	
   	
   	
  	
  	
  
	
  (@"ID_LOGIN_FAILED_MESSAGE")]];	
  
	
  [scenario	
  addStep:[KIFTestStep	
  
	
  stepToTapViewWithAccessibilityLabel:LocalizedString
	
  (@"ACC_FIELD_USER_NAME_LOGIN")]];	
  
Solution – KIF (Keep It Functional)
28Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
+	
  (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:[KIFTestStep	
  
	
  stepToWaitForViewWithAccessibilityLabel:LocalizedString 	
   	
   	
   	
  	
  	
  
	
  (@"ID_LOGIN_FAILED_MESSAGE")]];	
  
	
  [scenario	
  addStep:[KIFTestStep	
  
	
  stepToTapViewWithAccessibilityLabel:LocalizedString
	
  (@"ACC_FIELD_USER_NAME_LOGIN")]];	
  
Solution – KIF (Keep It Functional)
29Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
30Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Solution –
Crowd Source Testing
Solution – Internal Beta Release
31Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Solution – Crowd Source Testing
32Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Solution – Cloud Testing
33Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
34Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Best
Practices
Best Practices
35Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
Know	
  your	
  customers	
  
Write	
  test	
  automa*on	
  
Combine	
  tools	
  
Use	
  crowd	
  source	
  tes*ng	
  
Don‘t	
  forget	
  the	
  languages	
  
Don‘t	
  forget	
  the	
  carrier	
  network	
  
Test	
  code	
  and	
  produc*on	
  code	
  in	
  same	
  language	
  
Use	
  version	
  control	
  systems	
  
Use	
  con*nuous	
  integra*on	
  
Avoid	
  simulators	
  
Thank you
for your
kind
attention!
The professional network
www.xing.com
Daniel Knott
Manager Quality Assurance
daniel.knott@xing.com
@dnlkntt
http://www.adventuresinqa.com/
36Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
We are hiring
37Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
We are looking for
Ruby, Perl, Java, JavaScript, iOS, QA
http://corporate.xing.com/english/company/careers-at-xing/
Links & References
38Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  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/]
  Apkudo [http://www.apkudo.com/]
  uTest [http://www.utest.com/]
  Testbirds.de [http://testbirds.de/]
  Testdroid [http://testdroid.com/]
  Perfecto Mobile [http://www.perfectomobile.com/]
  DeviceAnyWhere[http://www.keynotedeviceanywhere.com/index.aspx]
Links & References
39Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  Scandinavian Agile Logo [http://scan-agile.org/wp-content/themes/sac20121/images/
scan_agile_2012_gray.png]
  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-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]
  uTest Logo [http://upload.wikimedia.org/wikipedia/en/0/0d/UTest_company_logo.jpg]
  Mob4Hire [http://www.free-press-release.com/members/members_pic/200901/img/
1233074965.png]
  Apkudo [http://www.apkudo.com/a/images/apkudo.png]
  Testbirds [http://nest.testbirds.de/sites/default/files/LOGO_1.png]
Links & References
40Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  DeviceAnywhere [http://www.keynotedeviceanywhere.com/images/logo.jpg]
  Perfecto Mobile Logo [http://www.perfectomobile.com/portal/export/sites/qsp/_info_/
general_image_gallery/logo.gif]
  Testdroid Logo [http://beta.testdroid.com/images/logo.png]
  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]
1 of 41

Recommended

Appium Mobile Testing: Nakov at BurgasConf - July 2021 by
Appium Mobile Testing: Nakov at BurgasConf - July 2021Appium Mobile Testing: Nakov at BurgasConf - July 2021
Appium Mobile Testing: Nakov at BurgasConf - July 2021Svetlin Nakov
137 views35 slides
Android Automation Using Robotium by
Android Automation Using RobotiumAndroid Automation Using Robotium
Android Automation Using RobotiumMindfire Solutions
4K views28 slides
Robotium Tutorial by
Robotium TutorialRobotium Tutorial
Robotium TutorialMobile March
22.4K views34 slides
Different Android Test Automation Frameworks - What Works You the Best? by
Different Android Test Automation Frameworks - What Works You the Best?Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?Bitbar
34K views45 slides
Android testing by
Android testingAndroid testing
Android testingBitbar
7.4K views19 slides
Android testing by
Android testingAndroid testing
Android testingJinaTm
3.6K views34 slides

More Related Content

What's hot

Test Automation On Android Platform Using Robotium by
Test Automation On Android Platform Using RobotiumTest Automation On Android Platform Using Robotium
Test Automation On Android Platform Using RobotiumIndicThreads
5.3K views18 slides
Getting Started with XCTest and XCUITest for iOS App Testing by
Getting Started with XCTest and XCUITest for iOS App TestingGetting Started with XCTest and XCUITest for iOS App Testing
Getting Started with XCTest and XCUITest for iOS App TestingBitbar
13K views30 slides
Android Test Automation Workshop by
Android Test Automation WorkshopAndroid Test Automation Workshop
Android Test Automation WorkshopEduardo Carrara de Araujo
1.2K views41 slides
Robotium - sampath by
Robotium - sampathRobotium - sampath
Robotium - sampathSampath Muddineni
677 views24 slides
Android Testing: An Overview by
Android Testing: An OverviewAndroid Testing: An Overview
Android Testing: An OverviewSmartLogic
3.4K views37 slides
Automation testing on ios platform using appium by
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appiumAmbreen Khan
9K views56 slides

What's hot(20)

Test Automation On Android Platform Using Robotium by IndicThreads
Test Automation On Android Platform Using RobotiumTest Automation On Android Platform Using Robotium
Test Automation On Android Platform Using Robotium
IndicThreads5.3K views
Getting Started with XCTest and XCUITest for iOS App Testing by Bitbar
Getting Started with XCTest and XCUITest for iOS App TestingGetting Started with XCTest and XCUITest for iOS App Testing
Getting Started with XCTest and XCUITest for iOS App Testing
Bitbar13K views
Android Testing: An Overview by SmartLogic
Android Testing: An OverviewAndroid Testing: An Overview
Android Testing: An Overview
SmartLogic3.4K views
Automation testing on ios platform using appium by Ambreen Khan
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
Ambreen Khan9K views
Automated UI Testing for Web and Native Apps on iOS and Android by Operation Mobile
Automated UI Testing for  Web and Native Apps on iOS and AndroidAutomated UI Testing for  Web and Native Apps on iOS and Android
Automated UI Testing for Web and Native Apps on iOS and Android
Operation Mobile16.2K views
Automation Testing With Appium by Knoldus Inc.
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
Knoldus Inc.5.3K views
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar by Bitbar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on WebinarParallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
Bitbar15.1K views
Appium workshop technopark trivandrum by Syam Sasi
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
Syam Sasi1.4K views
Top Best Practices for Successful Mobile Test Automation by Fred Beringer
Top Best Practices for Successful Mobile Test AutomationTop Best Practices for Successful Mobile Test Automation
Top Best Practices for Successful Mobile Test Automation
Fred Beringer12.7K views

Similar to Mobile App Testing ScanAgile 2012

Challenges in mobile test automation - 2011 by
Challenges in mobile test automation - 2011Challenges in mobile test automation - 2011
Challenges in mobile test automation - 2011Daniel Knott
181 views28 slides
Resume jyoti gupta by
Resume jyoti guptaResume jyoti gupta
Resume jyoti guptaEr Jyoti Gupta
1.2K views4 slides
Everything You Need to Know About Testing Foldable Phones by
Everything You Need to Know About Testing Foldable PhonesEverything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable PhonesPerfecto by Perforce
287 views27 slides
Tools and Techniques for mobile learning by
Tools and Techniques for mobile learningTools and Techniques for mobile learning
Tools and Techniques for mobile learninggeoff stead
3.8K views38 slides
Sogeti - Android tech track presentation - 24 february 2011 by
Sogeti - Android tech track presentation - 24 february 2011Sogeti - Android tech track presentation - 24 february 2011
Sogeti - Android tech track presentation - 24 february 2011Kenneth van Rumste
869 views46 slides
How to Scale Mobile Testing Across Several Teams by
How to Scale Mobile Testing Across Several TeamsHow to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several TeamsDaniel Knott
1.1K views51 slides

Similar to Mobile App Testing ScanAgile 2012(20)

Challenges in mobile test automation - 2011 by Daniel Knott
Challenges in mobile test automation - 2011Challenges in mobile test automation - 2011
Challenges in mobile test automation - 2011
Daniel Knott181 views
Everything You Need to Know About Testing Foldable Phones by Perfecto by Perforce
Everything You Need to Know About Testing Foldable PhonesEverything You Need to Know About Testing Foldable Phones
Everything You Need to Know About Testing Foldable Phones
Tools and Techniques for mobile learning by geoff stead
Tools and Techniques for mobile learningTools and Techniques for mobile learning
Tools and Techniques for mobile learning
geoff stead3.8K views
Sogeti - Android tech track presentation - 24 february 2011 by Kenneth van Rumste
Sogeti - Android tech track presentation - 24 february 2011Sogeti - Android tech track presentation - 24 february 2011
Sogeti - Android tech track presentation - 24 february 2011
Kenneth van Rumste869 views
How to Scale Mobile Testing Across Several Teams by Daniel Knott
How to Scale Mobile Testing Across Several TeamsHow to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several Teams
Daniel Knott1.1K views
Mobile Application Testing - White Paper by Jade Global
Mobile Application Testing - White PaperMobile Application Testing - White Paper
Mobile Application Testing - White Paper
Jade Global77 views
Bit2go marketing 100511 by Hanan Zakai
Bit2go marketing 100511Bit2go marketing 100511
Bit2go marketing 100511
Hanan Zakai237 views
Build once deploy everywhere using the telerik platform by Aspenware
Build once deploy everywhere using the telerik platformBuild once deploy everywhere using the telerik platform
Build once deploy everywhere using the telerik platform
Aspenware1.4K views
Kiran Bashyam_QA_ Resume by kiran B
Kiran Bashyam_QA_ ResumeKiran Bashyam_QA_ Resume
Kiran Bashyam_QA_ Resume
kiran B203 views
Rup Sankar Resume by Rupe sankar
Rup Sankar ResumeRup Sankar Resume
Rup Sankar Resume
Rupe sankar271 views
How to make sure your App isnt CrApp by Christian Cook
How to make sure your App isnt CrAppHow to make sure your App isnt CrApp
How to make sure your App isnt CrApp
Christian Cook740 views
UX Sofia 2012 - DIY Mobile Usability Testing Workshop by Belen Barros Pena
UX Sofia 2012 - DIY Mobile Usability Testing WorkshopUX Sofia 2012 - DIY Mobile Usability Testing Workshop
UX Sofia 2012 - DIY Mobile Usability Testing Workshop
Belen Barros Pena2.7K views

More from Daniel Knott

Remote Leadership by
Remote LeadershipRemote Leadership
Remote LeadershipDaniel Knott
17 views25 slides
How To Grow Your Testing Team Members by
How To Grow Your Testing Team MembersHow To Grow Your Testing Team Members
How To Grow Your Testing Team MembersDaniel Knott
21 views26 slides
Softskills Software Testers by
Softskills Software TestersSoftskills Software Testers
Softskills Software TestersDaniel Knott
76 views16 slides
From Testing to Product Management by
From Testing to Product ManagementFrom Testing to Product Management
From Testing to Product ManagementDaniel Knott
334 views31 slides
Mobile Testautomatisierung by
Mobile TestautomatisierungMobile Testautomatisierung
Mobile TestautomatisierungDaniel Knott
196 views37 slides
Mobile Testautomatisierung mit Robotium by
Mobile Testautomatisierung mit RobotiumMobile Testautomatisierung mit Robotium
Mobile Testautomatisierung mit RobotiumDaniel Knott
184 views33 slides

More from Daniel Knott(16)

How To Grow Your Testing Team Members by Daniel Knott
How To Grow Your Testing Team MembersHow To Grow Your Testing Team Members
How To Grow Your Testing Team Members
Daniel Knott21 views
Softskills Software Testers by Daniel Knott
Softskills Software TestersSoftskills Software Testers
Softskills Software Testers
Daniel Knott76 views
From Testing to Product Management by Daniel Knott
From Testing to Product ManagementFrom Testing to Product Management
From Testing to Product Management
Daniel Knott334 views
Mobile Testautomatisierung by Daniel Knott
Mobile TestautomatisierungMobile Testautomatisierung
Mobile Testautomatisierung
Daniel Knott196 views
Mobile Testautomatisierung mit Robotium by Daniel Knott
Mobile Testautomatisierung mit RobotiumMobile Testautomatisierung mit Robotium
Mobile Testautomatisierung mit Robotium
Daniel Knott184 views
Agile Mobile Test Automatisierung by Daniel Knott
Agile Mobile Test AutomatisierungAgile Mobile Test Automatisierung
Agile Mobile Test Automatisierung
Daniel Knott174 views
How to scale mobile testing across several teams by Daniel Knott
How to scale mobile testing across several teamsHow to scale mobile testing across several teams
How to scale mobile testing across several teams
Daniel Knott280 views
10 Mobile App Testing Mistakes To Avoid by Daniel Knott by Daniel Knott
10 Mobile App Testing Mistakes To Avoid by Daniel Knott10 Mobile App Testing Mistakes To Avoid by Daniel Knott
10 Mobile App Testing Mistakes To Avoid by Daniel Knott
Daniel Knott662 views
Mobile testing @ XING - Ist der Release Train pünktlich by Daniel Knott
Mobile testing @ XING - Ist der Release Train pünktlichMobile testing @ XING - Ist der Release Train pünktlich
Mobile testing @ XING - Ist der Release Train pünktlich
Daniel Knott1K views
Mobile testing @ stughh by Daniel Knott
Mobile testing @ stughhMobile testing @ stughh
Mobile testing @ stughh
Daniel Knott1.5K views
8 Jahre Agiles Testen - Was kommt jetzt? by Daniel Knott
8 Jahre Agiles Testen - Was kommt jetzt?8 Jahre Agiles Testen - Was kommt jetzt?
8 Jahre Agiles Testen - Was kommt jetzt?
Daniel Knott1.9K views
Hands-On Mobile App Testing by Daniel Knott
Hands-On Mobile App TestingHands-On Mobile App Testing
Hands-On Mobile App Testing
Daniel Knott3K views
How to Break your App - Workshop - Testbash 2015 by Daniel Knott
How to Break your App - Workshop - Testbash 2015How to Break your App - Workshop - Testbash 2015
How to Break your App - Workshop - Testbash 2015
Daniel Knott2.5K views
How to Break your App - Best Practices in Mobile App Testing by Daniel Knott
How to Break your App - Best Practices in Mobile App TestingHow to Break your App - Best Practices in Mobile App Testing
How to Break your App - Best Practices in Mobile App Testing
Daniel Knott8.1K views
Best Practices in Mobile App Testing @STUGRM by Daniel Knott
Best Practices in Mobile App Testing @STUGRMBest Practices in Mobile App Testing @STUGRM
Best Practices in Mobile App Testing @STUGRM
Daniel Knott1.4K views

Recently uploaded

Proposal Presentation.pptx by
Proposal Presentation.pptxProposal Presentation.pptx
Proposal Presentation.pptxkeytonallamon
67 views36 slides
Design_Discover_Develop_Campaign.pptx by
Design_Discover_Develop_Campaign.pptxDesign_Discover_Develop_Campaign.pptx
Design_Discover_Develop_Campaign.pptxShivanshSeth6
49 views20 slides
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth by
BCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for GrowthBCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for Growth
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for GrowthInnomantra
15 views4 slides
Web Dev Session 1.pptx by
Web Dev Session 1.pptxWeb Dev Session 1.pptx
Web Dev Session 1.pptxVedVekhande
17 views22 slides
SUMIT SQL PROJECT SUPERSTORE 1.pptx by
SUMIT SQL PROJECT SUPERSTORE 1.pptxSUMIT SQL PROJECT SUPERSTORE 1.pptx
SUMIT SQL PROJECT SUPERSTORE 1.pptxSumit Jadhav
22 views26 slides
Global airborne satcom market report by
Global airborne satcom market reportGlobal airborne satcom market report
Global airborne satcom market reportdefencereport78
6 views13 slides

Recently uploaded(20)

Design_Discover_Develop_Campaign.pptx by ShivanshSeth6
Design_Discover_Develop_Campaign.pptxDesign_Discover_Develop_Campaign.pptx
Design_Discover_Develop_Campaign.pptx
ShivanshSeth649 views
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth by Innomantra
BCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for GrowthBCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for Growth
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth
Innomantra 15 views
Web Dev Session 1.pptx by VedVekhande
Web Dev Session 1.pptxWeb Dev Session 1.pptx
Web Dev Session 1.pptx
VedVekhande17 views
SUMIT SQL PROJECT SUPERSTORE 1.pptx by Sumit Jadhav
SUMIT SQL PROJECT SUPERSTORE 1.pptxSUMIT SQL PROJECT SUPERSTORE 1.pptx
SUMIT SQL PROJECT SUPERSTORE 1.pptx
Sumit Jadhav 22 views
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf by AlhamduKure
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdfASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf
AlhamduKure8 views
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx by lwang78
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
lwang78180 views
REACTJS.pdf by ArthyR3
REACTJS.pdfREACTJS.pdf
REACTJS.pdf
ArthyR337 views
Design of machine elements-UNIT 3.pptx by gopinathcreddy
Design of machine elements-UNIT 3.pptxDesign of machine elements-UNIT 3.pptx
Design of machine elements-UNIT 3.pptx
gopinathcreddy37 views
Créativité dans le design mécanique à l’aide de l’optimisation topologique by LIEGE CREATIVE
Créativité dans le design mécanique à l’aide de l’optimisation topologiqueCréativité dans le design mécanique à l’aide de l’optimisation topologique
Créativité dans le design mécanique à l’aide de l’optimisation topologique
LIEGE CREATIVE8 views
_MAKRIADI-FOTEINI_diploma thesis.pptx by fotinimakriadi
_MAKRIADI-FOTEINI_diploma thesis.pptx_MAKRIADI-FOTEINI_diploma thesis.pptx
_MAKRIADI-FOTEINI_diploma thesis.pptx
fotinimakriadi12 views

Mobile App Testing ScanAgile 2012

  • 1. Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com Mobile App Testing – Challenges, Solutions and Best Practices Scandinavian Agile Conference 2012
  • 2. Daniel Knott Manager Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott has a technical background with different programming languages and quality assurance tools. After his vocational education at IBM Deutschland GmbH, he studied Computer Science with a focus on quality assurance. Since 2010 Daniel is working as a Quality Assurance Manager at XING AG. In different projects he was responsible for the test management, test automation and test execution in agile teams at XING. Currently, he works in the mobile team, where he is involved in the test management and test automation on Android and iPhone devices. Daniel likes to work in agile software development teams and to automate test cases using technologies such as Robotium, KIF (Keep It Functional), Selenium and Java. XING profile: https://www.xing.com/profile/Daniel_Knott. Blog: http://www.adventuresinqa.com
  • 3. 1.  XING AG 2.  Why mobile testing? 3.  Challenges 4.  Solutions 5.  Best Practices What’s inside? 2Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 4. 3Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 XING AG  www.xing.com  Business Social Network  Located in Hamburg  > 11.7 Mio. Members  ~20% Mobile Traffic
  • 5. XING AG 4Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 6. XING AG 5Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 Releases 50
  • 7. XING AG 6Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 8. 7Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 Why mobile testing?
  • 9. Why mobile testing? 8Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 10. Why mobile testing? 9Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 App  installa*on  is  failing   Layout  problems   Problems  with  Landscape  /  Portrait  Mode   Wrong  transla*on   Missing  ressources   No  connec*on  to  backend  
  • 11. 10Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 Challenges
  • 12. Challenges – Platforms 11Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 13. Challenges – Platforms 12Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 More  than  one  Vendor   Different  User  Interfaces   Different  Hardware   Different  SoFware  Versions   One  Vendor   Different  Hardware   Different  SoFware  Versions  
  • 14. Challenges – I18N 13Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 15. Challenges – Carrier Network 14Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 16. 15Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 Solution – Test Automation
  • 17. Solution – Robotium 16Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 Black  Box  Test  Tool   Based  on  Java  and  JUnit  3   Supports  Android  1.6  –  4.x   Simulate  User  Interac*on   Simple  Structure   Device  &  Simulator   Test  against  APK  files  
  • 18. Solution – Robotium 17Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 It‘s likeSelenium, but for AndroidTM clickOnButton(text) clickOnText(text) clickOnImage(id) clickInList(line) searchText(text) enterText(id, text) waitForActivity(name, timeout) waitForView(view)
  • 19. Solution – Robotium 18Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012  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. Solution – Robotium 19Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012  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));    }  
  • 21. Solution – Robotium 20Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012  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));    }  
  • 22. Solution – Robotium 21Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012  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));    }  
  • 23. Solution – Robotium 22Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 24. Solution – KIF (Keep It Functional) 23Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 Grey  Box  Test  Tool   Objec*ve  C   Currently  Simulator  only   Simulate  User  Interac*on   Really  Fast  &  Easy  to  integrate  
  • 25. Solution – KIF (Keep It Functional) 24Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 stepToEnterText: @”Text” stepToTapViewWithAccessibilityLabel: @”Text” stepToWaitForViewWithAccessibilityLabel: @”Text” stepToWaitForTimeInterval: 1 stepToWaitForTappableViewWithAccessibilityLabel: @”Text” stepToWaitForAbsenceOfViewWithAccessibilityLabel: @”Text” stepToTapRowInTableViewWithAccessibilityLabel: @”Text”
  • 26. Solution – KIF (Keep It Functional) 25Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 +  (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:[KIFTestStep    stepToWaitForViewWithAccessibilityLabel:LocalizedString              (@"ID_LOGIN_FAILED_MESSAGE")]];    [scenario  addStep:[KIFTestStep    stepToTapViewWithAccessibilityLabel:LocalizedString  (@"ACC_FIELD_USER_NAME_LOGIN")]];  
  • 27. Solution – KIF (Keep It Functional) 26Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 +  (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:[KIFTestStep    stepToWaitForViewWithAccessibilityLabel:LocalizedString              (@"ID_LOGIN_FAILED_MESSAGE")]];    [scenario  addStep:[KIFTestStep    stepToTapViewWithAccessibilityLabel:LocalizedString  (@"ACC_FIELD_USER_NAME_LOGIN")]];  
  • 28. Solution – KIF (Keep It Functional) 27Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 +  (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:[KIFTestStep    stepToWaitForViewWithAccessibilityLabel:LocalizedString              (@"ID_LOGIN_FAILED_MESSAGE")]];    [scenario  addStep:[KIFTestStep    stepToTapViewWithAccessibilityLabel:LocalizedString  (@"ACC_FIELD_USER_NAME_LOGIN")]];  
  • 29. Solution – KIF (Keep It Functional) 28Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 +  (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:[KIFTestStep    stepToWaitForViewWithAccessibilityLabel:LocalizedString              (@"ID_LOGIN_FAILED_MESSAGE")]];    [scenario  addStep:[KIFTestStep    stepToTapViewWithAccessibilityLabel:LocalizedString  (@"ACC_FIELD_USER_NAME_LOGIN")]];  
  • 30. Solution – KIF (Keep It Functional) 29Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 31. 30Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 Solution – Crowd Source Testing
  • 32. Solution – Internal Beta Release 31Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 33. Solution – Crowd Source Testing 32Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 34. Solution – Cloud Testing 33Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 35. 34Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 Best Practices
  • 36. Best Practices 35Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 Know  your  customers   Write  test  automa*on   Combine  tools   Use  crowd  source  tes*ng   Don‘t  forget  the  languages   Don‘t  forget  the  carrier  network   Test  code  and  produc*on  code  in  same  language   Use  version  control  systems   Use  con*nuous  integra*on   Avoid  simulators  
  • 37. Thank you for your kind attention! The professional network www.xing.com Daniel Knott Manager Quality Assurance daniel.knott@xing.com @dnlkntt http://www.adventuresinqa.com/ 36Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012
  • 38. We are hiring 37Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012 We are looking for Ruby, Perl, Java, JavaScript, iOS, QA http://corporate.xing.com/english/company/careers-at-xing/
  • 39. Links & References 38Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012   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/]   Apkudo [http://www.apkudo.com/]   uTest [http://www.utest.com/]   Testbirds.de [http://testbirds.de/]   Testdroid [http://testdroid.com/]   Perfecto Mobile [http://www.perfectomobile.com/]   DeviceAnyWhere[http://www.keynotedeviceanywhere.com/index.aspx]
  • 40. Links & References 39Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012   Scandinavian Agile Logo [http://scan-agile.org/wp-content/themes/sac20121/images/ scan_agile_2012_gray.png]   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-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]   uTest Logo [http://upload.wikimedia.org/wikipedia/en/0/0d/UTest_company_logo.jpg]   Mob4Hire [http://www.free-press-release.com/members/members_pic/200901/img/ 1233074965.png]   Apkudo [http://www.apkudo.com/a/images/apkudo.png]   Testbirds [http://nest.testbirds.de/sites/default/files/LOGO_1.png]
  • 41. Links & References 40Mobile App Testing – Challenges, Solutions and Best Practices | Daniel Knott @dnlkntt | Helsinki, 08.03.2012   DeviceAnywhere [http://www.keynotedeviceanywhere.com/images/logo.jpg]   Perfecto Mobile Logo [http://www.perfectomobile.com/portal/export/sites/qsp/_info_/ general_image_gallery/logo.gif]   Testdroid Logo [http://beta.testdroid.com/images/logo.png]   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]