Anton Keks@antonkeks
Being a professional software tester
(in XXI century)
Nordic Testing Days, 7.06.2013
Anton KeksAnton KeksCo-founder of Co-founder of
Lecturer at Lecturer at Tallinn Technical UniversityTallinn Technical University
Agile EstoniaAgile Estonia board member board member●
Author of Author of Angry IP ScannerAngry IP Scanner
Strong believer inStrong believer inAgileAgile and and Open-sourceOpen-source
Professionalism in medicine
● Surgeon 1 does the same operation over and over and makes a lot of money
● Surgeon 2 knows all the standard operations and has developed an innovative procedure, but makes less money than Surgeon 1
● Surgeon 3 practices own procedure regularly, but also travels abroad to teach other doctors how to practice the innovation
Credit http://tinyplanet.ca/projects/professionalism.html
1. There are 2 kinds of tests...
Regression testsand
Everything else
● Unit tests● Integration tests● Automated UI tests
● Acceptance tests● Usability (corridor) tests● Performance tests● Penetration (security) tests● Exploratory tests
REGRESSION
OTHERSTUFF
2. Human life is very short
DDD = Deadline Driven Development
Let machines do the repeatable stuff
(we keep only fun stuff for ourselves)
Test AutomationTest Automation
TDD
DDT(Development Driven Testing)
Can't imagine developers not doing testing
Can't imagine testers not doing development
A professional in IT
=Agile
Agile is all Agile is all about...about...testing!testing!
Code smellvs
Test smell
when releases take timeor 100s of unimportant test cases
slow us down
Iterative &Iterative &IncrementalIncrementalNOT Big-BangNOT Big-Bang
AdaptableAdaptableNOT PredictableNOT Predictable
SimplicitySimplicityMaximizing the amount of work not doneMaximizing the amount of work not done
TeamworkTeamworkNOT Lone RangerNOT Lone Ranger
a week
The good stuff
Co-locationVerbal communication
Continuous improvementWorking increment of the
software!
But can But can code cowboyscode cowboysactually do this?actually do this?
Or even worse, Or even worse, bureaucratsbureaucrats??
How to be a true professional?
Avoid hopeless meetings
Focus on what's
UNPROFESSIONAL
UNPROFESSIONAL
Responsibility of all
Pair programmingPair programming
Peer review – Concentration – Quality Peer review – Concentration – Quality Knowledge SharingKnowledge Sharing
Technical Technical excellenceexcellence
Software Software CraftsmanshipCraftsmanship
http://manifesto .softw
a recraft smansh ip.org
Software Software Craftsmanship...Craftsmanship...
...the ...the CodeborneCodeborne way way
Automate everything(and more)
DRYDon't Repeat Yourself
DDT checklist
✔Test code in the same repo
✔All tests are part of (continuous) builds
✔Tests should be FAST
✔Track coverage, don't let it fall
✔Pair with the developers
✔Help us with the corner cases
Testers
Developers
BDDBug Driven Development
(You get what you measure)
Overspecialization“Plain specialists”– Too narrow-minded– Ineffective– Poor at communication and collaboration
“Generalizing specialists” – Understand all required activities – Are best in one or few areas– Have a better chance of keeping their jobs
o16n
Developer Tester
BA
RR
IERCommunicationCollaborationUnderstanding
Knowledge-exchangeNew skills
Software Building Team
Let's stop all the fight!
The final product is what matters!
(and happy users)
At Codeborne
● We don't have strict roles● No testers, no analysts, no managers● Just craftsmen, who create software● We pair● And do everything what it takes● To create software from 0 to 100%
In more conservative organizations
● Let developers write the tests● (learn also to do that)● Do not waste time on regression testing● Do other stuff that matters● Trust, remember the common goal● Never accept the idea of that's the way its
done here
Let's do it!
Anton Keks@antonkeks