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
Building a testing culture
Search
Pedro Tavares
June 02, 2018
Programming
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Building a testing culture
Pedro Tavares
June 02, 2018
More Decks by Pedro Tavares
See All by Pedro Tavares
Diving into Merkle Trees
ordepdev
2
860
Harvest, Yield, and Scalable Tolerant Systems
ordepdev
0
280
Things you should know about Database Storage and Retrieval
ordepdev
0
170
Building a testing culture
ordepdev
0
1.4k
Things you should know about Database Storage and Retrieval
ordepdev
0
1.7k
GitLab as an Application Lifecycle Management Suite
ordepdev
0
430
Consumer Driven Contracts
ordepdev
0
1.4k
Optional<Java>
ordepdev
0
1.4k
Microservices? You have to
ordepdev
0
1.3k
Other Decks in Programming
See All in Programming
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
1
240
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
8
5.2k
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
AIが無かった頃の素敵な出会いの話
codmoninc
1
170
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
320
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
630
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
190
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
380
act1-costs.pdf
sumedhbala
0
240
FDEが実現するAI駆動経営の現在地
gonta
2
190
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
2.9k
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
690
Featured
See All Featured
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
Code Review Best Practice
trishagee
74
20k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
900
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
270
Balancing Empowerment & Direction
lara
6
1.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Ruling the World: When Life Gets Gamed
codingconduct
0
290
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
[SF Ruby Conf 2025] Rails X
palkan
2
1.2k
Six Lessons from altMBA
skipperchong
29
4.3k
Transcript
TESTING building CULTURE
https://ordepdev.me/posts/test-driven-developers
THIS IS NOT ABOUT TDD!
@ordepdev
First of all Why testing?
“It’s time for software developers to take up the mantle
of responsibility for what they produce.
Testing is the engineering rigour of software development.
Responsibility — the state or fact of being accountable or
to blame for something.
Rigour — the quality of being extremely thorough and careful.
Software Engineering
An engineering discipline that is concerned with all aspects of
software production.
MUCH MORE THAN CODING!
Types of Bad Software Projects
1. Without tests.
Zero Automated Tests.
ZERO!
Lack of professionalism?
Lack of skills?
Lack of knowledge?
Lack of time to test?
It can be all of them.
What about software quality?
Relax, we test all features with manual testing.
None
2. With Wrongly Designed Tests..
Testing is HARD.
https://twitter.com/codepipes/status/987934900111138816
Testing pitfalls: coupling.
Implementation Boundary Testing Boundary
Implementation Boundary Testing Boundary ✅ ✅ ✅ ✅ ✅ ✅
✅ ✅ ❌ ❌
Uncertainty and Doubt.
Implementation Boundary Testing Boundary ✅ ✅ ✅ ✅ ✅ ❌
❌ ❌ ❌ ❌
Testing pitfalls: performance.
Taking too much time? — that’s a no run.
Types of Testing
1. Testing after the implementation.
2. Testing during the implementation.
3. Testing that reproduce bugs.
It’s our job to build a testing culture!
But how?
5 rules.
1. Every change must have tests.
50 100 150 200 Development Unit Tests Functional Tests System
Tests Production The cost of bugs
Bugs in production are embarrassing and costly.
2. Write more than unit tests.
https://twitter.com/pwlporto/status/999258562370170880
We do not know how much an increase in coverage
can decrease the number of defects.” “
https://ordepdev.me/posts/code-coverage
Mutation testing!
def add(x,y) x + y end def add(x,y) x -
y end Source Code Mutation
Property-based testing! https://hypothesis.works/articles/quickcheck-in-every-language
http://blog.jessitron.com/2013/04/property-based-testing-what-is-it.html
Contract testing! https://martinfowler.com/bliki/ContractTest.html
https://ordepdev.me/posts/boost-your-confidence-with-consumer-driven-contracts
Model-based testing! http://mit.bme.hu/~micskeiz/pages/modelbased_testing.html
Instead of writing hundreds of test cases, write an abstract
model of the system and generate a set of test cases.” “
None
Formal methods! https://www.infoq.com/presentations/aws-testing-tla
Formal methods use mathematical proof as a complement to system
testing in order to ensure correct behavior.” “
3. Bug fixing must have tests.
Don’t repeat the same bug hunting — write a test!
4. Testing code must be reviewed.
A well-designed test suite is much easier to read, understand
and evolve.
Testing code is production code!
5. Test suites must be consistent.
L12. assertEquals(input, expectation); L35. assertEquals(expectation, input); L43. assertThat(input).isEqualTo( expectation); Assertions
L12. assertEquals(input, expectation); L35. assertEquals(expectation, input); L43. assertThat(input).isEqualTo( expectation); Assertions
L12. createEntity L35. create_withValidPayload_success L43. create_withValidPayload_shouldPersistEntity Test Methods
L12. createEntity L35. create_withValidPayload_success L43. create_withValidPayload_shouldPersistEntity Test Methods
We must share the same values, practices, and tools.
Enforce them through code reviews, static analysis, and style checking
tools.
5+1.Test suites must be visible.
A failed test is a failed build!
Wrapping up.
People who are successful at automating tasks tend to work
this way in every aspect of their jobs. It is just how they work; it is part of their culture. “ ”
Manual work is a bug. acmqueue | january-february 2018
ALWAYS BE AUTOMATING!
GO AND FIX YOUR BROKEN CULTURE!
TESTING building CULTURE @ordepdev ordepdev.me Thanks!