Test Analysis is the process of analyzing the Test Basis where the Test basis could be any requirement document, design, or architecture. During Test Analysis, we identify the testable components and derive Test Cases, Test Conditions, and Test Data.
In other words, Test Analysis is the activity that defines "what" to be tested in the form of test conditions. Test Analysis can start as soon as the basis for testing is established for different test levels like component, integration, system, or acceptance testing.
Test Analysis can be done in parallel, integrated, or iterative with Test Design.
Test Analysis Major Activities Include
- Analyzing the Test Basis: After considering the Test Level analyze different test basis like Business requirements, Epics, User Stories, Design, Risk Analysis reports, etc.
- Evaluate the Test Basis: Evaluate the Test Basis and Test Items to identify different types of defects like Missing or Incomplete, Incorrect or False, Inconsistent, Ambiguous or Unclear, Misplaced, Infeasible or Non-Verifiable, Redundant or Duplicate, Typo or Formatting, Not Relevant or Extraneous. Techniques such as Reviews, BDD, and ATDD are beneficial in detecting defects.
- Identify Features: Identify Feature or Set of Features to be tested.
- Defining and Prioritizing Test Conditions: After Identifying Feature, define Test Conditions and prioritize them where test Condition is an item or event of a component or system that one or more test cases could verify. Test Conditions can be prioritized based on different software functional and non-functional characteristics and other factors: including business, technical and risk factors. Applying black-box, white-box, and experience-based test techniques can be helpful in the test analysis process to reduce the likelihood of missing essential test conditions and determine more accurate test conditions.
- Capturing bi-directional traceability: Last activity is to capture bi-directional traceability between each element of the Test Basis and the associated Test Conditions. Bidirectional traceability is the ability to trace forward, for example, from the requirement to the Test Condition and backward, from Test Condition to requirement.