In software testing, there are two approaches that are popular and widely used- Scripted testing and exploratory testing. In this tutorial, we will first discuss scripted testing and then look at some important differences between both approaches.
In traditional software development methodology, testing is a separate phase that does not overlap with any other phases. For example, in the waterfall model, once the development phase ends, the testing phase starts.
In such methodologies, the testing team prepares the documents required in the testing process before the testing phase begins and then performs the testing with the help of these documents. This approach i.e. planning and preparing testing documents before the actual testing is also used in today’s modern methodologies such as RAD and it is known as scripted testing.
What is Scripted Testing?
Scripted testing is an approach where the testing team sticks to the script that consists of test cases and detailed steps. The testing team follows these written test cases and executes them and tries to find any bugs in the system.
In scripted testing, the testing team prepares various documents such as test plan, test case specification, and many others based on the requirements specification. The main goal of the scripted testing is to keep the necessary documents ready before the testing process; the testing team should have instructions ready to be followed during the process.
Advantages of Scripted Testing
There are some advantages of using the scripted testing approach and they are explained below.
- The test cases are designed based on the requirements specification. This helps in covering all the features or functionalities of the system mentioned in the requirements document.
- Test cases designed by any individual can be used by other team members, too.
- Tracing the test cases to requirements becomes easier as test cases are designed after referring to the requirements specification.
- For complex applications such as finance-related applications where many business rules are involved, proper planning is required before the testing process starts. Scripted testing is a helpful approach for such applications.
- Creating automation scripts for automation testing based on the test cases is easier.
- While creating the test cases, the testing team can get an overall understanding and the working of the system that will help them in looking at the big picture and testing the system efficiently.
- If some requirements are missing from the requirements specification, they can be identified while designing the test cases.
- Scripted testing can be helpful to those testers who do not have enough domain knowledge to test the system on their own without any script.
- It is useful when repeatability is involved i.e. certain scenarios need to be tested again.
Disadvantages of Scripted Testing
Apart from some advantages mentioned in the above section, this approach has some disadvantages.
- Those scenarios that have not been covered in test case documentation might be missed during the testing process as the testers are supposed to follow the test script.
- Designing test plans and test cases, or any other testing documents, is a time-consuming process and it may not be suitable for projects where quick and rapid deliveries are expected.
- If requirements are not clear or incomplete, creating efficient test cases beforehand is not possible.
Difference between Scripted and Exploratory Testing
Exploratory testing is a testing approach where testers test the system while exploring it on the fly without any test documents to refer to. In this testing, unlike scripted testing, test design, and test execution take place parallelly without any planning. Exploratory testing is mainly useful in projects where rapid deliveries are expected, and frequent changes are integrated. In such projects, there may not be enough time to create testing documents and testers may need to test the system frequently and quickly.
There are two schools of thought when it comes to two testing approaches i.e. scripted testing and exploratory testing and there have been many experiments to decide which of the approaches is best. Both approaches have their advantages and disadvantages, it should be management’s decision when it comes to choosing any one of them based on the nature of the application and development methodology being used.
In this section, we will look at some of the differences between scripted testing and exploratory testing.
|Scripted Testing||Exploratory Testing|
|Before starting the testing, the testing team prepares the documents required for the testing process such as test plan, test cases.||The testing team does not need any test documents to start the testing.|
|Testers test the system by following the steps mentioned in test plan and test cases.||Testers test the system based on their skills and understanding of the system without following any test documents.|
|For scripted testing, highly skilled resources with proper domain knowledge are not required as for the testing process test cases are available to guide them. But to create the test documents, experienced and skilled resources are required.||Highly skilled resources with proper domain knowledge are required as there aren’t any test documents to refer to. Testers will have to use their own experience and imagination to find the defects.|
|Scripted testing is used in projects where there is enough time reserved for testing phase e.g. projects being developed using traditional software development methodologies.||Exploratory testing is used in projects where there isn’t enough time for test planning phase or test documents creation e.g. projects developed using agile methodology as they demand rapid delivery.|
|For scripted testing, clear and complete requirements specification is a must.||While conducting exploratory testing, testers can proceed further even without incomplete or no documentation, as they can explore the system on their own and learn the functionalities.|
|Finding critical bugs early in the testing process is usually not possible as testers need to follow each test case starting from the minor functionality.||Here, testers usually first focus on the major functionalities of the system that helps in identifying any critical issues early in the testing process.|
|Reproducing the bugs is easy as testers follow steps to test any scenario.||Reproducing the bugs may not be possible as testers do not have any written steps to follow.|
|In scripted testing, as testers follow the script to test the system, they do not get an adequate chance to explore their analytical and critical thinking.||Exploratory testing helps in increasing tester’s analytical and critical thinking along with productivity as they test the system on their own without any script.|
|Scripted testing ensures that all the features mentioned in the requirements specification have been covered in the testing process.||In exploratory testing, it is difficult to trace what all features have been covered.|
|A new tester can easily start testing the system as s/he has a set of steps that needs to be followed.||For a new tester, getting familiar with the system may take time especially when any complex applications are being developed.|
|Scripted testing helps in identifying any missing requirements from the requirements specification document, as test cases are designed based on the requirements document.||It is a bit difficult to identify any missing requirements as testers test the system while exploring the application without any proper test documentation.|
|For a testing team, maintaining a history of any changes in the system features with documented test cases is possible.||Here, maintaining and tracking any changes in the system features is not quite possible.|
A scripted testing approach is one where the testing team has to prepare formal test documents before starting the actual testing. It is a time-consuming process but at the same time, it gives maximum test coverage. In exploratory testing, testers do not have any formal documentation and they test the system based on their domain knowledge and analytical skills.
Both approaches are useful depending upon the project. The perfect idea for the successful testing process is to use both approaches. One of the ways of mixing both the approaches is to perform exploratory testing along with keeping track of what was tested and preparing a detailed bug report.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can find him on LinkedIn.