What is Exploratory Testing

Is exploratory testing similar to an ad-hoc test or monkey testing?  Among software testers, there is admittedly, still some confusion with regard to the term "exploratory testing".  The confusions lie in its technicalities; An exploratory test is almost similar to monkey testing or an ad-hoc testing and these 3 testing methods are unscripted in their nature.

The term ‘exploratory testing’ was first publicly used by Cem Kaner in the book “Testing Computer Software”. Another known pioneer of exploratory testing is James Bach.  The definition provided by Bach states that, “Any testing to the extent that the tester actively controls the design of the tests as those tests are performed and uses information gained while testing to design new and better tests.”

Bach and Kaner define exploratory testing as any testing process that involves simultaneous learning, test design, and test execution. There are many other additional descriptions or definitions of exploratory testing which are more or less rewordings or rephrasing of the definitions provided by Bach and Kaner.

Some of the features of exploratory testing that are quite helpful in understanding the basic details of exploratory testing are listed here below:

  • You can perform both test design and test execution at the same time. Unlike in scripted software testing, the test design is not determined before the start of the test. The tester is free to decide what follows next, based on the outcome of the previous test. Almost all testing steps depend on the skill and know-how of the tester in finding possible errors. This characteristic of exploratory testing is also referred to as concurrence cognition and execution.
    .
  • This test is very informal. There is no standard and prescribed approach for exploratory testing. The tester’s knowledge influences or will decide the kind of approach used for testing. Different testers have different knowledge, skills or expertise depending on their respective experiences and trainings.
    .
  • The tester has the freedom to temporarily stop testing and do advanced researches to learn more and understand the program in a better manner, especially when the information is mandatory for designing the next test. In fact, the tester’s response to the results is very important to the success or failure to detect errors.
    .
  • An exploratory test is a journey of many discoveries. One important trait of a good exploratory tester is the curiosity to investigate about the software and the test results. Exploratory testing gives testers the chance to develop his or her creative side.
    .
  • Limited documentation of the actual tests performed or designed based on the results of the previous tests is an added advantage. The complete documentation will distract the tester from conducting the fully loaded exploratory test.
    .
  • It offers lot of value and importance to unearth errors are still misunderstood or undetected. Some testers are not comfortable with an unscripted test procedure like exploratory test, because there would be no control on the kind of testing the product will undergo. Some testers even doubt on the viability of this test.
    .
  • It offers you a situational structure. The course or path taken depends largely on the situation or test results at hand. To be successful, the tester should have the required knowledge to correctly assess the situation and consequently arrive at the right design for the next test.
    .
  • It is learn and work type of testing approach. The tester learns about a product, not just a testing method. To be able to react correctly, the tester must know the entire product very well.

Exploratory testing will be handy and useful for deployment, if the requirements and specifications are incomplete, or when there is a paucity of time. You can use exploratory testing approach to verify and confirm that previous testing was successful in finding the most important defects and errors.

Why do we need Exploratory Testing?

Why testers are trained to conduct exploratory testing? Why do we need exploratory testing?  Although often misunderstood, every tester performs exploratory testing. Basically, the knowledge of exploratory testing will help testers to create robust and better software systems. There are many more reasons that make testing software with exploratory testing very important.

  • While preparing a testing procedure, the author usually conducts exploratory testing to come up with a workable testing script.
    .
  • The lack of/or incomplete requirements or specifications make it difficult to write a testing procedure. Exploratory testing is suitable in this situation, where there is limited knowledge or information about the product.
    .
  • When there is a paucity of time to write a test script or when software testing information is needed immediately, you may be forced to conduct this test. A skilled exploratory tester could design a special test for the specific characteristic to be tested.
    .
  • Repaired units should undergo exploratory testing, until all discrepancies are satisfactorily corrected.

Advantages of Exploratory Testing

There are several advantages and benefits to an exploratory test. Here are some of them:

  • You can introduce it in the early stages of the software development, since there is no restriction on the number of tests you can perform. The tester may design and create the test that is applicable in all stages of development
    .
  • It is flexible and cost effective.
    .
  • It is more productive than scripted testing, because the tester can omit or prevent unnecessary tests, if the preceding tests confirm no further tests are needed. In a scripted test, you should perform and document the whole testing process, regardless of the previous results.
    .
  • Preparation time is very less for preparing testing script.
    .
  • You can find errors and bugs quickly and easily, if you choose to go directly to performing a test that would detect such errors. You can do this exercise based on the software information learned from reliable sources. The tester’s ability to identify the areas where the errors are most likely to occur comes from acquiring knowledge and skills of software testing.
    .
  • Learning, research, design and execution of the test will be stimulating to the investigative mind of the tester. The tester can learn more about the software for testing and can do some research to determine the best design for the next stage, which is to design the test and execute it at the same time.
    .
  • The tester may perform only the tests that are deemed necessary. However, in case potential errors are suspected, the tester has the complete freedom to explore immediately, to ensure that potential concerns have been addressed. This is a real advantage over scripted testing, where the tester tests strictly according to the designed steps or instructions. The tester will focus on the compliance aspect of the testing method rather than observing the preliminary results.

Disadvantages of Exploratory Testing

With all its positive advantages, exploratory testing has some demerits and pitfalls too. Some of them are as follows:

  • The test conducted to catch the errors is not repeatable. This could result in the wastage of money and time, especially when there is are large numbers of software applications that are waiting for testing. The company may assign somebody to document the testing process, as the tester will continue to work on the exploratory testing.
    .
  • An apparent lack of documentation can be a big bottleneck. Test records are important references. Records are solid proofs that the tester can provide to the management.
    .
  • You may need the services of skilled testers to improve the error-detection capability. Expertise is surely a great advantage, but a tester, who is willing to learn about the product and research on the most effective way to proceed with testing, can be a good exploratory tester. An inquisitive mind, with the ability to spot signs of potential troubles is an important asset in exploratory testing.

Software testing is one of the important quality control tools. Testing an application not only screens out non-conforming or sub-standard products, it also becomes the part of the feedback loop to inform the development personnel of possible errors encountered during testing. From the error data provided by the testing group, appropriate corrective measures can be implemented very easily. Testing would also develop the ability to check that the corrective actions have really eliminated the errors previously encountered, and later feedback the results to the developers.

Due to incomplete exploratory testing documentations, the feedback from the developing group will be usually verbal and immediate. As the exploratory testers are not mere testing machine operators, an intelligent discussion about the problems encountered during testing could be exchanged among the team members.

Real-time discussion of the defects and errors encountered is vital to a company’s quality improvement program. This feedback loop will plan to improve the product in terms of quality and cost. Improvement in the product would shorten development time, because of lowered time requirement for trouble shooting and re-testing. Eventually, the cost of software development would become less too.

Exploratory testing could be a powerful tool to detect software errors, depending on how you use it. Exploratory testers should have creativity, knowledge or past information about the product, attention to details, imagination, intuition, and the willingness to learn. The right attitude and proper training, to be able to react correctly and quickly to emerging situations or varying test results are necessary for an effective exploratory testing procedure. It is very important to use both the scripted and the unscripted methods.

In this way, you can balance the weaknesses of scripted testing with the strengths of exploratory testing and vice versa. Exploratory software testing is a powerful and entertaining approach to testing software. In some situations, it can be even more productive and beneficial than scripted testing.

[catlist id=195].

Related posts