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.
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).