SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
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]

Contenu connexe

Tendances

Android unittesting
Android unittestingAndroid unittesting
Android unittesting
QA Club Kiev
 

Tendances (20)

Test Automation On Android Platform Using Robotium
Test Automation On Android Platform Using RobotiumTest Automation On Android Platform Using Robotium
Test Automation On Android Platform Using Robotium
 
Getting Started with XCTest and XCUITest for iOS App Testing
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
 
Android Test Automation Workshop
Android Test Automation WorkshopAndroid Test Automation Workshop
Android Test Automation Workshop
 
Robotium - sampath
Robotium - sampathRobotium - sampath
Robotium - sampath
 
Android Testing: An Overview
Android Testing: An OverviewAndroid Testing: An Overview
Android Testing: An Overview
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
 
Inside Android Testing
Inside Android TestingInside Android Testing
Inside Android Testing
 
Automated UI Testing for Web and Native Apps on iOS and Android
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
 
Automated UI Testing Frameworks
Automated UI Testing FrameworksAutomated UI Testing Frameworks
Automated UI Testing Frameworks
 
Automation Testing With Appium
Automation Testing With AppiumAutomation Testing With Appium
Automation Testing With Appium
 
Appium solution
Appium solutionAppium solution
Appium solution
 
Android Studio vs. ADT
Android Studio vs. ADTAndroid Studio vs. ADT
Android Studio vs. ADT
 
Parallel Test Runs with Appium on Real Mobile Devices – Hands-on Webinar
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
 
#Fame case study
#Fame case study#Fame case study
#Fame case study
 
Android development session 5 - Debug android studio
Android development   session 5 - Debug android studioAndroid development   session 5 - Debug android studio
Android development session 5 - Debug android studio
 
Android unittesting
Android unittestingAndroid unittesting
Android unittesting
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
 
Appium overview
Appium overviewAppium overview
Appium overview
 
Monkey Talk
Monkey TalkMonkey Talk
Monkey Talk
 
Top Best Practices for Successful Mobile Test Automation
Top Best Practices for Successful Mobile Test AutomationTop Best Practices for Successful Mobile Test Automation
Top Best Practices for Successful Mobile Test Automation
 

Similaire à Mobile App Testing ScanAgile 2012

Kiran Bashyam_QA_ Resume
Kiran Bashyam_QA_ ResumeKiran Bashyam_QA_ Resume
Kiran Bashyam_QA_ Resume
kiran B
 
Rup Sankar Resume
Rup Sankar ResumeRup Sankar Resume
Rup Sankar Resume
Rupe sankar
 

Similaire à Mobile App Testing ScanAgile 2012 (20)

Challenges in mobile test automation - 2011
Challenges in mobile test automation - 2011Challenges in mobile test automation - 2011
Challenges in mobile test automation - 2011
 
Resume jyoti gupta
Resume jyoti guptaResume jyoti gupta
Resume jyoti gupta
 
Everything You Need to Know About Testing Foldable Phones
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
Tools and Techniques for mobile learningTools and Techniques for mobile learning
Tools and Techniques for mobile learning
 
Sogeti - Android tech track presentation - 24 february 2011
Sogeti - Android tech track presentation - 24 february 2011Sogeti - Android tech track presentation - 24 february 2011
Sogeti - Android tech track presentation - 24 february 2011
 
How to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several TeamsHow to Scale Mobile Testing Across Several Teams
How to Scale Mobile Testing Across Several Teams
 
Sayanti Mondal CV
Sayanti Mondal CVSayanti Mondal CV
Sayanti Mondal CV
 
7 Essential Steps to Follow for Successful App Development.
7 Essential Steps to Follow for Successful App Development.7 Essential Steps to Follow for Successful App Development.
7 Essential Steps to Follow for Successful App Development.
 
Mobile Application Testing - White Paper
Mobile Application Testing - White PaperMobile Application Testing - White Paper
Mobile Application Testing - White Paper
 
Bit2go marketing 100511
Bit2go marketing 100511Bit2go marketing 100511
Bit2go marketing 100511
 
Build once deploy everywhere using the telerik platform
Build once deploy everywhere using the telerik platformBuild once deploy everywhere using the telerik platform
Build once deploy everywhere using the telerik platform
 
Vijay_Resume
Vijay_ResumeVijay_Resume
Vijay_Resume
 
Kotlin Script
Kotlin ScriptKotlin Script
Kotlin Script
 
Karthik_4Y_Appium
Karthik_4Y_AppiumKarthik_4Y_Appium
Karthik_4Y_Appium
 
Kiran Bashyam_QA_ Resume
Kiran Bashyam_QA_ ResumeKiran Bashyam_QA_ Resume
Kiran Bashyam_QA_ Resume
 
Rup Sankar Resume
Rup Sankar ResumeRup Sankar Resume
Rup Sankar Resume
 
CV_GOVINDARAO_V1
CV_GOVINDARAO_V1CV_GOVINDARAO_V1
CV_GOVINDARAO_V1
 
Kasi Viswanath
Kasi ViswanathKasi Viswanath
Kasi Viswanath
 
How to make sure your App isnt CrApp
How to make sure your App isnt CrAppHow to make sure your App isnt CrApp
How to make sure your App isnt CrApp
 
Madhusmita mohanty_MohantyCV
Madhusmita mohanty_MohantyCVMadhusmita mohanty_MohantyCV
Madhusmita mohanty_MohantyCV
 

Plus de Daniel Knott

Plus de Daniel Knott (17)

Remote Leadership
Remote LeadershipRemote Leadership
Remote Leadership
 
How To Grow Your Testing Team Members
How To Grow Your Testing Team MembersHow To Grow Your Testing Team Members
How To Grow Your Testing Team Members
 
Mobile Test Management Done Right
Mobile Test Management Done RightMobile Test Management Done Right
Mobile Test Management Done Right
 
Softskills Software Testers
Softskills Software TestersSoftskills Software Testers
Softskills Software Testers
 
From Testing to Product Management
From Testing to Product ManagementFrom Testing to Product Management
From Testing to Product Management
 
Mobile Testautomatisierung
Mobile TestautomatisierungMobile Testautomatisierung
Mobile Testautomatisierung
 
Mobile Testautomatisierung mit Robotium
Mobile Testautomatisierung mit RobotiumMobile Testautomatisierung mit Robotium
Mobile Testautomatisierung mit Robotium
 
Agile Mobile Test Automatisierung
Agile Mobile Test AutomatisierungAgile Mobile Test Automatisierung
Agile Mobile Test Automatisierung
 
How to scale mobile testing across several teams
How to scale mobile testing across several teamsHow to scale mobile testing across several teams
How to scale mobile testing across several teams
 
10 Mobile App Testing Mistakes To Avoid 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
 
Mobile testing @ XING - Ist der Release Train pünktlich
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
 
Mobile testing @ stughh
Mobile testing @ stughhMobile testing @ stughh
Mobile testing @ stughh
 
8 Jahre Agiles Testen - Was kommt jetzt?
8 Jahre Agiles Testen - Was kommt jetzt?8 Jahre Agiles Testen - Was kommt jetzt?
8 Jahre Agiles Testen - Was kommt jetzt?
 
Hands-On Mobile App Testing
Hands-On Mobile App TestingHands-On Mobile App Testing
Hands-On Mobile App Testing
 
How to Break your App - Workshop - Testbash 2015
How to Break your App - Workshop - Testbash 2015How to Break your App - Workshop - Testbash 2015
How to Break your App - Workshop - Testbash 2015
 
How to Break your App - Best Practices in Mobile App Testing
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
 
Best Practices in Mobile App Testing @STUGRM
Best Practices in Mobile App Testing @STUGRMBest Practices in Mobile App Testing @STUGRM
Best Practices in Mobile App Testing @STUGRM
 

Dernier

Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Dr.Costas Sachpazis
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
Tonystark477637
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Christo Ananth
 

Dernier (20)

Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
Structural Analysis and Design of Foundations: A Comprehensive Handbook for S...
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service NashikCall Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
Call Girls Service Nashik Vaishnavi 7001305949 Independent Escort Service Nashik
 
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptxBSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
BSides Seattle 2024 - Stopping Ethan Hunt From Taking Your Data.pptx
 
Extrusion Processes and Their Limitations
Extrusion Processes and Their LimitationsExtrusion Processes and Their Limitations
Extrusion Processes and Their Limitations
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
Introduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptxIntroduction and different types of Ethernet.pptx
Introduction and different types of Ethernet.pptx
 
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
The Most Attractive Pune Call Girls Manchar 8250192130 Will You Miss This Cha...
 
result management system report for college project
result management system report for college projectresult management system report for college project
result management system report for college project
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
The Most Attractive Pune Call Girls Budhwar Peth 8250192130 Will You Miss Thi...
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
Call for Papers - Educational Administration: Theory and Practice, E-ISSN: 21...
 
UNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular ConduitsUNIT-II FMM-Flow Through Circular Conduits
UNIT-II FMM-Flow Through Circular Conduits
 
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdfONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
ONLINE FOOD ORDER SYSTEM PROJECT REPORT.pdf
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 

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]