A TEST CASE is a documented set of preconditions (prerequisites), procedures (inputs / actions) and postconditions (expected results) which a tester uses to determine whether a system under test satisfies requirements or works correctly. A test case can have one or multiple test scripts and a collection of test cases is called a test suite.
ISTQB Definition
- test case: A set of preconditions, inputs, actions (where applicable), expected results and postconditions, developed based on test conditions.
- high-level test case: A test case with abstract preconditions, input data, expected results, postconditions, and actions (where applicable).
- low-level test case: A test case with concrete values for preconditions, input data, expected results and postconditions and detailed description of actions (where applicable).
Typical Test Case Parameters
- Test Case ID
- Test Scenario
- Test Case Description
- Test Steps
- Prerequisite
- Test Data
- Expected Result
- Test Parameters
- Actual Result
- Environment Information
- Comments
Test Case Template
A test case can have the following elements. Note, however, that a test management tool is normally used by companies and the format is determined by the tool used.
Test Suite ID | The ID of the test suite to which this test case belongs. |
Test Case ID | The ID of the test case. |
Test Case Summary | The summary / objective of the test case. |
Related Requirement | The ID of the requirement this test case relates/traces to. |
Prerequisites | Any prerequisites or preconditions that must be fulfilled prior to executing the test. |
Test Script / Procedure | Step-by-step procedure to execute the test. |
Test Data | The test data, or links to the test data, that are to be used while conducting the test. |
Expected Result | The expected result of the test. |
Actual Result | The actual result of the test; to be filled after executing the test. |
Status | Pass or Fail. Other statuses can be ‘Not Executed’ if testing is not performed and ‘Blocked’ if testing is blocked. |
Remarks | Any comments on the test case or test execution. |
Created By | The name of the author of the test case. |
Date of Creation | The date of creation of the test case. |
Executed By | The name of the person who executed the test. |
Date of Execution | The date of execution of the test. |
Test Environment | The environment (Hardware/Software/Network) in which the test was executed. |
Writing Good Test Cases
- As far as possible, write test cases in such a way that you test only one thing at a time. Do not overlap or complicate test cases. Attempt to make your test cases ‘atomic’.
- Ensure that all positive scenarios AND negative scenarios are covered.
- Language:
- Write in simple and easy-to-understand language.
- Use active voice instead of passive voice: Do this, do that.
- Use exact and consistent names (of forms, fields, etc).
- Characteristics of a good test case:
- Accurate: Exacts the purpose.
- Economical: No unnecessary steps or words.
- Traceable: Capable of being traced to requirements.
- Repeatable: Can be used to perform the test over and over.
- Reusable: Can be reused if necessary.