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
190
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
36
Working with Children
mjtamlyn
1
66
Wallingford Castle Archers Incorporation
mjtamlyn
0
160
Observation and Evaluation
mjtamlyn
0
80
Weird and Wonderful things to do with the ORM
mjtamlyn
3
1.2k
An Introduction to Graphene and Relay
mjtamlyn
6
1.2k
Tech Interviews that don't suck
mjtamlyn
4
980
Data driven rendering
mjtamlyn
1
140
What's new in Django 1.9
mjtamlyn
1
160
Other Decks in Programming
See All in Programming
ECMAScript、Web標準の型はどう管理されているか / How ECMAScript and Web standards types are maintained
petamoriken
3
390
Developer Joy == Developer Productivity (really!)
hollycummins
1
220
GenU導入でCDKに初挑戦し、悪戦苦闘した話
hideg
0
170
XStateでReactに秩序を与えたい
gizm000
0
730
LangChainの現在とv0.3にむけて
os1ma
4
940
僕が思い描くTypeScriptの未来を勝手に先取りする
yukukotani
9
2.4k
Ebitengineの1vs1ゲーム WebRTCの活用
ponyo877
0
380
Google Sign-inの移行から始めるCredential Manager活用
clockvoid
0
380
Modern Angular with the NGRX Signal Store New Rules for Your Architecture @BASTA! 2024 in Mainz
manfredsteyer
PRO
0
160
【TID2024】模擬講義:プログラマと一緒にゲームをデザインしてみよう!
akatsukigames_tech
0
670
RAGの回答精度評価用のQAデータセットを生成AIに作らせた話
kurahara
0
260
Increased Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
400
Featured
See All Featured
It's Worth the Effort
3n
182
27k
BBQ
matthewcrist
83
9.2k
Designing on Purpose - Digital PM Summit 2013
jponch
114
6.8k
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Visualization
eitanlees
142
15k
Building a Scalable Design System with Sketch
lauravandoore
459
32k
RailsConf 2023
tenderlove
28
810
A designer walks into a library…
pauljervisheath
201
24k
GraphQLの誤解/rethinking-graphql
sonatard
65
9.8k
Building Adaptive Systems
keathley
36
2.1k
Optimizing for Happiness
mojombo
375
69k
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!