Test analysis reads the test basis to identify testable features and define associated test conditions. It determines “what to test” in terms of measurable coverage criteria.
Main activities:
- Analyzing the test basis :
- Requirement specifications:
- Business requirements,
- Functional requirements,
- System requirements,
- User stories,
- Epics,
- Use cases,
- Similar work products that specify desired functional and non-functional component or system behavior
- Design and implementation information:
- System or software architecture
- Diagrams or documents
- Design specifications
- Call flows
- Modelling diagrams (e.g., UML or entity-relationship diagrams)
- Interface specifications
- Similar work products that specify component or system structure
- The implementation of the component or system itself, including code, database metadata and queries, and interfaces
- Risk analysis reports, which may consider functional, non-functional, and structural aspects of the component or system
- Requirement specifications:
- Evaluating the test basis and test items to identify defects of various types, such as:
- Ambiguities
- Omissions
- Inconsistencies
- Inaccuracies
- Contradictions
- Superfluous statements
- Identifying features and sets of features to be tested
- Defining and prioritizing test conditions for each feature based on analysis of the test basis, and considering functional, non-functional, and structural characteristics, other business and technical factors, and levels of risks
- Capturing bi-directional traceability between each element of the test basis and the associated test conditions
- The application of black-box, white-box, and experience-based test techniques can be useful in the process of test analysis to reduce the likelihood of omitting important test conditions and to define more precise and accurate test conditions.
- Acceptance test driven development (ATDD), which involve generating test conditions and test cases from user stories and acceptance criteria prior to coding, also verify, validate, and detect defects in the user stories and acceptance criteria.