What to pack for your "Agile Testing Trip" - Day 2

Jul 02, 2012
Gustavo Villacres

In part 1 of this Agile Testing Trip we reviewed the changes in the Project Deliverables (sprints) and the new communication perspective. Now, let�s review the major changes in the testing stage.

Testing Team

Traditionally, the testing team has been �isolated� from the project team, trying to avoid any external influence over the decisions/comments generated from the QA Team. The relationship between the testers and developers was restricted to: found bugs (QA) and fixed bugs (DEV). Even, sometimes the testing team was formed by people outside the project/organization, to ensure transparency in the quality assurance process.

Oppositely, Agile removes the constraints that �isolate� the QA Team and favors a direct and active interaction (face-to-face) between all the team members. It replaces the Tester/Developer role with the agile �Team Member�.

Another new concept introduced by Agile is that �quality� is the project team�s responsibility as well and not just QA�s responsibility. This means that the �development tasks� are not over until the product is tested and delivered. So, do not pack your �Quality Officer� suit, replace it by your �Team Member� overalls.

Test Driven Development

Test-Driven development is a process based in two techniques: Test First Development and Refactoring.

In the Test First Development (TFD), the �traditional� software lifecycle has been modified strategically. The business requirements are converted into Test Cases, but they need to be ready before the Development stage, because they are the main input to ensure source code accomplishment and coverage against the business needs.

The main advantages of the TFD are:

  • TFD avoids writing unnecessary source code.
  • TFD improves the source code quality.
  • TFD usually has a shorter testing time.

 

Graph. Test Driven Development cycle.

Refactoring, the term �Refactoring� is older than Agile, however its meaning has been modified accordingly. This technique is based on the repetition of short development cycles that incorporate small changes, extending new capacities but do not affect existing ones. Because of this, the Test Automation is a �must� to guarantee a clean and smooth iterative cycle (it includes the unit test cases automation).