Saturday, January 11, 2014

Software testing: Agile Software testing

Now-a-days software development frequently use the term “agile”. Unless you have been trekking in the Andes for the past 5 years, you will no doubt have heard somebody in your organisation talking about “agile” software development or read about some aspect of “agile” on any number of software development and technology related web sites.


The trend in adoption of an Agile based methods has increased significantly.
Agile software development methodologies appeared in the early 1990’s and since then a variety of agile methodologies such as XP, SCRUM, DSDM, FDD and Crystal, to name but a few, have been developed.
The creators of many of these processes came together in 2001 and created the “Agile Manifesto” which summarised their views on a better way of building software.


Agile software development methodologies have flipped on its head, the traditional view of waiting for a fully built system to be available before higher levels of testing, such as Acceptance testing, can be performed.
Testing from the beginning of the start of the project and continually testing throughout the project lifecycle, is the foundation on which agile testing is built. Every practice, technique or method is focused on this one clear goal.
So what does testing now need to know and do to work effectively within a team to deliver a system using an agile method?
The concept of “the team being responsible for quality” i.e. “the whole team concept” and not just the testing team, is a key value of agile methods.
Agile methods need the development team writing Unit tests and/or following Test First Design practices. The goal here is to get as much feedback on code and build quality as early as possible.

The key challenges for a tester on an agile project are:
•No traditional style business requirements or functional specification documents. We have small documents (story cards developed from the 4×4 inch cards) which only detail one feature. Any additional details about the feature are captured via collaborative meetings and discussions.
•You will be testing as early as practical and continuously throughout the lifecycle so expect that the code won’t be complete and is probably still being written
•Your acceptance Test cases are part of the requirements analysis process as you are developing them before the software is developed
•The development team has a responsibility to create automated unit tests which can be run against the code every time a build is performed
•With multiple code deliveries during the iteration, your regression testing requirements have now significantly increased and without test automation support, your ability to maintain a consistent level of regression coverage will significantly decrease
The role of a tester in an Agile project requires a wider variety of skills:
•Domain knowledge about the system under test
•The ability to understanding the technology be used
•A level of technical competency to be able to interact effective with the development team

No comments:

Post a Comment