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
Quality from the start
Search
Filipe Freire
February 15, 2018
Programming
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Quality from the start
Talk about software quality and testing for students, given at Helloworld Conference 2018.
Filipe Freire
February 15, 2018
More Decks by Filipe Freire
See All by Filipe Freire
Deep Testing
filipe
0
190
Finding Tranquility
filipe
0
160
Quality Foundations
filipe
0
190
Tacit CSS Framework
filipe
0
480
Elegant Objects and Cactoos
filipe
0
440
Tacit
filipe
0
230
Waiting is boring
filipe
0
780
You don't need a DevOps to "be DevOps"
filipe
0
410
Other Decks in Programming
See All in Programming
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
210
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
120
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
180
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
130
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
180
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
340
AIは賢い。でも実行環境は? CLIおじさんがAI時代に伝えたいこと ~ CLIおじさんがAI時代に伝えたいこと ~
curekoshimizu
1
170
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
100
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
580
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
120
Featured
See All Featured
Design in an AI World
tapps
1
310
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Thoughts on Productivity
jonyablonski
76
5.4k
Deep Space Network (abreviated)
tonyrice
0
290
YesSQL, Process and Tooling at Scale
rocio
174
15k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
560
A designer walks into a library…
pauljervisheath
211
25k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
It's Worth the Effort
3n
188
29k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
310
Abbi's Birthday
coloredviolet
3
9.8k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
230
Transcript
Quality from the start Filipe Freire 15 February 2018
Learner, tester, developer, husband 2.5y work as a “coding” tester
1y work as a developer OSS contributor Quick intro Currently @ 2
“Job application, public <service>” Ex.: hospital Story time 3
4
5
6
“Inspect the code!” “Use the Dev-tools!” Nope. 7
8
The pizza problem #1 9
1st pizza: 2nd pizza: The pizza problem #2 10
In the team I’m part at >10mil messages/day +
tons of data & logic and flows If something fails for 10 mins: 11
What if : Your bank’s software fails? Your doctor’s medical
device fails? Your country’s defences fail? 12
“It’s the user!” “It’s the tester!” “It’s the developer!” 13
Who’s to blame?
Why do we test? 14
“To verify something can work” –James Bach & Michael Bolton
15
What prevents software from working? 16
–Yegor Bugayenko “A software bug is an error, flaw, failure,
or fault in a computer program or system that causes it to violate at least one of its functional or non-functional requirements.” 17
“ (Testers are) the headlights of a project”! –James Bach
Testers dispel the illusion your code is good. Our main job: find and report tons of bugs using any means necessary 18
Remember “who’s to blame”? Answer: anything and everything between
our code (incl.) and the user 19
–Pedro Tavares (@ordepdev) “No one is perfect, neither our code,
but what matters most is our software craftsmanship attitude of making sure that our code works properly.” 20
Everyone makes their own shared bed. “What can I
do help make a better bed?” 21
-9999. “Do you know the value of your tool?” -
Tooling! 22
BTW, the following, credit goes to: http://www.yegor256.com/ 2015/06/08/deadly-sins- software-project.html 23
1. Can I be sloppy? - Anti-Patterns! 24
- Anti-Patterns! God objects Temporal coupling Magic numbers Utility classes
NULL references ORM… really? Poltergeists Lasagna code Spaghetti code Shotgun surgery Error hiding Ravioli code Macaroni code Be skeptical. Read. Learn. Google DuckDuckGo it. 25
2. How do I keep track of stuff? 26 -
Traceability!
Use tickets. Reference them. Don’t hit delete. 27 - Traceability!
Use tickets. 28 - Traceability!
Use tickets. 29 - Traceability!
Reference them. 30 @filipe: asdfasdf. @roberto: add function discussed yesterday
@bob: - Traceability! @agnes: fix problem.
Reference them. 31 @filipe: #3 - add login page style
rules @roberto: #7 - refactor nurse page unit tests @bob: #2 add how-to-build info - Traceability! @agnes: #4 - fix report input warning
32 @rita: #12 - add patient list as table @ana:
#13 - delete patient list Don’t hit delete. - Traceability!
3. How can I package my work - Release and
version! & not work nonstop? 33
“put your work in a zip and send an email
to the teacher at midnight, on the last day to deliver” - Release and version! 34
“some work done: tell a bot or script to create
+ publish a package. Repeat.” - Release and version! 35
- Release and version! 36 Best advice here: learn!
4. “How can I keep my stuff tidy all the
time?” - Static-analysis! 37
- Static-analysis! 38
Find some static analysis software for the language you code…
Then, make it fail your builds, always. - Static-analysis! 39
5. What are my numbers? - Coverage! 40
Do everything necessary to put this badge on your project
- Coverage! 41
- Coverage! 42 You’ll need: - Unit tests (Learn and
make’em) - Configure some coverage lib - Paste the badge on README
- Coverage! (What does the badge tell me?) “High coverage
is not a guarantee of high quality. (…) But, unknown coverage is a clear indicator of maintainability problems.” –Yegor Bugayenko 43
6. “What does your stuff do?” - Document! 44
45 - Document! The tip here is: Write down, clearly,
everything a user would need to know to use your software. Bonus point: when report time comes, you’ll have some sections ready :-)
Best-case scenario Year 1: “Ana and Miguel do class assignment
for X: it’s maintainable, well documented” A + M Work 46
Best-case scenario Year 2: “Rui and Tiago do class assignment
for X: they pick were Y1 colleagues left off and still deliver maintainable, well documented work” A + M Work R + T Work 47 +
Best-case scenario Year 3: “Rita and Marta do class assignment
for X: they pick were Y2 colleagues left off and still deliver maintainable, well documented work” A + M Work R + T Work R + M Work 48 +
Worst case scenario Maintainable garbage Still better than most real-life
scenarios :-) 49
And like in OSS: You’re not just setting the bar
for the next year student on your class. 50
Wrap-up 51
Example: Porto Testers Meetup 52 Learn, share ideas & knowledge.
Go out there! Community!
Pst… There’s more @Porto! 53
Thank you. Questions? filfreire filrfreire filfreire.com 54 Follow me @