Agile Development Methodology
Agile is an iterative development methodology, where the entire project team participates in all activities. The requirements evolve as the iterations progress, through collaboration between the customer and the self-organizing teams. Coding and Testing are done interactively and incrementally, during the course of development, resulting in an end-product of quality that meets customer requirements. Every iteration results in an integrated working product increment and is delivered for User Acceptance Testing. The customer feedback is an input to the next / subsequent Iterations.
Continuous Integration & Quality
Continuous Integration is the key for Agile Development success. Integrating frequently, at least daily, ensures that the product is ready for release as and when necessary. Testing in Agile becomes an essential component of all the phases of the development, ensuring continuous quality of the product. Constant feedback from everyone involved in the project adds to the quality of the product. Communication is given utmost importance and the customer requests are received as and when necessary. This gives the customer the satisfaction that all the inputs are considered and a working quality product is available throughout the development.

Agile Methodologies
Following are methodologies
Scrum Scrum is an Agile development method that focuses on a team-centric approach. It encourages the participation of the entire team in all project development activities.
XP eXtreme Programming is customer-centric and emphasizes changing requirements. By releasing the product frequently and obtaining customer feedback, the end-product will meet the customer’s requirements that become clearer during the development process.
Crystal Crystal is based on chartering, cyclic delivery and wrap up. The chartering process involves forming a development team, conducting a preliminary feasibility analysis, arriving at an initial plan and the development methodology. Cyclic Delivery with two or more delivery cycles focuses on the development phase and integrated product delivery. During wrap up, the product is deployed in the user environment and post-deployment reviews and reflections are conducted.
FDD Feature Driven Development (FDD) involves designing and building features. It differs from other Agile Development Methodologies in that the features are developed in specific, short phases separately.
DSDM Dynamic Software Development Method (DSDM) is rooted in Rapid Application Development (RAD) and is aligned to the Agile Framework. DSDM focuses on frequent product delivery, involving users actively and enabling teams to make quick decisions.
Lean Software Development
Lean Software Development is an approach to software development that focuses on eliminating waste and delivering value to the customer, resulting in rapid product development. Waste can include partially done work, irrelevant work, features not used by the customer, and defects, all of which add to delays in delivery. The Lean Principles emphasize eliminating waste, amplifying learning, delaying commitment, empowering the team, delivering fast, building integrity, and seeing the whole.
Eliminating Waste
Lean Software Development focuses on eliminating waste and delivering value to the customer, resulting in rapid product development. Waste can include partially done work, irrelevant work, features not used by the customer, and defects, all of which add to delays in delivery. The Lean Principles emphasize eliminating waste, amplifying learning, delaying commitment, empowering the team, delivering fast, building integrity, and seeing the whole.
Kanban
Kanban is a method of managing work with an emphasis on just-in-time delivery, while avoiding overloading team members. The tasks are displayed for all participants to see, allowing team members to pull work from a queue. Its basis includes the Kanban Board, Work-in-progress (WIP) Limit, and Lead Time.
Agile Testing Methodologies
Introduction
Agile Testing Methodologies focus on early testing that is aimed at prevention, detection, and removal of defects. This tutorial will focus on Scrum as the Agile Testing Methodology.
Test-Driven Development (TDD) Test-Driven Development (TDD) is a coding approach that is guided by tests.
Acceptance Test-Driven Development (ATDD)
Acceptance Test-Driven Development (ATDD) focuses on communication between customers, developers, and testers, and is driven by pre-defined Acceptance Criteria and Acceptance Test Cases.
Behavior-Driven Development (BDD)
Behavior-Driven Development (BDD) testing is based on the expected behavior of the software being developed.
Agile Testing Lifecycle
Agile Testing Lifecycle activities in Scrum include contributing to User Stories, Release Planning, Sprint Planning, Sprint Execution, Regression Testing, Reporting Test Results and Automation Testing.
- Contributing to User Stories is based on the expected behavior of the System depicted as Test Cases.
- Release Planning is based on Test Effort and Defects.
- Sprint Planning is based on User Stories and Defects.
- Sprint Execution includes Continuous Testing.
- Regression Testing is conducted after the completion of Sprint.
- Reporting Test Results is an important part of the Agile Testing Lifecycle.
- Automation Testing is a key element of Agile Testing.
