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
28
Working with Children
mjtamlyn
1
46
Wallingford Castle Archers Incorporation
mjtamlyn
0
160
Observation and Evaluation
mjtamlyn
0
75
Weird and Wonderful things to do with the ORM
mjtamlyn
3
1.1k
An Introduction to Graphene and Relay
mjtamlyn
6
1.1k
Tech Interviews that don't suck
mjtamlyn
4
910
Data driven rendering
mjtamlyn
1
140
What's new in Django 1.9
mjtamlyn
1
160
Other Decks in Programming
See All in Programming
Dockerで始めるAWS Lambda開発
stutkhd0709
13
2.5k
コミュニティに参加したことで起きた変化
ohmori_yusuke
3
130
品質とスピードを両立: TypeScriptの柔軟な型システムをバックエンドで活用する
kosui
4
890
PHP8の機能を使って堅牢にコードを書く
fendo181
6
2.6k
Cloud RunとCloud PubSubでサーバレスなデータ基盤2024 with Terraform / Cloud Run and PubSub with Terraform
shinyorke
7
1.9k
受託開発でGitLab CI を活用していく
xiombatsg
1
120
決断するための勇気、そのためのBacklog / Courage to make decisions, Backlog for that.
seike460
PRO
4
1.9k
DDDはなぜ難しいのか / 良いコードの定義と設計能力の壁
pospome
24
7.3k
フロントエンドパフォーマンス 入門
shouta2
7
1.5k
Open Source Swift Workshop - Foundation and first party libraries
ikesyo
0
180
CSRF対策のやり方、そろそろアップデートしませんか / Update your knowledge of CSRF protection
hiro_y
25
15k
Parallel Socket Communication in Swift
s_shimotori
0
220
Featured
See All Featured
The Cult of Friendly URLs
andyhume
73
5.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
257
12k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
18
1.7k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
185
15k
In The Pink: A Labor of Love
frogandcode
137
21k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
11
1.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
219
21k
Six Lessons from altMBA
skipperchong
19
2.9k
Optimising Largest Contentful Paint
csswizardry
7
2.3k
[RailsConf 2023] Rails as a piece of cake
palkan
21
3.8k
Stop Working from a Prison Cell
hatefulcrawdad
265
19k
Embracing the Ebb and Flow
colly
78
4.1k
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!