Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Automated testing
Search
Marc Tamlyn
July 12, 2013
Programming
3
180
Automated testing
They why, what and how of automated testing for a mixed technical and non-technical audience.
Marc Tamlyn
July 12, 2013
Tweet
Share
More Decks by Marc Tamlyn
See All by Marc Tamlyn
Arousal and Anxiety
mjtamlyn
1
29
Working with Children
mjtamlyn
1
55
Wallingford Castle Archers Incorporation
mjtamlyn
0
160
Observation and Evaluation
mjtamlyn
0
77
Weird and Wonderful things to do with the ORM
mjtamlyn
3
1.2k
An Introduction to Graphene and Relay
mjtamlyn
6
1.1k
Tech Interviews that don't suck
mjtamlyn
4
930
Data driven rendering
mjtamlyn
1
140
What's new in Django 1.9
mjtamlyn
1
160
Other Decks in Programming
See All in Programming
AppRouter Panel Talk
yosuke_furukawa
PRO
1
530
RubyGems on ruby.wasm
kateinoigakukun
0
160
Documentation testsの恩恵 / Documentation testing benefits
ssssota
1
570
The test code generator using static analysis and LLM
mikik0
1
290
WinActorの勉強を継続する方法
tamai_63
0
130
CQRS meets modern Java
simas
PRO
2
480
チーム立ち上げにAWSを活用したらClaudeさんに褒められた話
mkdev10
3
230
『WordPressコミュニティで学ぶ』OSS貢献の多様性
ippey
0
290
Powerfully Typed TypeScript
euxn23
4
1.8k
[RubyKaigi 2024] Ruby Mixology 101: adding shots of PHP, Elixir, and more
palkan
0
140
TypeScriptとGraphQLで実現する 型安全なAPI実装 / TSKaigi 2024
hokaccha
5
2.9k
酒飲んでたらテックリードになった話
spbaya0141
0
210
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
Designing for humans not robots
tammielis
247
25k
Stop Working from a Prison Cell
hatefulcrawdad
266
19k
For a Future-Friendly Web
brad_frost
172
9k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.7k
How STYLIGHT went responsive
nonsquared
92
4.9k
Adopting Sorbet at Scale
ufuk
69
8.6k
Six Lessons from altMBA
skipperchong
22
3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
22
1.6k
Writing Fast Ruby
sferik
622
60k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
Transcript
Automated Testing Lunch n Learn @incuna
What is it? • Unit tests • Integration tests •
Functional/acceptance tests • Visual tests • Regression tests
Why? • Trust in the code • Freedom to refactor
• Reduce number of bugs
What is it not? • A complete replacement for QA,
a useful tool for doing QA • For content
Types of test
Unit tests • Test small specific pieces of functionality •
Cover as many cases as possible • (Should be) quick and easy • Fragile but isolated • Mock out other layers • Coverage
Integration tests • Work across multiple layers of the program
• Ensure all the individual pieces fit together • Simulate real requests • Test only “normal” things • Should break less often
Functional or Acceptance tests • Test the whole system •
Test user stories • “Open up browser, go to home page, click on login link, fill in correct information, redirects to profile page, click on forum navigation, make a post, post appears on page...”
Functional or Acceptance tests • SLOW, and harder to write
• More likely part of the QA process than the development process • Immensely useful for front end logic
Visual tests • Does this page look like this screenshot?
• Cross browser • Needs research...
Regression testing
Regression tests • “AAAA this is broken we must fix
it now” • “I’ll write a test for it” • A bug is not a bug, it’s a missing test • Makes sure the bug doesn’t come back
Regression tests • Could be any one of the other
kinds of test • Never get written if the project didn’t have tests to start with
Continuous integration
Continuous integration • Runs test suite against changes and pull
requests • Warns us if someone breaks things • Runs in a production-like setting
Test driven development
Test driven development • Write the tests first • Add
code afterwards • (Refactor) • Check tests still pass • Repeat
Test driven development • Feels slower to start with •
More reliable than “refreshing the page to see if it worked” • Requires good tools • Saves time (and face) in the long run
Live demo time!