Agile Testing

From last few years we are hearing a term called "Agile", and in my first write I did mention the terminology Agile - Delivering minimum shippable product in small increments instead of trying to deliver it all at a once. It is a time boxed approach where software is built incrementally. "
Now when all the organizations’ moving towards Agile, people in different roles started to fear about their roles.

Is this really true? Let’s have a look below.

While browsing, I came across a short and crisp summary of Agile Testing Mind-set:

· Quality Assistance over Quality Assurance

· Continuous Testing over Testing at the End

· Team Responsibility for Quality over Tester’s Responsibility

· Whole Team Approach over Testing Departments and Independent Testing

· Automated Checking over Manual Regression Testing

· Technical and API Testing over Just GUI Testing

· Exploratory Testing over Scripted Testing

· User Stories and Customer Needs over Requirement Specifications

· Building the Best Software over Breaking the Software

· Early Involvement over Late Involvement

· Short Feedback Loop over Delayed Feedback

· Preventing Defects over Finding Defects

Which means, while there is value in the items on the right, we value the items on the left more.

This makes sense, isn’t it?

Basic principle of Agile Testing says it’s not a Phase. Agile teams test continuously, they don’t wait for the code to be delivered for testing just before product is ready to be shipped in production.

It says start testing while implementation not after implementation. Which means having a test driven/test first approach and this can be achieved through TDD (Test Driven Development) and ATDD (Acceptance Test Driven Development).

This also helps in shortening the feedback cycle since testing is carried out along with development

In traditional structure testing is considered as a quality gate for production, where testing is done at the last stage and a week before production bug prioritization calls starts to happen, which at times results in pushing the release further. On the contrary agile teams doesn’t wait for last week, they starts working on product in coordination with testing teams to provide regular and continuous feedback.

Another principal of agile testing says keep the code clean, since buggy software is hard to test, this principle says eliminate waste to minimum. Fix bugs within an iteration and don’t push it for next cycle. A user story is said to be completed only after all the defects are closed.

Agile testing also contest less documentation, it say instead of having too comprehensive documents have light weight documents. Have a checklist alongside few established test scripts rather than having step by step guide to execute the test case.

So what happens to all the traditional software testing methods, types and artefacts? Do we throw them away?

The answer is No! You will still need all those software testing methods, types and artefacts (but at varying degrees of priority and necessity). You will, however, need to completely throw away that traditional attitude and embrace the agile attitude.

I think few of the misconceptions about layering off the testing teams in the firm are cleared now.