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!