Hands-On Mobile App Testing

Daniel Knott
Daniel KnottHead of Software Testing
1
Hands-On Mobile App Testing
@dnlkntt
Who am I?
Daniel Knott
Senior Software Test Engineer Mobile
Working @ XING
Author, Blogger and Speaker
http://adventuresinqa.com
@dnlkntt
www.handsonmobileapptesting.com
Intro Beta Testing
Mobile Test Pyramid
Hands-On Mobile App Testing
F-Word
Numbers & Facts
{…}
Numbers & Facts
Numbers & Facts
3+ Million Apps available in biggest app stores
100+ Billion App downloads
+24,000* Android Devices
15** iOS Devices
80% - 90% of apps are deleted after first usage
56% of apps that require a registration gets deleted
45% of apps are not well tested
Numbers & Facts
Average user checks device 150 times a day
User expect app loading times in 2 seconds
Mobile users have very high expectations
Users are on the move
Users have usually more than one device
Users are emotionally attached to apps
Users can leave bad reviews very quickly
Numbers & Facts
Simple UseableFastItKeep
K I F S U
F-Word
F-Word
http://opensignal.com/reports/2015/08/android-fragmentation/
F-Word
http://opensignal.com/reports/2015/08/android-fragmentation/
F-Word
F-Word – Device Groups
Group 1, Prio A
• High End Devices
• Dual/ Quad Core
CPU
• RAM >2048MB
• Retina, Full HD
Display >= 5“
Group 2, Prio B
• Mid-range devices
• Dual Core CPU
• RAM <=1024MB
• Screen size < 5“
• Software not older
1 year
Group 3, Prio C
• Small devices
• Single Core
• RAM < 512MB
• Low screen size
and resolution
• Older OS, older
browser
Based on your target group
F-Word – Open Device Labs
Rent devices for free
Shared community pool of smartphones, tablets or wearables
Donate devices to support the community
http://opendevicelab.com/
F-Word – Device Clouds
Use device clouds if special devices are required
Can be used for manual and automated testing
Lots of different provider on the market
Hands-On Mobile App Testing
Hands-On Mobile App Testing – Sample
Hands-On Mobile App Testing – Sample
Speed recording requires movement
Slope tracking requires movement
Current slope information require mobile data network connection
Connection on top of the mountain vs. In the valley
Offline behavior
Mobile data roaming
Hands-On Mobile App Testing – Sample
Special clothes required for testing 
Gloves
Goggles
Weather can have influence on device and running apps
Hands-On Mobile App Testing
Author: amateur_photo_bore, http://www.flickr.com/photos/andresv/233667770/
Author: Rain Rabbit, http://www.flickr.com/photos/37996583811@N01/8033259053/
Author, Daniel Sancho, http://www.flickr.com/photos/teclasorg/2852716491/
Hands-On Mobile App Testing
Author: Surat Lozowick, http://www.flickr.com/photos/suratlozowick/4311105154/
Author: Surat Lozowick, http://www.flickr.com/photos/suratlozowick/4464587302/
Hands-On Mobile App Testing
Author: Theus Falcao, http://www.flickr.com/photos/theusfalcao/9563767145/
Android: $ adb shell monkey –p APP.PACKAGE.NAME –v 2000
iOS: UI AutoMonkey | Dixie | CrashMonkey
Hands-On Mobile App Testing
Author: minxlj, http://www.flickr.com/photos/minxlj/3270996158/
$ adb install –r YOUR_APP.apk Apple Configurator
Mobile Test Pyramid
Test Pyramid Manual
Testing
Integration Tests
Unit Tests
UI
Tests
Mobile Test Pyramid
End2End Tests
(UI Tests)
Manual Tests
Beta Tests
Unit
Test
s
Beta Testing
Beta Testing
Try to release your app as early as possible
If possible use public beta testing with real users
It is easy to create your own beta testing channel
First try to establish beta testing within your company
Beta Testing – Android Approach
Google Play Developer Console offers stage rollout
Able to setup alpha and beta releases
4 ways to establish a beta release
1. Public Beta
2. Closed Beta with Google Groups
3. Closed Beta with Google+
4. Closed Beta with eMails
Easy to integrate in the development lifecycle
Alpha releases can be used within the company
Beta Testing – Android Approach
Beta Testing – iOS Approach
iOS beta testing is not as easy as on Android
Beta testers must install TestFlight App to participate
Limited to 1,000 beta testers
Beta Tester can‘t join on their own. Invitation only
Beta App is valid for 30 days
Summary – Take Aways
Mobile users have high expectations - KIFSU
Group your devices | Device Labs | Cloud Testing
Test your app in the wild
Test the update process | Stress test your app
Keep hardware and sensors in mind
Remind the mobile test pyramid
Establish a beta testing program
http://adventuresinqa.com
@dnlkntt
Hands-On Mobile App Testing
» Numbers:
» http://offers2.compuware.com/rs/compuware/images/Mobile_App_Survey
_Report.pdf
» www.gartner.com/newsroom/id/2665715
» F-Word:
» http://opensignal.com/reports/2015/08/android-fragmentation/
» http://testdroid.com/
» https://testmunk.com/
» https://saucelabs.com/
» https://testobject.com/
» https://aws.amazon.com/de/device-farm/
» Update Testing:
» Apple Configurator: https://itunes.apple.com/de/app/apple-
configurator/id434433123?mt=12
Links & References
» Stress Testing:
» https://github.com/jonathanpenn/ui-auto-monkey
» https://github.com/Skyscanner/Dixie
» https://github.com/mokemokechicken/CrashMonkey
» Pyramid:
» https://stocksnap.io/photo/20D9C664B1
» Beta Testing:
» https://support.google.com/googleplay/android-
developer/answer/3131213
» https://developer.apple.com/library/prerelease/ios/documentation/Langua
gesUtilities/Conceptual/iTunesConnect_Guide/Chapters/BetaTestingTheA
pp.html
» https://developer.apple.com/testflight/
» Photos:
» https://stocksnap.io/
Links & References
1 von 35

Más contenido relacionado

Was ist angesagt?(20)

Mobile application testingMobile application testing
Mobile application testing
Softheme10.9K views
Advanced Mobile Testing - Ravindran AntonysamyAdvanced Mobile Testing - Ravindran Antonysamy
Advanced Mobile Testing - Ravindran Antonysamy
Ravindran Antonysamy6.4K views
Mobile application testing tutorialMobile application testing tutorial
Mobile application testing tutorial
Lokesh Agrawal1.2K views
35602787 mobile-application-testing35602787 mobile-application-testing
35602787 mobile-application-testing
praveen kumar yechuri6.2K views
iOS Application TestingiOS Application Testing
iOS Application Testing
Mreetyunjaya Daas14.2K views
 Android & iPhone App Testing Android & iPhone App Testing
Android & iPhone App Testing
SWAAM Tech24.2K views
Mobile Testing. What to do?Mobile Testing. What to do?
Mobile Testing. What to do?
QA Club Kiev2.6K views
BugzillaBugzilla
Bugzilla
Lokesh Agrawal338 views
Mobile testingMobile testing
Mobile testing
Ravindran Antonysamy1.8K views
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
Mobile UsabilityMobile Usability
Mobile Usability
Jeff Wisniewski1K views
Mobile DevTest DictionaryMobile DevTest Dictionary
Mobile DevTest Dictionary
Perfecto by Perforce586 views
My 10 Mobile Automation QuestionsMy 10 Mobile Automation Questions
My 10 Mobile Automation Questions
Ran Byron1.5K views

Similar a Hands-On Mobile App Testing(20)

Mobile Application TestingMobile Application Testing
Mobile Application Testing
Ramakrishna Telapolu8.1K views
Mobile app testingMobile app testing
Mobile app testing
sanpalan632 views
Mobile testingMobile testing
Mobile testing
sanpalan264 views
Mobile Testing Tools 101Mobile Testing Tools 101
Mobile Testing Tools 101
TechWell885 views
SmartphonesSmartphones
Smartphones
brendahj1.3K views
Wind Tunnel Introduction and Demo SlidesWind Tunnel Introduction and Demo Slides
Wind Tunnel Introduction and Demo Slides
Lizzy Guido (she/her)1.7K views
Testing Mobile Apps under Real User ConditionsTesting Mobile Apps under Real User Conditions
Testing Mobile Apps under Real User Conditions
Perfecto by Perforce2.2K views
Mobile application testingMobile application testing
Mobile application testing
Gaurav Singh2.2K views
Mobile testingMobile testing
Mobile testing
Alex Hung523 views
Checklist for andriod app testing.Checklist for andriod app testing.
Checklist for andriod app testing.
TestOrigen Software Services Pvt. Ltd.83 views
Mobile testingMobile testing
Mobile testing
Hrushikesh Wakhle278 views

Más de Daniel Knott(15)

Último(20)

Hands-On Mobile App Testing

  • 1. 1 Hands-On Mobile App Testing @dnlkntt
  • 2. Who am I? Daniel Knott Senior Software Test Engineer Mobile Working @ XING Author, Blogger and Speaker http://adventuresinqa.com @dnlkntt www.handsonmobileapptesting.com
  • 3. Intro Beta Testing Mobile Test Pyramid Hands-On Mobile App Testing F-Word Numbers & Facts {…}
  • 5. Numbers & Facts 3+ Million Apps available in biggest app stores 100+ Billion App downloads +24,000* Android Devices 15** iOS Devices 80% - 90% of apps are deleted after first usage 56% of apps that require a registration gets deleted 45% of apps are not well tested
  • 6. Numbers & Facts Average user checks device 150 times a day User expect app loading times in 2 seconds Mobile users have very high expectations Users are on the move Users have usually more than one device Users are emotionally attached to apps Users can leave bad reviews very quickly
  • 7. Numbers & Facts Simple UseableFastItKeep K I F S U
  • 12. F-Word – Device Groups Group 1, Prio A • High End Devices • Dual/ Quad Core CPU • RAM >2048MB • Retina, Full HD Display >= 5“ Group 2, Prio B • Mid-range devices • Dual Core CPU • RAM <=1024MB • Screen size < 5“ • Software not older 1 year Group 3, Prio C • Small devices • Single Core • RAM < 512MB • Low screen size and resolution • Older OS, older browser Based on your target group
  • 13. F-Word – Open Device Labs Rent devices for free Shared community pool of smartphones, tablets or wearables Donate devices to support the community http://opendevicelab.com/
  • 14. F-Word – Device Clouds Use device clouds if special devices are required Can be used for manual and automated testing Lots of different provider on the market
  • 16. Hands-On Mobile App Testing – Sample
  • 17. Hands-On Mobile App Testing – Sample Speed recording requires movement Slope tracking requires movement Current slope information require mobile data network connection Connection on top of the mountain vs. In the valley Offline behavior Mobile data roaming
  • 18. Hands-On Mobile App Testing – Sample Special clothes required for testing  Gloves Goggles Weather can have influence on device and running apps
  • 19. Hands-On Mobile App Testing Author: amateur_photo_bore, http://www.flickr.com/photos/andresv/233667770/ Author: Rain Rabbit, http://www.flickr.com/photos/37996583811@N01/8033259053/ Author, Daniel Sancho, http://www.flickr.com/photos/teclasorg/2852716491/
  • 20. Hands-On Mobile App Testing Author: Surat Lozowick, http://www.flickr.com/photos/suratlozowick/4311105154/ Author: Surat Lozowick, http://www.flickr.com/photos/suratlozowick/4464587302/
  • 21. Hands-On Mobile App Testing Author: Theus Falcao, http://www.flickr.com/photos/theusfalcao/9563767145/ Android: $ adb shell monkey –p APP.PACKAGE.NAME –v 2000 iOS: UI AutoMonkey | Dixie | CrashMonkey
  • 22. Hands-On Mobile App Testing Author: minxlj, http://www.flickr.com/photos/minxlj/3270996158/ $ adb install –r YOUR_APP.apk Apple Configurator
  • 24. Test Pyramid Manual Testing Integration Tests Unit Tests UI Tests
  • 25. Mobile Test Pyramid End2End Tests (UI Tests) Manual Tests Beta Tests Unit Test s
  • 27. Beta Testing Try to release your app as early as possible If possible use public beta testing with real users It is easy to create your own beta testing channel First try to establish beta testing within your company
  • 28. Beta Testing – Android Approach Google Play Developer Console offers stage rollout Able to setup alpha and beta releases 4 ways to establish a beta release 1. Public Beta 2. Closed Beta with Google Groups 3. Closed Beta with Google+ 4. Closed Beta with eMails Easy to integrate in the development lifecycle Alpha releases can be used within the company
  • 29. Beta Testing – Android Approach
  • 30. Beta Testing – iOS Approach iOS beta testing is not as easy as on Android Beta testers must install TestFlight App to participate Limited to 1,000 beta testers Beta Tester can‘t join on their own. Invitation only Beta App is valid for 30 days
  • 31. Summary – Take Aways Mobile users have high expectations - KIFSU Group your devices | Device Labs | Cloud Testing Test your app in the wild Test the update process | Stress test your app Keep hardware and sensors in mind Remind the mobile test pyramid Establish a beta testing program
  • 34. » Numbers: » http://offers2.compuware.com/rs/compuware/images/Mobile_App_Survey _Report.pdf » www.gartner.com/newsroom/id/2665715 » F-Word: » http://opensignal.com/reports/2015/08/android-fragmentation/ » http://testdroid.com/ » https://testmunk.com/ » https://saucelabs.com/ » https://testobject.com/ » https://aws.amazon.com/de/device-farm/ » Update Testing: » Apple Configurator: https://itunes.apple.com/de/app/apple- configurator/id434433123?mt=12 Links & References
  • 35. » Stress Testing: » https://github.com/jonathanpenn/ui-auto-monkey » https://github.com/Skyscanner/Dixie » https://github.com/mokemokechicken/CrashMonkey » Pyramid: » https://stocksnap.io/photo/20D9C664B1 » Beta Testing: » https://support.google.com/googleplay/android- developer/answer/3131213 » https://developer.apple.com/library/prerelease/ios/documentation/Langua gesUtilities/Conceptual/iTunesConnect_Guide/Chapters/BetaTestingTheA pp.html » https://developer.apple.com/testflight/ » Photos: » https://stocksnap.io/ Links & References

Hinweis der Redaktion

  1. - Based on some numbes & facts I want to show you how big, important and challenging mobile testing can be
  2. - iOS Devices iPad 2 – iPad Pro (7 devices), iPhone 4S – iPhone 6S+ (8 devices)
  3. The fact that mobile user have a very high expectation to mobile apps I created my own principle inspired by the KISS principle Keep it Stupid Simple I created KIFSU to keep mobile user expectations in mind
  4. I think you have a glue what is behind the F-Word 
  5. We all know the problem called fragmentation Several manufacturer and OS version: +24,000 Android Devices
  6. Is now the case also for iOS: 15 iOS Devices Don‘t want to dive into this topic. But I will provide you with some ideas to handle the fragmentation problem.
  7. First Don‘t buy all devices Not necessary
  8. One solution can be: Mobile Device Groups Gather information about your customer Create e.g. 3 groups with specific properties and priority Add device to this groups When testing, test only on devices from this group Everything should based on your target group The same grouping can be applied for mobile web applications e.g. for the different browser.
  9. Another approach can be Open Device Labs Who knows the concept of ODLs? Raise your hand
  10. If you don‘t want or can‘t buy many test devices cloud testing would be an alternative for you Can be used for manual as well as test automation Several provider available on the market. Just to name some of them.
  11. First lets have a look at a sample Then to some more important mobile specific testing
  12. Lets start with a short example Imagine you have to test a app for snowboarders or skiers that offers functionality like App offers speed recording, tracking and sharing KLICK Slope information KLICK Current weather based on location KLIC This example should show you, that Mobile Testing requires in the wild testing! Sure you can test in lab situation but let me show you why
  13. Recording and tracking can only be done with real movement! Sure you somehow simulate this in a lab but you will problably find problems on the slope Think about mobile data networks A snowboarder is not constantly boarding down the hill, they sit on the slope. Different speeds etc.
  14. Slope information require mobile network In the mountains there might be no or only slow network connection Test in the valley as well as on top of the mountain and see how the app behaves Check offline behavior What about data roaming!?
  15. Again current weather data requires mobile network Bad weather like sunny sky, cloudy or heavy snow can and will have an impact to your app e.g. in usability There is another big big problem that you should keep in mind. The app will be used in special clothes Gloves with or without touch device support Cold fingers!! Or Googgles or sun classes with different colored screens. Have a huge impact to usabilit This was an extreme example but should show you to never underestimate in the wild testing Have the use cases in mind while testing.
  16. 1. Camera. Different Vendors == different cameras and resolutions. Even in iPhones different cameras are installed 2. Test the sensors that are used by your app. Tilt sensors, motion sensor, light sensor, shake the phone etc. GPS testing, check that used GPS is released by the app again to save battery 3. Memory, test if your app can be stored on sdk card on android. Test how your app behave when the local phone storage empty, full is  no crashes? Proper error message? Put lots of data to your device and see how it behaves
  17. 1. Test the battery consumption of your app. Charge the app before testing to 100% and mesaure every 10 minutes the current battery state Use tools for measure the battery. There are some tools on the market. Also use an nearyl empty phone for testing and see how the app is performing. Some phones switch off some sensors to save battery, can your app work with that? 2. Start the app and leave the phone in standby mode, open the app again, is the app still working? Maybe triggering a reload to get the latest data from the backend Start the app from multitask  switch off the network  plane mode!?
  18. Test different interrupt  notifications, incomming sms, mms, phone call usw. If your app supports push notifications open the app and send a push notification check the handling. Use tools like JouleUnit (Android) On iOS use the Energy Usage Function of Instruments Monkey for Android to stresstest your app and see the handling of the interrupts UI AutoMonkey for ios
  19. 1. Test the update process of your app Check that user is still logged in Check that data is still the same Check that database changes will not affect the current data Test the update from an older version to the current version
  20. Now that you know more specific mobile testing topics I want to talk about the testing pyramid
  21. We all know the typical test pyramid created by Mike Cohn when it comes to test automation The pyramid is not aligned to mobile and the mobile test automation tools and the whole approach Unit testing might not be easy on mobile There are lots of interfaces, APIs that needs to mocked which might not be effective or way too time consuming Tools are not vary mature in the mobile test automation business and still manual testing is very important The fact that mobile testing requires lots of manual testing in the wild. I adapted the Test pyramid to fit the current needs.
  22. Therefore I created the mobile test pyramid, which is flexible in the different layers Manual testing is the foundation of all. As we have seen in the sample, this can‘t be automated! Some of you might think this is wrong, but the reality has shown to me that manual testing is highly required in mobile projects! Next level is the end2end test level Beta testing which is very important And the top of the pyramid there is unit testing. However, Depending on the App you can also swap die entries Unit, Beta and E2E Tests I am using this pyramid in my projects and within the team to keep the layers in mind.
  23. The last topic for today is beta testing How many of you have a beta testing approach in place? Please raise your hands
  24. If you have nothing in place. Start simple. Try to establish beta testing within your company among your colleagues Easy because no NDA, easy app distribution and easy feedback management Depending on the company size this can be already a great way to gather early feedback from users If possible try to establish also a beta testing group Real users Fresh set of eyes Provide direct and sometimes harsh feedback, but this is good Is not that hard to create a beta testing programm.
  25. For Android Apps it is pretty easy to setup the beta testing Within the google dev console you have the possibility to go with the stage rollout In the stages you can use alpha releases or beta releases If you want to establish a beta testing group you have 4 ways to do that The beta testing is easy to integrate in the development lifecycle Here is the workflow
  26. If you go with the closed approach you can use either mail, G+ or Google Groups Invite people to the beta programm and send them a testing URL to the play store They have to click Become a tester and thats it Now they will get an play store update with the current beta version Note: Beta tester can‘t rate the app in the play store It is highly recommended to establish a beta testing community where you can exchange with your testers. Keep confidential stuff in mind before submitting
  27. iOS apps can also be beta tested but is not that easy as on Android You can e.g. use Testflight to distribute the beta app to testers but with limitations Only 1000 beta testers Testers can‘t join themselves only invite Beta testing only for 30 days For iOS it also recommended to apply the community management to ask beta testers specific questions and to provide them with a channel where they can leave their comments or feedback.
  28. That‘s it, Thank you very much for your attention. If you have questions now is the right time for it.