Why ‘Requirement Analysis’ is important for testers?

Tarang Chokshi
4 min readNov 6, 2020

Software Requirement is the connection between what a client needs and how it will be executed by developers. Requirements can be in any form of data like Numeric range or High over agendas or graphical data form or mathematical functions or long stories explaining to functions.

Requirement analysis is the process of discovering user expectations for a new or modified product. Without having a clear idea of functions or analysis and a clear road-map, even the most efficient system structure, well-written code by the developer team, or comprehensive testing will prove ineffectual. Hence, the first step to kick-off any project is — Requirement Analysis. And to be useful, requirements should be traceable, actionable, scripted, measurable, and directly linked to the business logic.

Software development life cycle (SDLC) models describe different phases in which those phases are executed — Requirements gathering and analysis, Design, Implementation or coding, Testing, Deployment, Maintenance.

What is Requirement Analysis?

It is the process of determining user expectations for a system under consideration. These should be quantifiable and detailed.

Provides a base for test plans and project plans.
Provides trust between customers and the product development team.
Activity to make affirm and deny requirements.
The process to validate the requirement for completeness, unambiguity, and feasibility.

But, Why it is so important?

As we discussed above, if you don't have a basic idea of what the customer needs exactly then the developer team won't able to make that specific project or product what the client has expected. Without declaring what our clients need and what is their objective goal, at the end of product execution, maybe a failure. let's have a look at below image as an example:

Initially, the client serves a project to a development team and the team has started project coding without requirement analysis although imagine, they did basic requirement analysis to overcome with high-over agendas. At end of delivery, the client would get disappointed with final outcome which was not as expected. So, now the team has to move the project under maintenance to change functionalities and flow to make correctness which takes more time, and obviously, it costs too. Suppose you did a very good requirement analysis at the beginning of the project and understood most of the core functionalities and feature items with discussion to clients, your outcome will be more effective with less maintenance.

Techniques used for analyzing the requirements:

Use Cases: It is a method to use in requirement analysis to identify and organize the requirements. A use case diagram at its simplest is a representation of a user’s interaction with the system that shows the relationship between the user and the different use cases in which the user is involved.

Product Requirements Document (PRD): Document containing all the requirements for a certain product. It is written to allow people to understand what a product should do. PRDs are most frequently written for software products but can be used for any type of product and also for services. The document should have included the below-mentioned points:

  • Assumptions
  • System Details
  • Logical System Requirements
  • System Entity
  • Hardware
  • Acceptance Criteria
  • Prioritize each requirement
  • Discuss with the team and identify the testing scope
  • Break down requirements in tasks and user stories

How to analyses requirements?

  • Find out what is the goal of the product or what software has to do.
  • Identify requirements with questionnaires by- Why What, Who, How, etc.
  • Find out how complex the application would be and its impact on testing.
  • Which all things would need to be tested.

During Requirements analysis, the test team investigates the requirements from a testing point of view to identify the testable requirements. Also, this activity provides inputs to various stages of SDLC to identify the availability of resources, scheduling, and testing preparation. Requirements analysis process includes frequent communication with various stakeholders (Client, Business Analyst, Technical Leads, and System Architects, etc.) with reason:

  • Determine & understand specific feature expectations in requirements
  • Detect and resolve conflicts that jump up due to unspecified requirements
  • If any clarification is needed on any particular functionality or any suggestions to implement the features or any logical issues, then raise a clarification against the requirement
  • Discover missing requirements (if there is any dependency)
  • Clear all the assumptions made. Any requirement should not be based on assumptions
  • Understand the problem should cause for software which is to be developed
  • Create high-level Test Scenarios
  • Create a Traceability Matrix

Challenges in Requirement Analysis phase in QA:

  • In the early stage of the Software development life cycle (SDLC) the scope is not defined clearly.
  • Communication between the project team and stakeholders plays a key role.
  • Many times there is an uncertain understanding of processes.
  • Insufficient inputs from customer lead to assumptions and those are not accepted in UAT.
  • Conflicting customer views.
  • Frequently changing requirements.

Fun-fact

--

--