Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Automated UI Testing for Web and Native Apps on iOS and Android


Published on

How to automate UI tests for Web and Native Apps on iOS and Android

Published in: Technology

Automated UI Testing for Web and Native Apps on iOS and Android

  1. 1. Automated UI Testing forWeb and Native Apps oniOS and Android Operation Mobile
  2. 2. What I’ll be covering What are automated UI tests and why should you care? How to test mobile web apps How to test native Android apps Common automation test pitfalls How to pick a test framework The future and how to test native iOS apps Operation Mobile
  3. 3. The difference between unit and automationtestsPerforming actions on a userinterface (UI)Automated UI tests are done ata higher level than unit tests Operation Mobile
  4. 4. All that matters is the total is what we expect Operation Mobile
  5. 5. We will be automating UI tests for a calculator 1. Can add two numbers together Given the user enters 1 and 2 When the user touches calculate Then the total should be 3 2. Can clear the screen Given the user enters 1 and 2 When the user touches clear Then the first number should be blank And the second number should be blank And the total should be 0 Operation Mobile
  6. 6. Why do automated UI testing for mobile apps?Design and marketing will get you usersBut if an app doesn’t function properlyUsers might give one star ratings and won’trecommend it Operation Mobile
  7. 7. Each new function = something else to testiCalc v1 iCalc v2 iCalc v3 iCalc v4 Add  Add  Add  Add Clear  Clear  Clear  Clear  Subtract  Subtract  Subtract  Multiply  Multiply  Divide Operation Mobile
  8. 8. Each new view = somewhere else to test Operation Mobile
  9. 9. Will you really remember to test everything? Because you decide to go on holiday for a while... around the world You developed another app You’re human Operation MOBILE
  10. 10. But I never changed that bit... Forgot that something else also used that code Made an accidental typo because you’re human Operation Mobile
  11. 11. What about if you work in a team? Do you know how to test what each other have done? Operation Mobile
  12. 12. Automated UI tests can run on multiple devices Run the same tests for tablet and phone using simulator saving you time Run different tests for tablet and phone using simulator saving you time and remembering what to test on what device Operation Mobile
  13. 13. Automated UI tests can target SDKs Run tests for older version for backwards compatibility saving you time Run tests on newer versions to give you a heads up Operation Mobile
  14. 14. Automated UI tests vs. QA Never be as good as having a (good) QA But will be cheaper And faster Operation Mobile
  15. 15. On the subject of cost automated UI testing is... Every framework I’ll be showing you is open source Operation Mobile
  16. 16. Automating UI tests for Web Apps Selenium - Operation Mobile
  17. 17. How Selenium works Install and run iWebDriver application onto the device. This runs a webserver which listens for commands... which you send from your computer. Similar to using a remote control. Operation Mobile
  18. 18. Automated UI tests for web apps using Selenium Watch this video on YouTube - Operation Mobile
  19. 19. Same for Android Follow the instructions here: Install an APK instead of an APP Set up port forwarding Operation Mobile
  20. 20. Automated UI tests for native Android appsThe good news is... A UI Automation test framework already comes with the Android SDK But we are not going to use it (directly anyway) because... Operation Mobile
  21. 21. Robotium is the best way to test Android Apps Robotium Uses the Android test framework and solves a very important issue... Operation Mobile
  22. 22. Can deal with tests running faster than UI threads Your UI test can perform actions faster than you can but... that means it will expect something to happen faster the UI finishes its task Robotium is clever enough to wait for things to happen – no sleeps required! Operation Mobile
  23. 23. Why use Robotium instead of standard SDK Robotium uses Solo, which allows to simulate gestures Active community to help if you get stuck Gets updated more often than Android SDK Operation Mobile
  24. 24. Automating Android native apps using Robotium Watch this video on YouTube - Operation Mobile
  25. 25. Common pitfalls of automated UI testing Too many unnecessary tests that don’t add value e.g. testing the SDK Fragile tests use position index, hierarchy in layout etc. Too many changes in one go Over reliance on one person – he’s the <insert role> guy Operation Mobile
  26. 26. How to pick the right framework Get your hands dirty and try it out Good learning resources Good community support Does it have ‘most’ of the functionality you require? Operation Mobile
  27. 27. The future... So far all tests you’ve seen look like they’ve been written by developers... but we’re testing at a higher level than unit tests... because we’re testing behaviour (BDD) So why can’t our tests be written in English? Operation Mobile
  28. 28. Calculator tests in EnglishScenario: Can add two numbers togetherWhen I type "1" into "firstNumber“And I type "2" into "secondNumber"And I touch the "Calculate" buttonThen the total should be 3Scenario: Can clear all fieldsWhen I type "1" into "firstNumber"And I type "2" into "secondNumber"And I touch the "Clear" buttonThen the total should be 0And the "firstNumber" should be emptyAnd the "secondNumber" should be empty Operation Mobile
  29. 29. Frank + Cucumber + UISpec makes this possible Frank - (By Universal Studios (Frankenstein promotional photo) [Public domain], via Wikimedia Commons) Uses Cucumber and UISpec to run scenarios as automated UI tests Cucumber uses Ruby to convert text into code But lots of built in steps for you to use e.g. When I touch <UI Element> Operation Mobile
  30. 30. Automated UI tests for iOS native apps with Frank Watch this video on YouTube - Operation Mobile
  31. 31. Why automate UI tests using scenarios? Perfect match for storyboards (new in iOS 5) And because they can be converted in into Objective C, Java etc... The same scenario could be used test the same app on iOS, Android, Windows, Balckberry etc. Operation Mobile
  32. 32. To conclude… Get your hands dirty and try it out Operation Mobile