Exploratory testing: Difference between revisions

Content deleted Content added
IQDave (talk | contribs)
No edit summary
IQDave (talk | contribs)
Corrections to oversimplified use of the term Exploratory. Added external link to a seminal work on Exploratory Testing by James Bach and Cem Kaner.
Line 1:
'''Exploratory testing''' is the tactical pursuit of software faults and defects driven by challenging assumptions. It is an approach in [[software testing]] with simultaneous learning, [[test design]] and test execution. While the software is being tested, the tester learns things that together with experience and [[creativity]] generates new good tests to run. Exploratory testing is more of a mindset than a methodology. It therefore crosses a spectrum from slightly exploratory (slightly ambiguous or vaguely scripted testing) to highly exploratory (freestyle exploratory testing).
 
==History==
Line 8:
The testing is dependent on the tester's skill of inventing [[test case]]s and finding [[software bug|defects]]. The more the tester knows about the product and different [[test method]]s, the better the testing will be.
 
To further explain, comparison can be made of freestyle exploratory testing to the antithesis [[scripted testing]], which basically means that test cases are designed in advance, including steps to reproduce and expected results. These tests are later performed by a tester who compares the actual result with the expected.
 
When performing exploratory testing, there are no exact expected results; it is the tester that decides what will be verified, critically investigating the correctness of the result.
Line 20:
The main advantage of exploratory testing is that less preparation is needed, important bugs are found fast, and is more intellectually stimulating than scripted testing.
 
Another major benefit is that testers can use [[deductive reasoning]] based on the results of previous results to guide their future testing on the fly. They do not have to complete thea current series of scripted tests before focussingfocusing in on or moving on to exploring a more target rich environment. This also accelerates bug detection when used intelligently.
 
Another major benifitbenefit is that most bugs, after initial testing, most bugs are discovered by some sort of exploratory testing. This can be demonstrated logically by stating, "Programs that pass certain tests tend to continue to pass the same tests and are more likely to fail other tests or scenarios that are yet to be explored."
 
Disadvantages are that the tests can't be reviewed in advance (and by that prevent errors in code and test cases), and that it can be difficult to show exactly which tests have been run.
 
When repeating freestyle exploratory tests, they will not be performed in the exact same manner, which can be an advantage if it is important to find new errors; or a disadvantage if it is more important to know that exact things are functional.
 
==Usage==
Line 38:
*[http://www.context-driven-testing.com The Seven Basic Principles of the Context-Driven School]
*[http://www.checkpointech.com/sqa-software-solutions-4.php Exploratory Testing Theory, Tools and Training]
*[http://www.testingeducation.org/a/nature.pdf Exploratory & Risk Based Testing www.testingeducation.org 2004, by Cem Kaner & James Bach]
 
==See also==