Testing in an Agile Environment

Writing by admin on Thursday, 29 of July, 2010 at 7:33 am

The principal indicators of a growing business are widening customer base and rising return on investment and various parameters such as cost, time, and quality drive these indicators in the positive direction. To meet customer requirements with assured quality, organizations need to extensively consider market dynamics and should deliver, cost effectively, the right product, in the right way.

In software product development, an Agile methodology is one strategy adopted while addressing the challenges of market dynamics. The aim of any Agile project is to deliver a basic working product as quickly as possible and then to go through the process for continual improvement. An Agile project is characterized by having a large number of short delivery cycles (sprints) and priority is given to feedback-loops from one cycle to the next, which drive continuous improvement and enable issues that inevitably occur to be dealt with much earlier in the development life cycle.

Agile uses a Test Driven Development (TDD) model. As part of the project team, the Test Manager is responsible for establishing quality processes, identifying test resources, and delivering the test strategy. The test strategy will include details of the Agile development process being used along with test phases that are not directly related to Agile development. The testers, developers, business analysts, and project stakeholders all contribute to kick-off meetings where the ‘user stories’ are selected for the next sprint. The selected sprints are used as the basis for a set of tests, with testers creating test scenarios which are presented to business analysts and project stakeholders for their approval.

These test scenarios are then broken down to test cases that offer adequate test coverage for the given functionality. The developers then write code that will pass the tests. In this approach, development and testing take place continuously throughout the sprint with no separate testing phase. Results are then presented to the stakeholders for immediate feedback. The test scenarios defined are not limited to functional testing but can include other types of testing including performance and integration testing when the product is mature enough.

The user stories for the next sprint are written and these include the stories specified in the delivery plan as well as additional stories required to cover any issues identified from previous sprints. Regression testing must be performed on a regular basis to ensure that existing functionality has not been impacted by the introduction of new functionality in each iteration cycle. Stakeholders will take a decision on moving the application to release phase, depending on the market need or level of key functionality being added to the system. Prior to release, a final acceptance test is performed before transitioning the application into production.

However, Agile projects present their own challenges to the testing team. Unclear project scope, multiple iterations, minimal documentation, early and frequent testing needs, and active stakeholder involvement all demand special and diverse skills from the testing team. Some of the key factors for successful Agile development include, effective resource management; good communication between testers, developers, business analysts, and project stakeholders; and implementation of quality governance processes.

Hence, companies which adopt Agile projects should appreciate that engaging test teams at project initiation will ensure an accelerated delivery of working software, and time, cost, and quality must be controlled and balanced in order to achieve customer satisfaction and ROI.

Category: Software Testing, Strategy

No Comments

No comments yet.

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>