My semi-annual
testing workshop at
SWS is approaching. In the theoretical part I want to incorporate some insights I picked up recently:
From Aslak Hellesøys presentation "Executable User Stories with RSpec and BDD" (slides):
Where errors are introduced (according to CHAOS report):
This should put developer testing in the big picture of software development.
Developer testing is traditionally focussing on code, maybe also design.
Techniques like BDD, FIT and Acceptance Testing can also help to takle errors in the requirements.
Validation (in contrast to verification) can also help to uncover problems in design and requirements. Validation can be accomplished prior to the creation of the software artifacts.
From Jay Fields talk "Developer Testing: Welcome to the Beta Test":
Most important characteristics of good unit tests:
Readable
Reliable
Performant
Reasons to write tests:
Design
Protect against regression
Achieve sign-off
Increase customer interaction
Document the system
Refactor confidently
Ensure the system works correctly
Unit testing suggestions:
Setup methods are evil
Test one thing at a time
Maintainability > DRY
Test names are comments
Zero or one mock per test
Expect literals
Create test data builders
Hi Jonas, this is good stuff. Could you clarify which year of the Chaos Report your statistics come from? I understand that the Standish Group have noted a year-on-year improvement in project success.
ReplyDeleteHi Immo,
ReplyDeleteI have to admit, that I was very unprofessionally just copy-pasting the numbers from the linked presentation of Aslak Hellesøy.
I tried to find the sources of those numbers on the internet, but the CHAOS report seems not to be freely available.
My educational goal however is only to put developer testing in a relative context...