Release testing is the process of testing a particular release of a system that is intended for use outside of the development team. Normally, the system release is for customers and users. In a complex project, however, the release could be for other teams that are developing related systems. For software products, the release could be for product management who then prepare it for sale. There are two important distinctions between release testing and system testing during the development process:
A separate team that has not been involved in the system development should be responsible for release testing.
System testing by the development team should focus on discovering bugs in the system (defect testing). The objective of release testing is to check that the system meets its requirements and is good enough for external use (validation testing).
The primary objective of release testing is to assure the system supplier that the software is ready for use and can be released as a product or delivered to the customer. Release testing demonstrates that the system meets specified functionality, performance, and dependability requirements, ensuring it operates reliably under normal conditions. It encompasses all system requirements, not just those of end-users.
Typically, release testing adopts a black-box approach, deriving tests from the system specification. This method treats the system as a black box, focusing solely on its inputs and outputs, without considering the software's internal implementation details. This approach is also known as functional testing, emphasizing the assessment of functionality rather than software implementation.
In good requirements engineering practice, requirements should be testable, meaning that a test can be designed to verify each requirement. Requirements-based testing follows a systematic approach to test case design, where tests are derived for each requirement. Unlike defect testing, requirements-based testing focuses on validation, aiming to demonstrate that the system has correctly implemented its requirements.
Release testing is further categorized into two types:-
Scenario testing.
Performance testing.
Requirement based testing
Now let us understand about each of them in detail-
- Scenario testing:-
Scenario testing is an approach to release testing where you devise typical scenarios of use and use these to develop test cases for the system.
A scenario is a story that describes one way in which the system might be used.
Scenarios should be realistic and real system users should be able to relate to them.
- Performance testing-
Performance testing is the testing designed to ensure that the system can process its intended load. This usually involves running a series of tests where you increase the load until the system performance becomes unacceptable.
Performance testing is concerned with both, demonstrating that the system meets its requirements and discovering problems and defects in the system.
To test whether performance requirements are being achieved, you may have to construct an operational profile.
An operational profile is a set of tests that reflect the actual mix of work that will be handled by the system.
Therefore, if 90% of the transactions in a system are of type A; 5% of type B; and the remainder of types C, D, and E, then you have to design the operational profile so that the vast majority of tests are of type A.
Requirement based testing:-
Good requirements engineering practice emphasizes that requirements should be testable.
Testability ensures that a test can be designed for each requirement, facilitating validation.
Requirements-based testing is a systematic approach to test case design.
It involves considering each requirement and deriving a set of tests for them.
Requirements-based testing focuses on validation rather than defect testing.
It aims to demonstrate that the system properly implements its requirements.
Multiple related tests need to be developed to ensure requirements satisfaction.
Each test case corresponds to a specific aspect of the requirement being tested.
Testing a requirement involves creating multiple test cases to ensure comprehensive coverage.
It ensures that different scenarios and conditions are considered to validate the requirement thoroughly.