IEEE 829 Standard : Test case template
As per IEEE 829 standard the test case should have the following information in Test case. Different organizations have modified this template as per their needs, however any template that is followed by organizations contains all the below mentioned information.
Test Case
A test case is a set of actions performed on a system to determine if it satisfies software requirements and functions correctly. The purpose of a test case is to determine if different features within a system are performing as expected and to confirm that the system satisfies all related standards, guidelines, and customer requirements. Writing a test case can also help reveal errors or defects within the system.
Test cases are typically written by members of the Quality Assurance (QA) team or the testing team and can be used as step-by-step instructions for each system test. Testing begins once the development team has finished a system feature or set of features. A sequence or collection of test cases is called a test suite.
A test case document includes test steps, test data, preconditions, and post conditions that verify requirements.
Why test cases are important
Test cases define what must be done to test a system, including the steps executed in the system, the input data values that are entered into the system, and the results that are expected throughout test case execution. Using test cases allows developers and testers to discover errors that may have occurred during development or defects missed during ad hoc tests.
The benefits of a compelling test case include:
- Guaranteed good test coverage.
- Reduced maintenance and software support costs.
- Reusable test cases.
- Confirmation that the software satisfies end-user requirements.
- Improved quality of software and user experience.
- Higher quality products lead to more satisfied customers.
More satisfied customers will increase company profits. Overall, writing and using test cases will lead to business optimization. Clients are more satisfied, customer retention increases, the costs of customer service and fixing products decrease, and more reliable products are produced, which improves the company’s reputation and brand image.
Types of test cases
The various test case types include:
Functionality test cases: This is a type of black box testing that can reveal if an app’s interface works with the rest of the system and its users by identifying whether the functions that the software is expected to perform are a success or failure. Functionality test cases are based on system specifications or user stories, allowing tests to be performed without accessing the internal structures of the software. The QA team usually writes this test case.
Performance test cases: These test cases can validate response times and confirm the overall effectiveness of the system. Performance test cases include a stringent set of success criteria and can be used to understand how the system will operate in the real world. The testing team typically writes performance test cases, which are often automated because one system can demand hundreds of thousands of performance tests.
Unit test cases: Unit testing involves analyzing individual units or components of the software to confirm each unit performs as expected. A unit is the smallest testable element of software. It often takes a few inputs to produce a single output.
User interface test cases: This test case type can verify that specific elements of the graphical user interface (GUI) look and perform as expected. UI test cases can reveal errors in elements that the user interacts with, such as grammar and spelling errors, broken links, and cosmetic inconsistencies. UI tests often require cross-browser functionality to ensure an app performs consistently across browsers. These test cases are usually written by the testing team with help from the design team.
Security test cases: These test cases confirm that the system restricts actions and permissions when necessary to protect data. Security test cases often focus on authentication and encryption and frequently use security-based tests, such as penetration testing. The security team is responsible for writing these test cases — if one exists in the organization.
Integration test cases: An integration test case is written to determine how the different software modules interact. The primary purpose of this test case is to confirm that the interfaces between other modules work correctly. Integration test cases are typically written by the testing team, with input from the development team.
Database test cases: This type of test case examines what is happening internally, helping testers understand where the data is going in the system. Testing teams frequently use SQL queries to write database test cases.
Usability test cases: A usability test case can be used to reveal how users naturally approach and use an application. Instead of providing step-by-step details, a usability test case will give the tester a high-level scenario or task to complete. The design and testing teams typically write these test cases, and they should be performed before user acceptance testing.
User acceptance test cases: These test cases focus on analyzing the user acceptance testing environment. They are broad enough to cover the entire system, and they aim to verify if the application is acceptable to the user. The testing team or product manager prepares user acceptance test cases and then used by the end-user or client. These tests are often the last step before the system goes to production.
Regression testing: This test confirms recent code or program changes have not affected existing system features. Regression testing involves selecting all or some of the executed test cases and rerunning them to ensure the software’s existing functionalities perform appropriately.