1. TDD Refresh
A Small Step Forward for Test-
Driven Kind, and a New Kind of
Testing Library
Scott Bellware
Chief Systems Officer
Aptus Technologies
2. TDD Refresh
A Small Step Forward for Test-
Driven Kind, and a New Kind of
Testing Library
Scott Bellware
Chief Systems Officer
Aptus Technologies
3. TDD is Still
Poorly
Understood
(and poorly done)
developers still want credit for
TDD
one of the reasons that it is
becoming a cargo-culted, lost art
which defeats legitimate learning
and improvemnt efforts
4. Machinations
red, green, refactor are only
machinations
going through the motions
useful as fundamentals practice
drills
machinations are the things we
get stuck in when we get stuck
8. Transfer
crude things are easier to transfer
subtle things can’t be directly
transferred
breakthroughs have to be
experienced personally
be careful of expecting everything
to be directly transferable
the techniques that make the kind
of difference that matters can’t be
just given to you the way a tool
or a pattern can
20. Worse yet...
The poorer the design,
the more tests you end
up with
(solve the design, and you have fewer risks that
require tests as a mitigation strategy)
24. “Workable”
not just “working”
getting something to work is child’s play
it’s not worth paying someone for
just getting something to work is something we can get
cheaper from outsourcing
your job is to make it work, and protect forward
momentum
25. Caution:
Automators Automate
not all testing is automated
only automated testing is automated
as an automator, you have to stay on top of your
compulsions
you are likely already excessive
26. The Ironies of Automation
Lisanne Bainbridge
Department of Psychology, University College London, 1983
http://j.mp/ironies
27. “This paper discusses ways in which automation of industrial
processes may expand rather than eliminate problems with the
human operator. “
28. Taking inspiration from
Service-Oriented
Architecture
Hint: Services don’t return data - databases do
Most “services” are just HTTP database interfaces
Services don’t expose data (APIs are not “services”)
Services only accept instructions (commands)
Services respond with status updates (events)
31. Focus on the
controls, and
then automate
them
return to automating the
observations when you’re
assured that you’re solving the
right problem the right way
35. • Gets you working quickly on ideas
• Encourages the respect of encapsulation
• Elaborative (start with “sketching”, then firm up
structure when the time is right)
• Simple tooling (primitive, even)
• Plain old Ruby
• Use the file system organization you want
• Output through logging to STDOUT (or
whatever you want, per the logging gem)
Characteristics