About The Agile Dictionary
Welcome to iteration zero of The Agile Dictionary! Our goal with this project is to provide broad, authoritative definitions of common Agile terms. You will note that each definition also includes a section titled “etymology,” where we capture the origins of the term wherever possible.
Visit the definitions by clicking on the letters in the navigation bar, or you can search for a term, above.
a is for...
Also: Functional test, customer test
Pass/fail tests used to define whether or not a feature is functional, usually developed in parallel to the defining of a feature. These tests may be written in plain English by the customer or product owner (“The user clicks , the session is reset, and the user is redirected to the homepage.”) Ideally, an acceptance test is subsequently automated by the developer so that it can easily run on all iterations of the software, ensuring that the accepted feature has not been broken by newer development. The use of acceptance tests in subsequent iterations is also known as regression testing. Acceptance testing is a key feature of test-driven development (TDD).
In Scrum: Scrum does not specify testing methods, and testing is not a part of the Scrum framework. This said, most Scrum teams test, and within the Scrum framework, the product owner would be the appropriate person to define acceptance tests.
The concept of acceptance testing exists in other engineering disciplines than software development, and is usually referred to as black-box testing.
Although acceptance testing is common across many Agile disciplines, the term derives from XP. According to C2.com, acceptance tests were first referred to as functional tests, because they test whether or not a feature works. Kent Beck, a primary mover behind TDD, proposed the change in terminology in April 2000.
An umbrella term for iterative, incremental software development methodologies. Agile methodologies include Extreme Programming (XP), Scrum, Crystal, Dynamic Systems Development Method (DSDM), Lean, and Feature-Driven Development (FDD). Agile methodologies arose in opposition to the traditional, phase-driven “Waterfall” development method, which emphasizes top-down project management, “big design up front,” silos for architecture and design, coding, and testing, and extensive documentation. Agile methodologies share an emphasis on small teams delivering small increments of working software with great frequency while working in close collaboration with the customer and adapting to changing requirements.
The term “Agile” was first used by a group of Software pundits who gathered at a ski lodge in Snowbird, Utah for the express purpose of naming and defining the greater movement in which they deemed themselves to all be participants. The original invitation to Snowbird went out to those interested in “lightweight” development frameworks. The attendees agreed that they didn’t like the negative connotations of that term, and agreed to adopt the term “Agile.”