Difference Between Test Plan, Test Strategy, Test Case, Test Script, Test Scenario And Test Condition

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.

Software Testing Concepts

Question: “We almost have an overload of technical terms when working in an IT environment. There are processes, documents, tasks and everything else that is addressed by its own technical name. Now, how are we to remember, understand and use them in the right context every single time?”

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.

software testing questions and answer series

Various Software Testing Concepts

Enlisted below are the various Software Testing Concepts along with their comparison.

Let's Start!!

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 PLANTEST 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.

Further reading => How to Write Effective Test Cases? and Test Case Example Template.

TEST CASETEST SCRIPT
It is a step by step by procedure that is used to test an applicationIt 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 SCENARIOTEST 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.

They are:

  1. Effort Estimation
  2. Project Initiation
  3. System Study
  4. Test plan
  5. Design Test Case
  6. Test Automation
  7. Execute Test Cases
  8. Report Defects
  9. Regression Testing
  10. 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 PROCEDURETEST 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.

Conclusion

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.

Happy Reading!!

PREV Tutorial | NEXT Tutorial

Recommended Reading

60 thoughts on “Difference Between Test Plan, Test Strategy, Test Case, Test Script, Test Scenario And Test Condition”

  1. Very good article.
    I would have added more details about the strategy…it is something seldom taken into consideration. the definition that I like best: “A test strategy is an outline that describes the testing approach for testing in the software development cycle. It includes the testing objective and methods of testing.”. also James Bach description of a strategy is quite nice and simple: Specific, Practical, Justified.

  2. Hi ,

    This is very informative blog , In simple Term, Manual testing more commonly called as test case in which include a input value ,execution precondition , expected results etc . Test script is like a one type of program written in programming language used in test plan of functionally . Test scenario means to have more test case .

  3. Hi,
    If application is travel portal and changes are happening frequently then how to design test cases for frequent changes in functionliaty.

  4. Hi! I would like to add smth:
    “During test implementation the test cases are developed, implemented, prioritized and organized in the test procedure specification (IEEE STD 829-1998). The test procedure specifies the sequence of actions for the execution of a test. If tests are run using a test execution tool, the sequence of actions is specified in a test script (which is an automated test procedure).”

    So according to syllabus for exam: test case and test script are different. We can say that test procedure and test script are the same (manual and automated testing). So test script is SEQUENCE OF ACTIONS to execute the test (test – is 1 or more test cases according to IEEE 829). And Test Case is set of input values, exec precondition, expected results and exec post condition. All definitions are from glossary and syllabus for exam.

  5. To the Author,

    Article is written in a nice way and looks professional though I tend to disagree on the point that says “Test Strategy” is a subset of “Test Plan”. I think this is wrong. Plan comes out of the Strategy. Test Strategy is the first document that is created in Software Testing Life Cycle and usually created by the people of the Test Manager level. So Test Strategy comes first, Test Plan is the second in the hierarchy, Test Specification (List of test scenarios) is the next to Test Plan, From Test Scenarios, the Test Cases are derived and then the test execution starts.

  6. I suggest its helpful if any article regarding importance of automation tools is provided
    And which is best tool for the starters who don’t have any knowledge on automation tools with good manual testing experience.

  7. I have to write a test plan for load test for a banking software.I just want to know for load test should I have to write a test plan or test strategy or scenario or something else?
    How can I start to write that as I have no previous experience?

  8. I am currently doing manual testing.
    Is there future only in manual testing?
    Or Do I need to study automation?
    Which one do you suggest ?

    Regards
    Vivek

  9. @Azharuddin Khan: Functionality scope has to be constant for us to write test cases accurately. However, if in real time this is not happening, it can be quite challenging – I will suggest keeping in touch with the developers, designers and BA to stay informed and communicate that frequent changes are going to make testing inaccurate

  10. @Ramarajan: Test suite is all the test cases. Test set is a list of test cases that are going to be executed as a group- this might be all or some. Thank you for submitting your question

  11. @Vivek: It depends. If you want to become a manager, it is better to learn Quality Assurance and Project Management subjects. If you want to stay and grow into a much more technical role, then automation might be your next step. In any case, automation knowledge is good to have.

    Also, skill upgrading is always a necessity. So one way or the other, try automation testing. It is fun :)

  12. To the author…

    Article is good to some extent.

    but difference between test strategy and Test plan is not correct according to the global standards and all major testing institutions and Boards.

    Test Strategy is very high level Document when compared to test plan and after test strategy only Test plan will be prepared.

    Plz verify IT

  13. @chandy: Thank you Chandy for letting you know that you differ from us. This is exactly what we wanted to initiate- a brain storming of sorts. We are glad you could contribute

  14. Test strategy nothing but type of level of testing like unit testing , integrate testing ,system testing acceptance testing. Test case is nothing but set of producer that use to test the build with vaild and invaild test data by using requirements.

  15. Very informative article

    But im not quite sure about Test procedure and Test suites, I though test procedures are actually test case steps and Test suites are a collection or combination of test cases of related functions within a module.

  16. Hello,

    I read this 2-3 times and I came up with certain questions based on my Testing knowledge, Test artefacts knowledge.

    1. You mentioned ‘Test Plan’ is a ‘Document’? How a plan is a document? A plan in your ‘Head’ and when it is formally / informally documented it takes shape of Test Plan Document. Isn’t it? You can have a Test Plan and may not have it documented at all? The kind of documentation you are suggesting is based on IEEE Test Plan Document Template created with a different vision or it may also take shape from a ‘organization’ tailored ‘Test Plan Template’. Also, from a Test Management Tool perspective (QC, MSFT – VSTS and others), a ‘Test Plan’ is a ‘collection’ of carefully selected ‘Test Cases’ targeted / being scheduled to be ‘Executed’ for a coming release.

    When someone ‘Plan’ testing, it is not necessary to have that documented at all unless it is a ‘Necessity’ defined by the ‘Context’ of the software Project / Product being tested. As I learnt and I am completely agree with James Bach over definition of test plan which reads as ‘A good test plan, whether documented or not, expresses a set of choices about the test process’

    2. In a similar way you described ‘Strategy’ again as a document, No it is not, a test strategy guides your ‘Test Design’, Its not generic, It is Specific to the ‘Product’, ‘Project’, ‘Component’ you are testing. It is not ‘Static’ as well, it is ‘Dynamic’ in nature unless you believe that there is nothing to ‘Learn’ in the system as you go ahead with testing it and from that learning of the system, you have nothing to ‘Optimize’, nothing to ‘Add’, ‘Deprecate’ from your Strategy. As you test the software product, Strategy evolves over the time and that’s the beauty when you look at it once you deliver the software testing information to your manager and feel ‘awesome’ for your ‘Test Strategy’ which helped you in Testing software with ‘Efficiency’, ‘Effectiveness’, ‘Economically’, ‘Aggressively address all risk areas and coverage’.

    In essence Planning and Strategy should never be confused by ‘Documentation’ tag to it. Its more than that.

    I would be glad to hear your comments on it

  17. Thank you , this is really helpful to clear basics of testing.
    But I am not clear or having confusion about defining following things…….

    1. Model 2. Methodology 3. Framework 4. approach, 5. Scope 6. methods. If any one can help me to differentiate this, then it will really helpful for me…?

  18. I think Strategy is nothing but a sub set of test plan which defines some set of rules like constraints that we have to follow/focus while using test plan or even during test execution cycle.

  19. This artucle is very good. I read the article completely including all comments. Thank you all for your contrubution.

    Here is my understanding on Test Plan and strategy.

    In some organization test strategy is kept as a separate document and some include test strategy as a sub section in Test plan itself. There is no hard core rule.

    As Swati said test strategy is static, it is partly true but not very static in nature. It is updated when the cope of testing changes or a new type of testing is added to the project.

    As in my organization test strategy was updated after a year to include 508 testing as per regession suite.

    But test plan used to update for each release. It maybe once in a quarter for major release and twice in a month for minor release.

    Any comment on this are welcome.

    Pramod Mallick

  20. I agree with Mihir Mehta. Test Strategy is THE first document dreated during the Project Initiation phase. Test Plan follows

    Thanks
    Ram

  21. I have just started software testing course ; Please suggest me most important basic things that i need to know to get a good understanding of testing. I’ll be very thakfull to you.

  22. Thanks a lot Vijay for sharing this wonderful information with us.

    I do have a question here.

    What is the difference between test case and test condition ?

  23. Brilliant set of articles, but I’m still a little confused as to the order and hierarchy of documents: Do the Test Scenarios come before the Test Plan? It seems from your daily process for the Orange project that the Test Scenarios, precede the preparation of the Test Plan.

  24. Hi, I am also interested in question from Debanjan in comment #44 “What is the difference between test case and test condition ?”

  25. Hi, how do we create batch file(.bat) to execute selenium test suite when we are adding jar/library files using Maven dependencies.

Leave a Comment