Many people have asked me which is better in software testing; exploratory vs scripted.
First, lets take a look at a basic explanation of each:
Scripted Testing (Wikipedia definition – Scripted Testing)
Scripted testing in regards to software testing is the detailed step-by-step approach to testing a specific piece of functionality. Generally, a test writer or QA manager will write a test case with specific step by step instructions that will also explain the expected results of the test.
A tester can then follow along and will know, based on the expected outcome, what should happen at the end of the test. Essentially, the tester will have “blinders” on and will do what they are instructed to do. There is little deviation from the “script” or list of steps.
Exploratory Testing (Wikipedia definition – Exploratory Testing)
Exploratory testing in regards to software testing means to basically take the (aforementioned) “blinders” off. Testers are given a page or section of a website with some high-level, basic functionality. The tester will then go through the section of the website with little to no steps in place, and with no real expected outcome. Exploratory by its very definition is unscripted and improvisational.
This type of testing really challenges the tester to think and function as an end-user. Exploratory testing also challenges the tester to try and break the website by performing things that may really be outside a normal testing scenario.
Comparing scripted vs. exploratory:
Scripted Testing – is usually very time intensive up front in order to write each step within a test case. Also, if the steps are too specific, they can become invalid or irrelevant if the deliverables are amended or changed. This would require maintenance to go back through and ensure that the test cases are still valid.
However, scripted testing can also ensure that each and every piece of functionality has been tested and passed as well as ensuring that all deliverables have been met. Scripted testing can also become automated which can help re-run tests for regression purposes in a very quick manner.
Exploratory Testing – is usually performed in the moment and the tests cannot be reviewed in advance. The tester has basically created the test on the fly. Other than the notes made during testing and review after the fact, there is no confirmation that all the requirements or deliverables have been met. Another drawback of exploratory testing is that it cannot be automated.
On the other hand, exploratory testing has much less preparation and can be scheduled and performed quickly. Severe bugs can be found sooner than later, which always saves time and money.
Exploratory testing is also much more stimulating for the tester and they usually feel more invested in the process.
Testing should always be a combination of both scripted AND exploratory testing. There are definite benefits and drawbacks to both. The amount of one over the other will always depend on the situation and where in the SDLC (Software Development Life Cycle) the project is in. Other circumstances may always come into play like performing a demo for a stakeholder, or a release of new functionality.
But a good test plan will always incorporate both testing strategies.
Do you have any thoughts or comments?? Let me know what you think…