Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

What is quality?

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

Does it work for your users?

Slide 8

Slide 8 text

What is QA?

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

Project managers

Slide 11

Slide 11 text

"The people who make sure we never ship bugs"

Slide 12

Slide 12 text

"The people who prevent us from hitting deadlines"

Slide 13

Slide 13 text

Developers

Slide 14

Slide 14 text

"The people who break my app"

Slide 15

Slide 15 text

Nitpickers

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

"The people who save my ass"

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

QA Engineers

Slide 22

Slide 22 text

What does a QA Engineer do?

Slide 23

Slide 23 text

Tries to use your app

Slide 24

Slide 24 text

Tells you how they broke it so you can fix it

Slide 25

Slide 25 text

Project Manager Bug Ticket → I can't log in

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

Experienced QA Engineer Bug Ticket → On a build pointed at the staging server → I went to the login screen → I entered valid credentials [me@hi.com/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)

Slide 28

Slide 28 text

What is this app supposed to do?

Slide 29

Slide 29 text

Test Plans

Slide 30

Slide 30 text

Look at the whole app

Slide 31

Slide 31 text

Keep looking at the whole app

Slide 32

Slide 32 text

How important is shipping new functionality vs not breaking existing functionality

Slide 33

Slide 33 text

Types of QA Testing

Slide 34

Slide 34 text

Manual Testing

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

Software Testing

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

Tests are a good start

Slide 40

Slide 40 text

What kind of automated tests do you have?

Slide 41

Slide 41 text

Unit Tests

Slide 42

Slide 42 text

Unit Tests Limit: Only tests that pieces work in isolation

Slide 43

Slide 43 text

Integration Tests

Slide 44

Slide 44 text

Integration Tests Limit: Only tests that specific pieces work together

Slide 45

Slide 45 text

UI Tests

Slide 46

Slide 46 text

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

Slide 47

Slide 47 text

No content

Slide 48

Slide 48 text

Humans and robots find different issues

Slide 49

Slide 49 text

Humans are weird

Slide 50

Slide 50 text

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

Slide 51

Slide 51 text

Humans enter and exit apps Constantly

Slide 52

Slide 52 text

Humans try to do things without an internet connection

Slide 53

Slide 53 text

Humans try to do things without an internet connection !

Slide 54

Slide 54 text

Manual Tests

Slide 55

Slide 55 text

Dedicated QA testers

Slide 56

Slide 56 text

No content

Slide 57

Slide 57 text

!

Slide 58

Slide 58 text

No content

Slide 59

Slide 59 text

Reduce fear of code

Slide 60

Slide 60 text

Increase empathy

Slide 61

Slide 61 text

Teach basic git and running with an IDE

Slide 62

Slide 62 text

Encouraging basic fixes

Slide 63

Slide 63 text

Moving to building with you

Slide 64

Slide 64 text

Moving to testing with software

Slide 65

Slide 65 text

End To End Tests

Slide 66

Slide 66 text

Where to focus manual testing

Slide 67

Slide 67 text

Smoke Tests

Slide 68

Slide 68 text

No content

Slide 69

Slide 69 text

Setting up a testing ! Pipeline

Slide 70

Slide 70 text

When should QA get a new build to test?

Slide 71

Slide 71 text

! Scripts

Slide 72

Slide 72 text

! Fastlane

Slide 73

Slide 73 text

Some arguments I've heard against dedicated QA

Slide 74

Slide 74 text

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

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

Argument: “Adding QA makes us go slower!”

Slide 78

Slide 78 text

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

Slide 79

Slide 79 text

Argument: “Adding QA makes change harder!”

Slide 80

Slide 80 text

Response: “Adding QA makes change manageable.”

Slide 81

Slide 81 text

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

Slide 82

Slide 82 text

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

Slide 83

Slide 83 text

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

Slide 84

Slide 84 text

No content

Slide 85

Slide 85 text

No content

Slide 86

Slide 86 text

No content

Slide 87

Slide 87 text

No content

Slide 88

Slide 88 text

No content

Slide 89

Slide 89 text

No content

Slide 90

Slide 90 text

No content

Slide 91

Slide 91 text

No content

Slide 92

Slide 92 text

Obligatory Summary Slide

Slide 93

Slide 93 text

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

Slide 94

Slide 94 text

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

Slide 95

Slide 95 text

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

Slide 96

Slide 96 text

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

Slide 97

Slide 97 text

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

Slide 98

Slide 98 text

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

Slide 99

Slide 99 text

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

Slide 100

Slide 100 text

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/