In an iterative development methodology, in Agile the entire project team partakes in the activities. The requirements develop as the iterations advance, through collaboration between the customer and the self-organizing teams. During development, Coding and Testing are performed interactively and incrementally and the end-product obtained ensures quality and is as per customer requirements.
Every iteration results in an integrated working product increment which is supplied for User Acceptance Testing. The customer feedback acts as input for the next/subsequent iteration.
Several Agile Methodologies support Agile Development. These Agile Methodologies are -
An Agile development method, Scrum emphasizes on team-centric approach. It supports the participation of the entire team in all the project development activities.
eXtreme Programming is customer-centric and concentrates on constantly changing requirements. With systematic releases and customer feedback, the end outcome will be of quality that meets the customer requirements which are made clearer during the process.
Crystal is established on chartering, cyclic delivery, and wrap-up.
Feature Driven Development (FDD) involves developing and building features. The difference between FDD and other Agile Development Methodologies is that - in FDD the elements are developed in specific and short phases, separately.
Dynamic Software Development Method (DSDM) is established on Rapid Application Development (RAD) and is aligned to the Agile Framework. It focuses on systematic delivery of the product, involving users, and empowering the teams to produce rapid decisions.
Agile Testing Methodologies
The testing techniques are defined for every project, to deliver quality outcomes. Traditional Testing principles are often used in Agile Testing. One of them is - Early Testing - which focuses on:
Agile Testing in itself is a Methodology. In all approaches of Agile Testing, Test Cases are documented before Coding.
The other commonly used Agile Testing Methodologies include-
Test-Driven Development (TDD) - Test-Driven Development (TDD) is based on coding driven by tests.
Acceptance Test-Driven Development (ATDD) - ATDD or Acceptance Test-Driven Development depends on the communication between the developers, testers, and customers. It is conducted by pre-defined Acceptance Criteria & Acceptance Test Cases.
Behavior-Driven Development (BDD) - Behavior-Driven Development (BDD) testing is based on the characteristic behavior of the software being developed.
Agile Testing Lifecycle
In Scrum, the Testing activities contain -