t3con15: the best do's and don'ts of a bug tracking workflow
TRANSCRIPT
The Do’s & Don’ts of a bug tracking workflow.
@tompeham | @usersnap
That’s me. Thomas Peham.
● Tech Marketer at Usersnap, a visual bug tracking tool.● managing bugtrackers.io
● previously:○ Project Manager at a TYPO3 agency○ Project Manager at Styria Digital One
● blogger for various web development & design blogs.
● @tompeham I @usersnap I @bugtrackers
Outline.
● The problem of bugs.
● 4 steps for tracking down bugs. (and fixing them.)
● From bugs to no bugs.
● Best bug tracking takeaways
Why I’d like to talk about bug tracking today.Or: What is Usersnap about?
@tompeham | @usersnap
bug tracking, the black sheep?
Compared to other web development areas, bug tracking is pretty “old school”.
How people react when it comes to tracking bugs...
Or this way...
The problem of software bugs.
The problem of software bugs.
The problem of software bugs.
Bugs are expensive.
The problem of software bugs.
Bugs are expensive.(approx. $ 312 billion per year globally)
source: Cambridge University
The problem of software bugs.
Developers don’t test their code?!
source: ashleynolan.co.uk
The problem of software bugs.What tool do you use to test your
JavaScript? (if any)
source: ashleynolan.co.uk
Web development has changed. Why bug tracking hasn’t?
So, how do we solve that problem of bugs?
I SEE BUGSEVERYWHERE
Step 1: Ensure a bug-free development environment.
Step 1: Ensure a bug-free development environment.
Yeah, but there will always be some bugs.
Agree on: what is a bug. And what isn’t.
Find the real bugs.
Okay then. Step 1) Define + find bugs.
“A software bug is an error, flaw, failure, or fault in a computer program or system that causes it to produce an incorrect or unexpected result or to behave in unintended ways.”
What is a bug?
software bug
...error, flaw, failure, or fault….
...produce incorrect or unexpected result…
What is a bug?
software bug
something which is not working as designed.
What is a bug?
What is a bug?This is a bug...
something not working as designed.
or.
not designed as it should work?
What is not a bug?
in theory: it’s easy.
in practice: it’s not.
What is not a bug?
So, who’s in charge?
The project manager?QA Team Lead?Development Team Lead?
What is not a bug?
Agile sounds great, right?
What is not a bug? Who’s in charge!?
So, who’s in charge?
The project manager?QA Team Lead?Development Team Lead?
What is not a bug?
Decide + communicate
at the beginning of a
project!
1) automated testing2) manual testing3) crowd testing4) the “banana principle”:
or testing with the customer
How to find bugs?
How to find bugs? Automated testing.
Specify test cases run tests test report
+ no infrastructure (devices, browsers, vms) needed.
+ many platforms & browsers are supported.
+ fast & reliable test cases.
How to find bugs? Automated testing. Benefits.
- Investment in tools required.
- No “real device” feeling - tools have limitations- “agile testing” hardly
possible
How to find bugs? Automated testing. Drawbacks.
How to find bugs? Manual testing.
write test cases & user stories manual testing test
report
+ short-term cost is lower+ manual testing = agile
testing+ more user-centric than
automated testing.
How to find bugs? Manual testing. Benefits.
- investment in human resources is required.
- test execution takes longer than automated testing.
- threat of “human errors”
How to find bugs? Manual testing. Drawbacks.
Let the crowd test your website.
Combines the benefits of manual + automated testing.
How to find bugs? crowdsourced testing.
write test cases & user stories
let the crowd test
test report
+ user-centric feedback+ fast & reliable+ “outside” view to system
How to find bugs? crowdsourced testing. Benefits.
- find the right crowd (=target group)
- still in its early beginnings
How to find bugs? crowdsourced testing. Drawbacks.
Automated vs Manual?
Robots vs human power.
TDD vs agile.
Pre-scripting vs user-centric.
Step 2) document bugs.
Step 2) document bugs.
How a bug report form should look like.
Not.
Step 2) document bugs.
How a bug report form should look like.
Not.
But: Information needed when reporting a bug. Or:The Art of Bug Reporting.
But: Information needed when reporting a bug. Or:The Art of Bug Reporting.
- The What? A description of what happened.- The Where? Place where the bug happened.- The When? Time frame when something
happened.- The Who? Person who discovered the issue.- The Why? Why do you think it happened?
How to write the perfect bug report
- summary + prioritization- details on how to find the
bug again.- meta information.- ….
Your website = place where the error occured.
How to fix the bug documenting process.
crime scene:written document of problem description
bug report:place where the problem should get reproduced % fixed.
developer’s code:
Your website = Where the error occurs.
How to fix the bug documenting process.
crime scene:written document of problem description
bug report:place where the problem should get reproduced % fixed.
developer’s code:This is a loooong way for fixing bugs.
= browser
Why not stay in the same medium?
crime scene:= browser
bug report:= browser?
developer’s code:
This is a visual experience This is a visual experience
Step 3) Reproduce it.
“If you can’t reproduce a bug, it’s almost impossible to fix.”
Step 3) Reproduce it. But how?
bug reporting tool
the client: the project team
project mgmt tool
development environment
But it works on my environment!
There’s a bug!
Step 3) Reproduce it. But how?
integrated PM + bug reporting tool
the client: the project team
development environment
screenshots screenshots+meta info
Step 4) Fix bugs.
Step 4) Fix bugs.
If you’ve followed step 1 - 3, step 4 is easy.
Is it? ;-)
Step 4) Fix bugs.
What does a closed bug mean?
Step 4) Fix bugs.
Step 4) Fix bugs.Who is responsible for
this decision?
So, to the recap...
From bugs to no bugs.
Bugs Find them. Document them.
Reproduce them. Fix them. No
bugs.
Key takeaways
The Waterfall...
The Waterfall...
...is no longer valid.
agile testing
agile testing
#FTW
agile testing
#FTW
Decide on responsibilities!
ad-hoc bug reporting
visual bug reporting
bug tracking responsibilities
Open vs. closed bugs.
But what if...
Communication matters.
Everybody is a QA agent
Now it’s up to you.