Photo by Austin Distel on Unsplash

Requirement analysis is the foundation for test analysis

A guide for why a tester should do requirement analysis before test analysis

--

Consider the following scenario:
You get the following API documentation for endpoint that needs to be tested.

As a tester, you start doing test analysis by going through the document which has information about required parameter, 200 and 400 status codes. You create test cases as:

  • a) Verify the end point returns 200 when the user sends valid “status” parameter
  • b) Verify the end point returns 400 when user don't send “status” parameter
  • c) Verify the end point returns 400 when the user sends invalid “status” parameter

All the above test cases passed which means end point was made LIVE. But the following problems occurred in the LIVE environment.

Problem 1: The end point was throwing 400 in the error log but since there is no proper schema for 400 it was hard to determine the cause either invalid “status” parameter or “status” parameter was not sent.

Problem 2: When the server was not responding, the end point was still throwing 400.

Problem 3: Some hacker was trying to access the end point by doing multiple calls with POST, PUT and DELETE, but the error log didn't have an entry for it.

All of the above problems could have been avoided by doing requirement analysis before test analysis.

By doing requirement analysis first, the above problems could have been avoided :
1) Do we have all the main status codes 200, 400, and 500?
2) Do the mentioned status codes have their proper schema?
3) For the required query or URL parameter for invalid values, is the proper error message required or will it be a generic one?
4) Are we going to implement 405 for invalid request type?

As a tester, the first step we do is test analysis: how we should test a particular requirement, how to create test scenarios, test cases, and test data

But have we ever put our efforts to do Requirement analysis?
Requirement analysis should be an integral of any software development phase. Analyzing requirements is crucial as it sets clear targets for everyone. Whether you are a developer, tester, graphic designer, or any team member, requirement analysis should be the first step.

IMPORTANT NOTE:Whether its the responsibility of a tester to verify the technical document or analyze the requirement, whether a tester was involved in requirement gathering or not , but as soon as we get the requirement. we should give our best to avoid any ambiguity , take steps to help our team deliver the project with quality.

For any kind of queries, suggestions and feedback, please feel free to contact me on my email address nidasaleem333@gmail.com

--

--