Tuesday, April 7, 2009

Testing in Agile software Development

Hi Folks!

Continuing to my last article....
In era of the rapid software development where the changes take places randomly and requirement chances every hours, the role of testers is very tough and challenging.
The biggest challenges in agile software development is to handle the changes made rapidly. Software changes every hour. The new code is being pushed in test server every day or even every hour and hence the testing system becomes changing. To deal with such cases and to test this , we need a different kind of approach of testing with may be totally differ with a scripted testing. This need different set of skills and tactic. For this tester need to very flexible and very innovative. I found in some case company don't allow to adopt any approach other than the scripted one. But For this a agile tester should have a valid reason and tendency to make project manager/ seniors agree to adopt new approaches. I always have a reason to adopt my approach. Some time I need to make significant change in our testing approach and I do this because I do have confidence in my approach.
propose your plan to the team without hesitation after all our prime motive is same which is "to make s/w bug free". So if you have any idea in your mind and you believe this will work , don't wait and let your bosses know.

Agile testers need to be well versed in following area:
1- Active participation in scrum meeting to make decision on agile test plan. I pointed agile test plan here specially because the test plan we make here can be quite different as a normal. take decision on what will you do next, how will you do, and the reason of doing this means how it is meaning full and how it will how practically.
2- Experiencing the application in different ways to improve the understanding of risk, c to find such scenarios which might be missed during first planing. and expected behaviors. I always preffer to see my application in different ways: QA, Tester(Some how technical, data model, flow of application ), End users, and layman.

So these should be the common and beneficial practices in agile software development.

Some time we work in such project where there are many teams works together sitting in different places. There are many challenges in testing such projects. Few things(other that the expected skills from a tester) which I feel every tester should follow to accept the challenges in testing of such project.
1- Tester must be very active in participating in all meeting and conference calls with other teams and client. If this is not happening in your project, just ask for this.
2- Need to be very active and flexible to adopt the changes during development. Documentation can help to manage them. To identify the scenario at the spot.
3- Need to practice to make a TO DO LIST (I adopted this from of my manager and believe me it is working) . This practice really help you to remember the things to be implemented. once come back from meeting just review the TO DO LIST and update your documents.
4- Should be very straight forward. Don't say YES all the time. if you feel this is wrong, put your thought to the front of team. Realize that you are responsibility for over all quality of the application and process.
5- Do regular meeting with team working with, to find the gaps in requirement. As there are not fixed requirement and this keep changing so there might be the cases that you are not communicated some changes during development. some changes for most of them think no This is not beneficial to Tester. No I don't think so, every thing weather it is requirement change or changes in architecture or design, the tester should know about this. So This meeting will insure you that really you did not missed nay thing.
6- Practice to make scenario(a high level scenario which really does not have the steps to test) and document this in a different folder. Discuss these scenarios with your PM and other seniors persons and ask them to review. This will be a green signal to your cases that you have not missed any thing and are sufficient to cover the testing. Later you can extend these scenarios to a detailed test cases as per the time arability.


at the end , I say... The agile method don't use a typical QA process, but this does't meas that we produce a quality less product using agile method. In Agile, we need to do frequent communication among the whole team. Break down the testing in smaller part and that to be flexible. Allow end user to access application ASAP and in a very early phase which also let you know that whether application behaves accordingly or not. exploratory testing should be the part of this methodology. Over all , in net the quality of application is much high in agile software developemnet..


Thanks,
Vishal Sachan
Sr.QA, Tekriti Software

No comments :

Post a Comment