Upgrade to Pro — share decks privately, control downloads, hide ads and more …

iOS testing from top to bottom

iOS testing from top to bottom

Presentation from AADays 2017

Avatar for Kamil Pyć

Kamil Pyć

October 10, 2017

Other Decks in Programming

Transcript

  1. 5 1. Static analysis 2. Mutation testing 3. Snapshot tests

    4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
  2. 6 1. Static analysis 2. Mutation testing 3. Snapshot tests

    4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
  3. 11 1. enforce Swift style and conventions 2. detect code

    smells 3. apply custom rules https://github.com/realm/SwiftLint Problem 1: Crash on production caused by force unwrapping Solution: SwiftLint
  4. 13

  5. 14 1. Static analysis 2. Mutation testing 3. Snapshot tests

    4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
  6. 18 1. modify your source code 2. run tests 3.

    check if tests failed Problem 2: Evergreen unit tests Solution: Mutation testing
  7. 19

  8. 20 1. Static analysis 2. Mutation testing 3. Snapshot tests

    4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
  9. 26 1. Static analysis 2. Mutation testing 3. Snapshot tests

    4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
  10. 28 Problem 4: Predicting consequences of change Solution: Functional tests

    1. functional UI tests 2. separate target 3. monitoring change
  11. 29

  12. 30 1. Static analysis 2. Mutation testing 3. Snapshot tests

    4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
  13. 36 1. Static analysis 2. Mutation testing 3. Snapshot tests

    4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
  14. 39 1. Static analysis 2. Mutation testing 3. Snapshot tests

    4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
  15. 44

  16. 45 1. Static analysis 2. Mutation testing 3. Snapshot tests

    4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
  17. We released app update to AppStore We didn’t see any

    significant crashes in Crashlytics 46 https://fabric.io/kits/ios/crashlytics Problem 8:
  18. We released app update to AppStore We didn’t see any

    significant crashes in Crashlytics Then we saw this comment on AppStore... 47 Problem 8:
  19. 51 1. data-based decisions 2. priority and severity of bug

    3. access to analytical data to team members Problem 8: Decision making Solution: Make use of app analytical data
  20. 54 1. Static analysis 2. Mutation testing 3. Snapshot tests

    4. Functional tests Tests are like onions 5. Continuous integration 6. Phased release 7. AB Tests 8. Application analytics
  21. 57 Thank you for your attention See you at the

    panel discussion “Assuring quality in mobile app development” 14:15-15:30