Learn What Is The Difference Between Test Plan, Test Strategy, Test Case, Test Script, Test Scenario And Test Condition With Examples:
Software Testing includes several basic as well as important concepts that every software tester should be aware of.
This article will explain the various concepts in Software Testing along with their comparison.
Test Plan vs Test Strategy, Test Case vs Test Script, Test Scenario vs Test Condition and Test Procedure vs Test Suite are explained in detail for your easy understanding.
The above question asked by Sasi C. is the most often asked question in our software testing class and I always tell our participants that with the experience we hardly notice these words and that they become a part of our vocabulary.
But often, confusion surrounds these and in this article, I am trying to define few commonly used terms.
Various Software Testing Concepts
Enlisted below are the various Software Testing Concepts along with their comparison.
What You Will Learn:
Difference Between Test Plan And Test Strategy
Test Plan: A test plan can be defined as a document that defines the scope, objective, and approach to test the software application. The test plan is a term and a deliverable.
The test plan is a document that lists all the activities in a QA project, schedules them, defines the scope of the project, roles & responsibilities, risks, entry & exit criteria, test objective and anything else that you can think of.
The test plan is as I like to call a ‘super document’ that lists everything there is to know and need. Please check this link for more information and a sample.
The test plan will be designed based on the requirements. While assigning work to the test engineers, due to some reasons one of the testers gets replaced by another one. Here, the test plan gets updated.
The test strategy outlines the testing approach and everything else that surrounds it. It is different from the test plan, in the sense that a Test strategy is only a subset of the test plan. It is a hardcore test document that is to an extent generic and static. There is also an argument about at what levels test strategy or plan is used- but I really do not see any discerning difference.
Example: The test plan gives information about who is going to test at what time. For example, Module 1 is going to be tested by “X tester”. If tester Y replaces X for some reason, the test plan has to be updated.
Suggested Read => Test Plan Tutorial – A Perfect Guide
Test Strategy: Test strategy is a set of guidelines that explain the test design and determine how testing needs to be done.
Example: A test strategy includes details like “Individual modules are to be tested by the test team members”. In this case, who tests it does not matter – so it’s generic and the change in the team member does not have to be updated, keeping it static.
Further reading => Guide to Writing a Good Test Strategy document.
|TEST PLAN||TEST STRATEGY|
|It is derived from software requirement specification(SRS).||It is derived from the Business Requirement document(BRS).|
|It is prepared by the test lead or manager.||It is developed by the project manager or the Business analyst.|
|Test plan id, features to be tested, test techniques, testing tasks, features pass or fail criteria, test deliverables, responsibilities, and schedule, etc. are the components of the test plan.||Objectives and scope, documentation formats, test processes, team reporting structure, client communication strategy, etc. are the components of test strategy.|
|If there is a new feature or a change in the requirement that is happened then the test plan document gets updated.||Test strategy maintains the standards while preparing the document. It is also called as Static document.|
|We can prepare the test plan individually.||In smaller projects, test strategy is often found as a section of a test plan.|
|We can prepare a Test plan at the project level.||We can use Test strategy at multiple projects.|
|It describes how to test , when to test, who will test and what to test.||It describes what type of technique to follow and which module to test.|
|We can describe about the specifications by using a Test Plan.||Test strategy describes about the general approaches.|
Difference Between Test Case And Test Script
In my opinion, these two terms can be used interchangeably. Yes, I am saying there is no difference. The test case is a sequence of steps that help us perform a certain test on the application. The test script is also the same thing.
Now, there is one school of thought that a test case is a term used in the manual testing environment and test script is used in an automation environment. This is partly true, because of the comfort level of the testers in the respective fields and also on how the tools refer to the tests (some call test scripts and some call them to test cases). So in effect, test script and test case both are steps to be performed on an application to validate its functionality whether manually or through automation.
|TEST CASE||TEST SCRIPT|
|It is a step by step by procedure that is used to test an application||It is a set of instructions to test an application automatically.|
|The term Test Case is used in the manual testing environment.||The term Test Script is used in automation testing environment.|
|It is done manually.||It is done by scripting format.|
|It is developed in the form of templates.||It is developed in the form of scripting.|
|Test case template includes Test Suit ID, Test Data, Test procedure, Actual results, Expected results etc.||In Test Scrip,t we can use different commands to develop script.|
|Is used to test an application.||It is also used to test an application.|
|It is the base form to test an application in sequence.||Once we develop, the script will run it multiple times until the requirement is changed.|
|Example: We need to verify the login button in an application, |
The steps include:
a) Launch the application.
b) Verify if the login button is displaying or not.
|Example: We want to click an image button in an application. |
The script includes:
a) Click the Image Button.
Difference Between Test Scenario And Test Condition
Test Scenario: It is a way to define all the possible ways to test an application. It is a single statement to cover all possible ways to test an application.
Test Condition: Test Condition is the specification that a tester must follow for testing an Application.
This is a one-line pointer that testers create as an initial, transitional step into the test design phase. This is mostly a one-line definition of “What” we are going to test with respect to a certain feature. Usually, test scenarios are input for the creation of test cases. In agile projects, Test scenarios are the only test design outputs and no test cases are written following these. A test scenario might result in multiple tests.
Examples of test scenarios:
1. Validate if a new country can be added by the Admin
2. Validate if an existing country can be deleted by the admin
3. Validate if an existing country can be updated
Test conditions, on the other hand, are more specific. It can be roughly defined as the aim/goal of a certain test.
Example test condition:
In the above example, if we were to test the scenario 1, we can test the following conditions:
1. Enter the country name as “India”(valid )and check for the addition of the country
2. Enter a blank and check if the country gets added.
In each case, the specific data is described and the goal of the test is much more precise.
Further reading => 180+ Sample Test Scenarios for Testing Web and Desktop Application.
|TEST SCENARIO||TEST CONDITION|
|It is a process to test an application with all possible ways.||Test conditions are the static rules should be followed to test an application.|
|Test scenarios are an input for the creation of test cases.||It gives the main goal to test an application.|
|Test scenario covers all possible cases to test an application.||Test condition is very specific.|
|It reduces the complexity.||It makes a system bug free.|
|Test scenario can be a single or a group of test cases.||It is the goal of test cases.|
|By writing scenarios it will be easy to understand the functionality of an application.||Test condition is very specific.|
|These are one line statements to explain what we are going to test.||Test Condition describes the main goal to test an application.|
|Examples test scenarios:|
#1) Validate if a new country can be added by the Admin.
#2) Validate if an existing country can be deleted by the admin.
#3) Validate if an existing Country can be updated.
|Examples test Conditions:|
#1) Enter the country name as “India” and check for the addition of the country.
#2) Leave blank fields and check if the country gets added.
Difference Between Test Procedure And Test Suite
The test procedure is a combination of test cases based on a certain logical reason, like executing an end-to-end situation or something to that effect. The order in which the test cases are to be run is fixed.
Test Procedure: It is nothing but the test life cycle. There are 10 steps in the Testing Life Cycle.
- Effort Estimation
- Project Initiation
- System Study
- Test plan
- Design Test Case
- Test Automation
- Execute Test Cases
- Report Defects
- Regression Testing
- Analysis and Summary Report
For example, if I was to test the sending of an email from Gmail.com, the order of test cases that I would combine to form a test procedure would be:
1. The test to check the login
2. The test to compose an email
3. The test to attach one/more attachments
4. Formatting the email in the required way by using various options
5. Adding contacts or email addresses to the To, BCC, CC fields
6. Sending an email and making sure it is showing in the “Sent Mail” section
All the test cases above are grouped to achieve a certain target at the end of them. Also, test procedures have a few test cases combined at any point in time.
The test suite, on the other hand, is the list of all the test cases that have to be executed as a part of a test cycle or a regression phase, etc. There is no logical grouping based on functionality. The order in which the constituent test cases get executed may or may not be important.
Test Suite: The test suite is a container that has a set of tests which help the testers in executing and reporting the test execution status. It can take any of the three states i.e. Active, in progress and completed.
Example of the Test Suite: If an application’s current version is 2.0. The previous version 1.0 might have had 1000 test cases to test it entirely. For version 2 there are 500 test cases to just test the new functionality that is added in the new version.
So, the current test suite would be 1000+500 test cases that include both regression and the new functionality. The suite is a combination too, but we are not trying to achieve a target function.
Test suites can contain 100s or even 1000s of test cases.
|TEST PROCEDURE||TEST SUITE|
|It is a combination of test cases to test an application.||It is a group of test cases to test an application.|
|It is a logical grouping based on the functionality.||There is no logical grouping based on the functionality.|
|Test Procedures are deliverable products in the software development process.||It is executed as a part of the test cycle or regression.|
|The order of execution is fixed.||The order of execution may not be important.|
|Test procedure contains end to end test cases.||Test suite contains all new features and regression test cases.|
|Test procedures are coded in a new language called TPL(Test Procedure language).||Test suite contains manual test cases or automation scripts.|
|Creation of Test Procedures is based on the end to end test flow.||Test suites are created based on the cycle or based on the scope.|
Software Testing Concepts play a major role in the Software Testing Life Cycle.
A clear understanding of the above-discussed concepts along with their comparison is very important for every Software Tester to carry out the testing process effectively.
Usually, articles like these are excellent starting points for deeper discussions. So, please contribute your thoughts, agreements, disagreements and anything else, in the comments below. We look forward to your feedback.
We also welcome your questions about software testing in general or anything related to your testing career. We will address these in more detail in our upcoming posts in the same series.