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
Hello World 2018 - Quality from the start
Search
Hello World Tech Conference
February 15, 2018
Programming
38
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Hello World 2018 - Quality from the start
Hello World Tech Conference
February 15, 2018
More Decks by Hello World Tech Conference
See All by Hello World Tech Conference
Hello World 2018 - Learn how to get that dream job at Google!
helloworldconf
0
120
Hello World 2018 - Introduction to Swift
helloworldconf
0
67
Hello World 2018 - Understanding attacker behaviors, motivations and common ways of operation
helloworldconf
0
76
Hello World 2018 - GraphQL A query language for your API
helloworldconf
1
87
Hello World 2018 - We need to talk about Preact
helloworldconf
1
85
Hello World 2018 - Why Ruby?
helloworldconf
0
50
Hello World 2018 - Recent Advances in Machine Learning
helloworldconf
0
71
Hello World 2017 - React Native
helloworldconf
0
120
Hello World 2017 - Testing & QA - Carreira Profissional?
helloworldconf
0
85
Other Decks in Programming
See All in Programming
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
3
2.3k
ランチタイムLT会3周年!ランチタイムLT会を3年間続けられたお話
y0hgi
1
110
はてなアカウント基盤 State of the Union
cockscomb
1
890
OSもどきOS
arkw
0
590
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
180
Performance Engineering for Everyone
elenatanasoiu
0
230
Vite+ Unified Toolchain for the Web
naokihaba
0
360
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
110
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
850
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
7.1k
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
130
dRuby over BLE
makicamel
2
390
Featured
See All Featured
Ethics towards AI in product and experience design
skipperchong
2
320
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
400
Building AI with AI
inesmontani
PRO
1
1.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Everyday Curiosity
cassininazir
0
240
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Utilizing Notion as your number one productivity tool
mfonobong
4
330
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
340
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
330
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 @