Requirements analysis is an important aspect of software testing. On many traditional projects, this was devoted solely to Business Analysts, who worked closely with their clients to build out a framework onto which development could be executed. With an effective agile project, Quality Assurance engineers should also be part of this phase who can provide significant value. The software code, doesn’t matter how well it’s written, can’t do anything if there are ambiguities in requirements. It’s better to catch the requirement ambiguities and fix them in early development life cycle. It’s a fairly well established theory that the later in the software development life-cycle an issue is discovered, the more expensive it is to fix, and that most often, this cost growth curve is exponential rather than linear. So it’s important to have requirement analysis and catch these incorrect requirements before design specifications.