Acceptance test-driven development: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Line 2:
 
'''Acceptance test–driven development''' ('''ATDD''') is a development methodology based on communication between the business customers, the developers, and the testers.<ref name="Pugh11">{{cite book | first = Ken | last = Pugh | year = 2011 | title = Lean-Agile Acceptance Test-Driven Development: Better Software Through Collaboration | publisher = Addison-Wesley | isbn = 978-0321714084}}</ref> ATDD encompasses many of the same practices as [[specification by example]],<ref>Adzic, Gojko. (2009) ''Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing'', Neuri Limited,</ref><ref>{{cite book|last=Adzic|first=Gojko|authorlink=Gojko Adzic|title=Specification by example: How successful teams deliver the right software|publisher=Manning|year=2011|isbn=978-0-321-27865-4}}</ref> [[behavior-driven development]] (BDD),<ref>Chelimsky, David, Dave Astels, Zach Dennis, Aslak Hellesøy, Bryan Helmkamp, and Dan North. ''The RSpec Book: Behaviour Driven Development with RSpec, Cucumber, and Friends.'' The Pragmatic Bookshelf.</ref> example-driven development (EDD),<ref>{{cite web| url = http://www.exampler.com/ | title = Example Driven Design| accessdate = 2013-04-15}}
</ref> and story test–driven development (SDD).<ref>{{cite web| url = http://industriallogic.com/papers/storytest.pdf | title = Story Test-Driven Development | accessdate = 2013-04-15}}</ref> All these processes aid developers and testers in understanding the customer’scustomer's needs prior to implementation and allow customers to be able to converse in their own ___domain language.
 
ATDD is closely related to [[test-driven development]] (TDD).<ref>Beck, Kent. Test Driven Development: By Example. Addison-Wesley Professional, 2002.</ref> It differs by the emphasis on developer-tester-business customer collaboration. ATDD encompasses [[acceptance testing]], but highlights writing acceptance tests before developers begin coding.
 
==Overview==
Acceptance tests are from the user’suser's point of view – the external view of the system.<ref name="Pugh11" /> They examine externally visible effects, such as specifying the correct output of a system given a particular input. Acceptance tests can verify how the state of something changes, such as an order that goes from “paid” to “shipped”. They also can check the interactions with interfaces of other systems, such as shared databases or web services. In general, they are implementation independent, although automation of them may not be.<ref>Melnik, Grigori, and Frank Maurer. {{cite web | url = http://www.springerlink.com/content/34w2q2561k471175/ | title = Multiple Perspectives on Executable Acceptance Test-Driven Development | accessdate = 2013-04-15}}</ref><ref>Koskela, Lasse. (2007) Test Driven: TDD and Acceptance TDD for Java Developers. Manning Publications</ref>
 
===Creation===