Exploratory Testing Explained

Exploratory Testing is a term that is widely used in the software testing industry, but sadly it is also much misunderstood. Many presume it wrongfully to denote any kind of testing where a software tester explores the application. Lets now attempt to understand what Exploratory Testing is all about.

Exploratory Testing is the process of simultaneous learning, test design and test execution. A software tester given an application, start learning about it in the course of using it, design the test cases on the fly based on the assumptions and pre-sumptions he gather over the course of his usage, and then tests the application response to them. Exploratory Testing is not the same as "random" testing, neither does it qualify to mean as "unstructured" testing. It in fact is an approach that is completely teachable, manageable and repeatable.

Exploratory Testing is more about investigation of an application. It emphasizes adaptability and learning. The more you "explore" an application, the more you learn about its behavior, the more you refine your test cases, and the better you are able to test it. Learning about the application, its interaction and the system in which it survives is the key here. A pragmatic viewpoint advocates using exploratory testing at the start of a test project where you know the least about the system. This allows one to learn about the system a form a better test plan that can be laid out.

So does Exploratory Testing replace structured testing completely? Well the answer is no. One cannot use Exploratory Testing saying he lacks time, or does not want to create test cases etc. Its not a replacement for having a proper test strategy. It is meant to be used for different reasons and at different contexts. One situation where you may want to use Exploratory Testing is given lack of test specifications or any documentation, you are supposed to infer how an application works, what it does, what all workflows are available etc. So you attempt to explore the application to learn it, design a test strategy as well as execute it - all at once. Exploratory Testing can also be used when you want to complement your structured testing, and wish to uncover behavior of the application that could have been untested.

No comments:

Post a Comment