High-level test cases, also known as system tests or end-to-end tests, focus on evaluating the entire software system or a significant portion of it as a complete and integrated entity.
Scope: These tests examine the overall behaviour and interactions between different components or subsystems within the software.
Purpose: The primary goal of high-level test cases is to verify that the software system functions as intended in its entirety and meets the specified requirements. It ensures that all components work together seamlessly.
Advantages of high-level test cases:
- Guidance for Testing: They provide instructions on what needs to be tested, allowing the Test Analyst to modify the actual data or procedures during test execution.
- Enhanced Risk Coverage: High-level test cases may offer better coverage of risks compared to low-level ones, as they introduce variations with each execution.
- Early Definition: They can be established early in the requirements process.
- Utilization of Analyst’s Experience: They leverage the Test Analyst’s expertise in both testing and the specific test object during execution.
- Informal Documentation: They can be formulated without the need for detailed and formal documentation.
- Suitable for Reuse: High-level test cases are well-suited for reuse in different test cycles, accommodating variations in test data.
Disadvantages of high-level test cases:
- Less Reproducibility: They are less reproducible, posing challenges in verification due to the lack of detailed descriptions seen in low-level test cases.
- Expertise Requirement: More experienced testing staff may be necessary to execute high-level test cases effectively.
- Automation Challenges: Automating based on high-level test cases may lead to validation issues, as the lack of details can result in validating incorrect results or overlooking essential items.
High-level test cases can serve as a foundation for developing low-level test cases as requirements become more defined and stable. This sequential creation flow progresses from high-level to low-level, with only the latter used for execution.