Definition

SUMMARY

Agile development promotes iterative and incremental development, with significant testing that is customer centric and it welcomes change during the process.

The main emphasis is on customer satisfaction:

  • the customer is a key component of the process

Features of agile development

  • iterations and incremental development: the work is divided into short cycles called sprint (1-4 weeks)
  • each iteration produces a functional increment of the product, which can be tested, evaluated and improved
  • collaboration: developers, clients and stakeholders work together to satisfy real customer needs
  • priorities can change during the process to make the team focus on what is important right now

Most used Agile implementation

  • Scrum: based on sprint and specific roles such as product owner, scrum master and development team
  • Kanban: focuses on a continuous work flow monitoring the progresses
  • Extreme Programming (XP): technical practices are promoted, such as pair programming and TDD (test-driven development)
  • Lean Software Development: wasting prevention is emphasized

Agile testing Agile testing is a form of collaborative testing, in that everyone is involved in the process through design, implementation, and execution of the test plan. Customers are involved in defining acceptance tests by defining use cases and program attributes

  • testing is not seen as a ‘phase’, but rather it is integrated with development
  • agile testing often relies on automated testing

Extreme programming The Extreme Programming model is one of more popular Agile methodologies that focuses on communication, planning, and testing.

  • extreme testing: focuses on unit and acceptance tests

Extreme Testing also requires you to create the test harness, based on the program specification, before you start coding your application.

  • In this way, you design your application to pass the unit tests, thus increasing the probability that it will meet the specification

References