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

Making Friends With QA - Mobile Central Europe, Warsaw, Poland, June 2018

Making Friends With QA - Mobile Central Europe, Warsaw, Poland, June 2018

My talk trying to convince developers to make friends with Quality Assurance.

Abstract:
Quality Assurance can be a controversial subject for mobile developers: Some developers (and companies) feel that it’s unnecessary with the advent of automated testing, some feel like QA people can be endlessly nitpicky and unnecessarily delay releases, and some people use it as an excuse to not test the things they’ve added. However, QA can (and I argue, should) be your best friend in getting a usable app with minimal bugs out the door. Learn about the different types of QA, bringing in your first QA person, setting up a QA pipeline, and how to combine automated tests with humans poking at your app to have extra confidence in your releases.

Ellen Shapiro
PRO

June 06, 2018
Tweet

More Decks by Ellen Shapiro

Other Decks in Technology

Transcript

  1. Making Friends
    with QA
    Mobile Central Europe | Warsaw, Poland | June 2018
    bakkenbaeck.com | justhum.com | @DesignatedNerd

    View Slide

  2. What is quality?

    View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. Does it work for
    your users?

    View Slide

  8. What is QA?

    View Slide

  9. What is QA?
    (*in the context of mobile software development)

    View Slide

  10. Project managers

    View Slide

  11. "The people who make sure
    we never ship bugs"

    View Slide

  12. "The people who prevent us
    from hitting deadlines"

    View Slide

  13. Developers

    View Slide

  14. "The people who
    break my app"

    View Slide

  15. Nitpickers

    View Slide

  16. The last barrier between you
    and something being messed up
    for your users

    View Slide

  17. View Slide

  18. "The people who
    save my ass"

    View Slide

  19. View Slide

  20. View Slide

  21. QA Engineers

    View Slide

  22. What does a QA Engineer do?

    View Slide

  23. Tries to use your app

    View Slide

  24. Tells you how they broke it
    so you can fix it

    View Slide

  25. Project Manager Bug Ticket
    → I can't log in

    View Slide

  26. New QA Engineer Bug Ticket
    → I went to the login screen
    → I entered valid credentials
    → I tapped on the sign in button
    → It looked like it was logging in, but nothing
    happened

    View Slide

  27. Experienced QA Engineer Bug Ticket
    → On a build pointed at the staging server
    → I went to the login screen
    → I entered valid credentials [[email protected]/p4$$w0rd]
    → I tapped on the sign in button
    → The loading indicator appeared, then disappeared
    → I was not logged in and no error was displayed
    → Devices tested: iPhone X (11.4.1), iPhone 6 (10.3.3)

    View Slide

  28. What is this app
    supposed to do?

    View Slide

  29. Test Plans

    View Slide

  30. Look at the whole app

    View Slide

  31. Keep looking at
    the whole app

    View Slide

  32. How important is
    shipping new functionality
    vs
    not breaking existing functionality

    View Slide

  33. Types of QA Testing

    View Slide

  34. Manual Testing

    View Slide

  35. View Slide

  36. Software Testing

    View Slide

  37. "We don't need QA.
    Our developers write
    automated tests!"

    View Slide

  38. View Slide

  39. Tests are a good start

    View Slide

  40. What kind of automated
    tests do you have?

    View Slide

  41. Unit Tests

    View Slide

  42. Unit Tests
    Limit: Only tests that pieces work in isolation

    View Slide

  43. Integration Tests

    View Slide

  44. Integration Tests
    Limit: Only tests that specific pieces work together

    View Slide

  45. UI Tests

    View Slide

  46. UI Tests
    Limit: Only tests that the UI responds
    the way the developer wants it to

    View Slide

  47. View Slide

  48. Humans and robots
    find different issues

    View Slide

  49. Humans are weird

    View Slide

  50. Humans tap on
    all sorts of things
    you don't expect them to

    View Slide

  51. Humans enter and exit apps
    Constantly

    View Slide

  52. Humans try to do things
    without an internet connection

    View Slide

  53. Humans try to do things
    without an internet connection
    !

    View Slide

  54. Manual Tests

    View Slide

  55. Dedicated QA testers

    View Slide

  56. View Slide

  57. !

    View Slide

  58. View Slide

  59. Reduce fear of code

    View Slide

  60. Increase empathy

    View Slide

  61. Teach basic git
    and running with an IDE

    View Slide

  62. Encouraging basic fixes

    View Slide

  63. Moving to building
    with you

    View Slide

  64. Moving to testing
    with software

    View Slide

  65. End To End Tests

    View Slide

  66. Where to focus
    manual testing

    View Slide

  67. Smoke Tests

    View Slide

  68. View Slide

  69. Setting up a testing
    !
    Pipeline

    View Slide

  70. When should QA
    get a new build to test?

    View Slide

  71. !
    Scripts

    View Slide

  72. !
    Fastlane

    View Slide

  73. Some arguments I've heard against
    dedicated QA

    View Slide

  74. Some arguments I've heard against
    dedicated QA
    (and my responses)

    View Slide

  75. Argument:
    “Quality should be
    everyone’s responsibility!”

    View Slide

  76. Response:
    “Quality has become
    nobody’s responsibility.”

    View Slide

  77. Argument:
    “Adding QA makes
    us go slower!”

    View Slide

  78. Response:
    “Adding QA makes
    us go faster in the long term.”

    View Slide

  79. Argument:
    “Adding QA makes
    change harder!”

    View Slide

  80. Response:
    “Adding QA makes
    change manageable.”

    View Slide

  81. Argument:
    “This project is
    too small to need QA!”

    View Slide

  82. Response:
    "Some projects are.
    For a while."

    View Slide

  83. How many kinds of tests and QA
    do I need to do?

    View Slide

  84. View Slide

  85. View Slide

  86. View Slide

  87. View Slide

  88. View Slide

  89. View Slide

  90. View Slide

  91. View Slide

  92. Obligatory Summary Slide

    View Slide

  93. Obligatory Summary Slide
    → QA helps catch problems before they reach users

    View Slide

  94. Obligatory Summary Slide
    → QA helps catch problems before they reach users
    → QA forces clarification of existing process

    View Slide

  95. Obligatory Summary Slide
    → QA helps catch problems before they reach users
    → QA forces clarification of existing process
    → Unit/UI tests are not a replacement for QA

    View Slide

  96. Obligatory Summary Slide
    → QA helps catch problems before they reach users
    → QA forces clarification of existing process
    → Unit/UI tests are not a replacement for QA
    → Start with manual QA and work your way up to
    end-to-end and smoke tests

    View Slide

  97. Obligatory Summary Slide
    → QA helps catch problems before they reach users
    → QA forces clarification of existing process
    → Unit/UI tests are not a replacement for QA
    → Start with manual QA and work your way up to
    end-to-end and smoke tests
    → Empathy between QA and dev is critical to success

    View Slide

  98. Links!
    → TestRail for creating test suites
    http://www.gurock.com/testrail/
    → The Director (aka QA Hates You)
    https://twitter.com/QAHatesYou

    View Slide

  99. Photo Credits
    → Angry mob by Robert Course-Baker:
    https://www.flickr.com/photos/
    29233640@N07/3645211083
    → Robot by the Oregon National Guard:
    https://www.flickr.com/photos/oregonmildep/
    8576624536/
    → Craig and the New Features by Vjeran Pavic
    https://live.theverge.com/apple-wwdc-live-blog-
    keynote-2018

    View Slide

  100. Photo Credits
    → iPhone 7+ Teardown by iFixIt
    https://www.ifixit.com/Teardown/
    iPhone+7+Plus+Teardown/67384
    → Braden Holtby's Killer Save by John Locher
    https://www.instagram.com/p/BjbsdKBH26s/

    View Slide