A full day it has been! Tonight at the Triangle .Net User Group I enjoyed a very entertaining talk on the “Benefits of Exploration Testing” presented by Justin Gehtland founding partner of Relevance, LLC. Justin shared a learn by doing approach to software development. His highlights include:
The key principles that motivate Exploration Testing are:
1. *The best documentation is observed behavior.* Instead of reading
about how something should work, make it work yourself.
2. *Failures in your application are your fault, even if they aren't
in your code.*Between system libraries, frameworks, and third
party tools, most of "your" code isn't actually /your /code.
However, this is little consolation to users who trusted /you/ to
assemble a correctly functioning application.
3. *Learning is active.* Passively reading text or listening to an
instructor does not provide adequate reinforcement of concepts.
4. *Programmers* *are often forced to choose technologies based on
incomplete information.* Basing major decisions on documentation
alone is certain to lead to suffering later.
5. *Programmers must isolate and work around bugs in supporting
libraries.* Since the technologies are chosen based on incomplete
information, we are often forced to work around shortcomings or
flaws in the chosen technology.
6. *Knowledge must be kept continuously up-to-date. *Writing some
sample code before using an API in a shipping application is a
very good idea, but it isn't enough. Your knowledge of an API needs
to be validated against every patch or upgrade that end users
might encounter. Exploration testing naturally dovetails with
continuous integration.
He’s got a white paper and some other really good info on his site! I think with the pace of change in the industry, the succesful learning styles are changing. They need to for us to keep up!