Agile Projects, its Challenges to the Testing Team, and Tips to Tackle Them

Writing by AppLabs on Sunday, 8 of March, 2009 at 11:26 am

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 essential skills are illustrated here:

Resource Management: a pool of professional test resources offers the scope for effective resource management across the agile project life cycle. There should be an appropriate mix of domain specialists who plan and gather requirements in addition to test engineers who will have multiple skill sets and own the test execution.

Communication: The iterative model of development and the frequency of releases mandate that all teams have a common understanding of the user requirements. The testing team in particular should adopt the most efficient and effective methods of conveying information to the developers, project stakeholders, domain specialists using a combination of face-to-face conversation, meetings and workshops, phone calls, email and WebEx meetings.

Processes: Another key success factor for Agile Development is the implementation of quality governance processes. Organizations considering the use of Agile should ensure that configuration management, change management, project management and release management are in place. Testing teams which bring with them best practices and are accredited with globally recognized certifications (e.g. TMMi, CMMi, ISO etc.) will be able to help organizations accelerate the testing process.

Requirements Elicitation: Approaches like, getting access to all the material that can provide input for the intended product behavior; knowledge transfer from product owners and subject matter experts (SME); gaining insights into the capabilities needed from the product under test by exploration of comparable products, reading user manuals and user documentation, exploring help text via user interface and taking an application tour through the GUI; exploratory test engineers should be able to analyze a product, think critically to evaluate risks and craft test cases that systematically explore the product; thought leaders in test automation; will help the testers equip with alternative ways of deriving test requirements. zpe75amny8

Leave a comment

Category: Software Testing

QA & Testing Ensuring Success to Agile Project

Writing by AppLabs on Thursday, 12 of February, 2009 at 12:18 pm

To ensure the success of development projects in an Agile environment, engage the test teams from the start, and by the by have the previously independent contributors (Business Analysts, Developers, Testers, End Users etc.) work together in teams.

An Agile development uses a ‘Test Driven Development’ (TDD) approach. An approach where the team and the project stakeholders all contribute to kick-off meetings where the ‘user stories’ are selected for the next sprint (Sprints in an Agile project can extend to multiple levels in a complex system), which are used as the basis for a set of tests. The testers create test scenarios, which after the approval are broken down to test cases, which further offer adequate test coverage for the given functionality. The developers then write code that will pass the tests. In this approach the development and testing take place continuously throughout the sprint, for minimal defects and low implementation risk. As functionality grows with each iteration, regression testing must be performed to ensure that existing functionality has not been impacted by the introduction of new functionality in each iteration cycle. Defect fixes should also be followed by extensive regression testing.

The scale of the regression testing grows with each sprint and to ensure that this remains a manageable task the test team should use test automation for the regression suite and focus their manual testing effort towards locating new defects during the build phase. In the Release Phase, prior to releasing a product, a final acceptance test is performed before transitioning the application into production. The testing activities listed above are not exhaustive but broadly cover the areas which the testing team contributes to the Agile approach.

Engaging test teams from the beginning of every iterative development cycle and not just after the first couple of sprints will hence ensure an accelerated delivery of working software. And the testing team in return must develop the necessary mindset, wherein their own agility and flexibility will prove the key to their success in the project.

Leave a comment

Category: Software Testing