Tuesday, December 3, 2013

Testing and Agile methodology

We all have been knowing the role of tester’s and testing in all the SDLC models. Testing has always been an important phase of any SDLC models. In some SDLC models testing starts at the end of the coding in some SDLC Models Testing starts with the beginning of the projects but one thing was common in all the SDLC models “Testing start once complete product is ready”.

Agile methodology follows a different approach here we have smaller component which needs to be tested every week or every two week depending on the scum time line defined by your team. Here every sprint has to go through the all the SDLC phases.

Brett Pettichord defined the role of testing within agile projects as:
Testing is the headlights of the project – where are you now? Where are you headed?
Testing provides information to the team – allowing the team to make informed decisions
A “bug” is anything that could bug a user – testers don’t make the final call
Testing does not assure quality – the team does (or doesn’t)
Testing is not a game of “gatcha” – find ways to set goals, rather than focusing on mistakes

Challenges faced while testing in agile environment:
  1. Since you are getting one sprint every week or every two week so your scope of regression testing increases. With the release of every sprint your regression testing scope is increasing.
  2. Unlike traditional business requirement document here you have story cards or the post stick, where every card has information about just one module/feature and the details of the requirement need to be captured via discussion or meeting or communicating with the people who are involved in the development of that feature
  3. Test cases are part of the requirement analysis process as you are writing them before the software is developed.
  4. In Tradiotnal SDLC models tester’s role was to ensure that software does what it is written in the requirement but in agile methodology we have to analyze and understand the requirement and will have to make sure that software runs as per the customer needs.
Now question comes how to do testing in agile environment and deliver a Quality Product?

In order to deliver a Quality product we need to understand the following points:
  1. Quality is not just responsibility of the testing team but it is the responsibility of the whole agile team. In short we can say that “Agile team is responsible for the quality” not just the “QA/Testing Team”. So we need to implement the Team concept.
  2. Tester should not just sit and wait for the requirement document and then start their work. They can help in writing document or in understanding design or can help to make an understanding of the end product so that a sprint is delivered on time and with quality.
  3. Almost 80% of the defects are found in requirement and in design phase therefore testers can help the developers in understanding the flows in these phases based on their experience.