A test case is a set of conditions used to determine the correct functioning of the software. In the most basic scenario, it boils down to a simple pair of <input, expected outcome>. A sequence of test cases systemized according to the predefined testing technique is called a test suite.
Test case preparation is part of overall test planning. It involves constructing or automatically generating test cases, selecting from existing ones for legacy products, and systematizing them for effective management.
There is always a set of functionalities to test. It is essential to break them down into the possible test scenarios, also called business flows, e.g., registration flow or login flow.
But test scenarios are vague and cover a wide range of possibilities. As a result, there is a need in test cases - specific documents aimed to test one situation that may occur during the software use. Below is an example of how a test case can look like.
Test Case vs Checklist
Test cases sometimes get replaced with checklists that allow QA engineers to “check off” when a test case and follow-up activities have been carried out. There are checklists for various testing types, such as functional and structural checklists, as well as those covering certain properties (coding standard, specific specification items, etc.)
Let’s take a closer look at the differences between checklists and test cases.
As can be seen, one remarkable characteristic of checklists is that they are usually not very specific and, therefore, do not provide enough detail for QA engineers to start a test run. There are some other reasons why it can be hard to effectively use checklists for testing:
- It is difficult to produce a checklist that would cover all the functional or structural components from different perspectives, preventing coverage holes
- Overlaps between items put on the list result in the redundant testing effort
- Complex interactions between system components or functions are hard to reproduce using checklists
Test Cases Hierarchy
Test cases are usually grouped into test suites by a certain feature or requirement they check. Test suite preparation involves constructing and systematizing test cases according to the chosen testing technique. Another way to form a test suite is through the reuse of test cases for earlier versions of the same software, i.e. regression testing.
As for a test plan, it combines a set of features that need to be tested. It involves a framework, scope, required effort and resources, schedule, and a budget. The purpose of test planning is to get ready for test execution.
Main Attributes of a Test Case
The test case has a strict set of attributes that should be addressed:
- Unique Identification Number (ID)
- Purpose - feature to be tested
- Priority - indicates what tests are more urgent to conduct
- Prerequisites - define pre-test conditions of the software and outline what needs to be done
- Test data - input values - specified types of data, files, or unusual lists of characters
- Test steps - show what actions should be performed to get the expected results
- Expected results - outcomes of the actions performed
- Result – ‘pass/fail’
- Comments – additional info
Watch the video to get the practical experience of creating a test case.
As you can see, test case creation requires some skill and effort. However, it is a crucial part of test execution. To get more information, watch the webinar on best practices for test case management.
Tools for Test Case Management
Test case creation and management requires the right tool to make the process easier. There is a considerable amount of products available on the market. The choice depends on the team and the functions required from a test case management system. The following characteristics should be considered:
- tools for managing test cases should integrate with issue management tools to easily track and manage a project
- produce simple test cases, preserving the ability to add more complexity if needed
- offer easy creation of test runs/test suites and user-friendly interface
- contain the function of managing tasks and assigning them to specific testers
- present valid data at the required time
- have easy installation and support
- import the test cases created in a different test case management system
Mastering test case management is an important task for an aspiring QA engineer. Take into account the project’s specifications and choose appropriate tools, so you can make the most of your testing strategy and ensure the maximum quality of the software yet to be tested.