Software Requirement is a detailed description of the system under implementation. It outlines the practical usage of a product or Service, Condition, or capability to which a system must conform. Requirements can range from high-level abstract statements of services or system constraints to detailed mathematical functional specifications. Here we will discuss requirement analysis and its consideration w.r.t. QA.
Software development life cycle (SDLC) models describe different phases of the software cycle and the order in which those phases are executed – Requirements gathering and analysis, Design, Implementation or coding, Testing, Deployment, and Maintenance.
What is Requirement Analysis: It is the process of determining user expectations for a system under consideration. These should be quantifiable and detailed.
- Serves as a foundation for test plans and project plan
- Serves as an agreement between developer and customer
- The process of making stated and unstated requirements clear
- The process to validate requirement for completeness, unambiguity, and feasibility.
The below picture depicts the consequence of poor requirement analysis and its impact on the Software development life cycle.
Here we can clearly see if the requirement analysis is not done in early phase of the SDLC then its impact is huge to fix it in later phases. Few consequences of poor requirement analysis are like
incorrect feature delivery, poor product quality, number of change control to fix system flaws, extension of project deadlines etc. More we delay in analysing the requirement more it costs and which impacts project delivery and quality.
Listed challenges in Requirement Analysis phase in QA:
- In early stage of SDLC the scope is not defined clearly.
- Many times there is ambiguous understanding of processes.
- Communication between project team and stakeholders plays important role.
- Insufficient inputs from customer leads to assumptions and those are not accepted in UAT.
- Inconsistency within single process in multiple users
- Conflicting customer views.
- Frequent new requirements.
Tools and techniques used for analyzing the requirements are,
- Use Cases: It is a methodology used in requirement analysis to identify, clarify, and organize the requirements. It is set of possible sequences of interactions between systems and users in a particular environment and related to a particular goal.
- Requirement Understanding Document (RUD) – Document covers details of Requirement understanding pertaining below points:
- System Details
- Logical System Requirements
- System Entity
- Acceptance Criteria
- Prioritize each requirement
- Discuss with team and identify testing scope
- Break down requirements in tasks and user stories.
How to Analyse Requirements?
- Find out what software has to do.
- Identify requirements by questioning like, Why, What, Who, How etc.
- Find out how complex application would be and its impact on testing.
- Which all things would need to be tested.
Requirement validation: Validate requirements based on below points so that at the end of the requirement analysis phase all required information available.
- Correctness: find out incorrect statement/requirement.
- Completeness: find missing requirement.
- Feasibility: find what all features are possible to test and which are beyond the scope.
- Testability: Different testing applicable.
- Ambiguity: find single interpretation of requirements (statement not clear due to multiple meanings).
- Consistency: find out requirement consistency and pointing to single requirement.
After validating whole requirement go ahead and categorize it into 3 types, functional, non-functional and special requirements. This categorization will help in creating detailed Test cases for different testing types.
QA involved in requirement analysis activity to ensure that the requirements identified by the BA and accepted by the customer are measurable. Also this activity provides inputs to various stages of SDLC to identify the availability of resources, scheduling and testing preparation. Below activities QA need to perform.
- Analyze each and every requirement from specification document, use cases.
- List down high level scenarios.
- Clarify queries and functionality from stakeholders.
- Promote suggestions to implement the features or any logical issues.
- Raise defect or clarification against the specification document.
- Track the defect or clarification rose against the specification document.
- Create high level Test Scenarios.
- Create Traceability Matrix.
Outcome of the Requirement Analysis Phase:
- Requirement Understanding Document.
- High level scenarios.
- High level test strategy and testing applicability.
With all above mentioned techniques and checklist of requirement analysis, Tester is ready Sign off from Requirement Analysis phase.