@angelariggs_ TestBash SF | 2019
A Beginner’s Guide to
Test Automation
Slide 2
Slide 2 text
@angelariggs_ TestBash SF | 2019
Slide 3
Slide 3 text
@angelariggs_ TestBash SF | 2019
Slide 4
Slide 4 text
@angelariggs_ TestBash SF | 2019
✦ How do I choose a framework?
✦ Who should write the tests?
✦ Should I run tests in our pipeline?
✦ Which tests should I automate?
✦ What are some best practices?
Slide 5
Slide 5 text
@angelariggs_ TestBash SF | 2019
When should we use test automation?
Slide 6
Slide 6 text
@angelariggs_ TestBash SF | 2019
Why do we test?
✦ Prevent defects
✦ Maintain quality
✦ Meet users’ needs
✦ Increase confidence
✦ Understand our product
Slide 7
Slide 7 text
@angelariggs_ TestBash SF | 2019
Why do we automate?
✦ Run tests faster
✦ Better coverage
✦ Increase reliability
✦ Reusable / repeatable
✦ More frequent testing
Slide 8
Slide 8 text
@angelariggs_ TestBash SF | 2019
Slide 9
Slide 9 text
@angelariggs_ TestBash SF | 2019
Automation is not the goal.
The goal is to have tests that enhance your ability to
achieve and maintain quality.
Slide 10
Slide 10 text
@angelariggs_ TestBash SF | 2019
When should we use test automation?
Slide 11
Slide 11 text
@angelariggs_ TestBash SF | 2019
Slide 12
Slide 12 text
@angelariggs_ TestBash SF | 2019
Lower-risk or consistent functionality
@angelariggs_ TestBash SF | 2019
Use automation for low-risk items so you can
focus on high-risk and high-priority functionality.
Slide 17
Slide 17 text
@angelariggs_ TestBash SF | 2019
High-risk items that need consistent testing
Slide 18
Slide 18 text
@angelariggs_ TestBash SF | 2019
API tests
Critical workflows
Performance & load testing
Slide 19
Slide 19 text
@angelariggs_ TestBash SF | 2019
API tests
Critical workflows
Performance & load testing
Slide 20
Slide 20 text
@angelariggs_ TestBash SF | 2019
API tests
Critical workflows
Performance & load testing
Slide 21
Slide 21 text
@angelariggs_ TestBash SF | 2019
Slide 22
Slide 22 text
@angelariggs_ TestBash SF | 2019
Getting Buy-In
Slide 23
Slide 23 text
@angelariggs_ TestBash SF | 2019
Automation is work.
Slide 24
Slide 24 text
@angelariggs_ TestBash SF | 2019
What do you want to accomplish?
Slide 25
Slide 25 text
@angelariggs_ TestBash SF | 2019
How does this benefit them?
Slide 26
Slide 26 text
@angelariggs_ TestBash SF | 2019
✦ Catch regressions
✦ Sprint goals
✦ Prevent defects
✦ Team confidence
✦ Stakeholder confidence
Slide 27
Slide 27 text
@angelariggs_ TestBash SF | 2019
Improve your testing skills
Slide 28
Slide 28 text
@angelariggs_ TestBash SF | 2019
Choosing a Framework
Slide 29
Slide 29 text
@angelariggs_ TestBash SF | 2019
There is no framework to rule them all.
The right tool is the one that you’ll actually use.
Slide 30
Slide 30 text
@angelariggs_ TestBash SF | 2019
Code-based or codeless?
Open-source or paid?
Slide 31
Slide 31 text
@angelariggs_ TestBash SF | 2019
Who’s writing tests?
Slide 32
Slide 32 text
@angelariggs_ TestBash SF | 2019
How are you running your tests?
Slide 33
Slide 33 text
@angelariggs_ TestBash SF | 2019
Is there a budget?
Slide 34
Slide 34 text
@angelariggs_ TestBash SF | 2019
Is there a “freemium” level?
Slide 35
Slide 35 text
@angelariggs_ TestBash SF | 2019
Is there a trial period?
Slide 36
Slide 36 text
@angelariggs_ TestBash SF | 2019
What’s the documentation like?
Slide 37
Slide 37 text
@angelariggs_ TestBash SF | 2019
How actively is the framework maintained?
Slide 38
Slide 38 text
@angelariggs_ TestBash SF | 2019
Slide 39
Slide 39 text
@angelariggs_ TestBash SF | 2019
Writing Your Tests
Slide 40
Slide 40 text
@angelariggs_ TestBash SF | 2019
The goal of automation is reliable, anti-fragile tests
that are simple to maintain, update, and hand off.
Slide 41
Slide 41 text
@angelariggs_ TestBash SF | 2019
Test automation is code!
Slide 42
Slide 42 text
@angelariggs_ TestBash SF | 2019
Security
Slide 43
Slide 43 text
@angelariggs_ TestBash SF | 2019
Security
Slide 44
Slide 44 text
@angelariggs_ TestBash SF | 2019
Slide 45
Slide 45 text
@angelariggs_ TestBash SF | 2019
Clarity
Slide 46
Slide 46 text
@angelariggs_ TestBash SF | 2019
Write tests for Future You
Slide 47
Slide 47 text
@angelariggs_ TestBash SF | 2019
sleep(10)
Slide 48
Slide 48 text
@angelariggs_ TestBash SF | 2019
waitForElement(#footer)
Slide 49
Slide 49 text
@angelariggs_ TestBash SF | 2019
Independent tests
Slide 50
Slide 50 text
@angelariggs_ TestBash SF | 2019
Create reservation
✦ Enter location
✦ Select dates
✦ Select unit
✦ Book vacation
Modify reservation
✦ Look up reservation
✦ Select Edit option
✦ Change dates
✦ Confirm new dates
Slide 51
Slide 51 text
@angelariggs_ TestBash SF | 2019
Create reservation
✅ Enter location
✦ Select dates
✦ Select unit
✦ Book vacation
Modify reservation
✦ Look up reservation
✦ Select Edit option
✦ Change dates
✦ Confirm new dates
Slide 52
Slide 52 text
@angelariggs_ TestBash SF | 2019
Create reservation
✅ Enter location
✅ Select dates
✦ Select unit
✦ Book vacation
Modify reservation
✦ Look up reservation
✦ Select Edit option
✦ Change dates
✦ Confirm new dates
Slide 53
Slide 53 text
@angelariggs_ TestBash SF | 2019
Create reservation
✅ Enter location
✅ Select dates
✅ Select unit
✦ Book vacation
Modify reservation
✦ Look up reservation
✦ Select Edit option
✦ Change dates
✦ Confirm new dates
Slide 54
Slide 54 text
@angelariggs_ TestBash SF | 2019
Create reservation
✅ Enter location
✅ Select dates
✅ Select unit
❌ Book vacation
Modify reservation
✦ Look up reservation
✦ Select Edit option
✦ Change dates
✦ Confirm new dates
Slide 55
Slide 55 text
@angelariggs_ TestBash SF | 2019
Create reservation
✅ Enter location
✅ Select dates
✅ Select unit
❌ Book vacation
Modify reservation
❌ Look up reservation
❌ Select Edit option
❌ Change dates
❌ Confirm new dates
Slide 56
Slide 56 text
@angelariggs_ TestBash SF | 2019
Independent tests reduce fragility
and allow for faster test runs with parallelism.
Slide 57
Slide 57 text
@angelariggs_ TestBash SF | 2019
Failures
Slide 58
Slide 58 text
@angelariggs_ TestBash SF | 2019
Slide 59
Slide 59 text
@angelariggs_ TestBash SF | 2019
The goal of automation isn’t having tests that pass.
The goal of automation is
having tests that accurately catch failures.
Slide 60
Slide 60 text
@angelariggs_ TestBash SF | 2019
If a test never fails, is it providing value?
Slide 61
Slide 61 text
@angelariggs_ TestBash SF | 2019
Planning for failure means writing your tests
in a way that make those failures useful.
Slide 62
Slide 62 text
@angelariggs_ TestBash SF | 2019
“it 404’ed”
Slide 63
Slide 63 text
@angelariggs_ TestBash SF | 2019
“Ticket page sends a 404 if support
file does not exist”
Slide 64
Slide 64 text
@angelariggs_ TestBash SF | 2019
Slide 65
Slide 65 text
@angelariggs_ TestBash SF | 2019
Understand the questions you should ask
so you can find the answers that work for you
Slide 66
Slide 66 text
@angelariggs_ TestBash SF | 2019
Understand the benefits of automation,
so you know when to use it
Slide 67
Slide 67 text
@angelariggs_ TestBash SF | 2019
Understand how to get buy-in
for prioritizing automation work
Slide 68
Slide 68 text
@angelariggs_ TestBash SF | 2019
Understand how to research frameworks,
so you can find the one that meets your needs
Slide 69
Slide 69 text
@angelariggs_ TestBash SF | 2019
Understanding good automation practices,
so you can create anti-fragile tests
Slide 70
Slide 70 text
@angelariggs_ TestBash SF | 2019
Slide 71
Slide 71 text
@angelariggs_ TestBash SF | 2019
Thank you!
Slide 72
Slide 72 text
@angelariggs_ TestBash SF | 2019
Resources
Slide 73
Slide 73 text
@angelariggs_ TestBash SF | 2019
Lucy Wyman & Zach Reichert
Test Automation University
Are Our Tests Any Good?
http://bit.ly/are-our-tests-good
Online automation courses
http://bit.ly/test-automation-uni