acceptance test driven development software development core activities processes requirements design engineering construction testing debugging deployment maintenance paradigms and models agile cleanroom incremental prototyping spiral v model waterfall methodologies and frameworks asd devops dad dsdm fdd iid kanban lean sd less mdd msf psp rad rup safe scrum semat tsp up xp supporting disciplines configuration management documentation software quality assurance sqa project management user experience practices atdd bdd cco ci cd ddd pp standup tdd tools compiler debugger profiler gui designer modeling ide build automation release automation infrastructure as code testing standards and bodies of knowledge babok cmmi ieee standards iso 9001 isoiec standards pmbok swebok itil glossaries artificial intelligence computer science electrical and electronics engineering vte acceptance testdriven development atdd is a development methodology based on communication between the business customers the developers and the testers all these processes aid developers and testers in understanding the customers needs prior to implementation and allow customers to be able to converse in their own domain language atdd is closely related to testdriven development tdd it differs by the emphasis on developertesterbusiness customer collaboration atdd encompasses acceptance testing but highlights writing acceptance tests before developers begin coding overview acceptance tests are from the users point of view the external view of the system creation acceptance tests are created when the requirements are analyzed and prior to coding testing strategy acceptance tests are a part of an overall testing strategy they are the customer tests that demonstrate the business intent of a system component tests are technical acceptance tests developed by an architect that specify the behavior of large modules unit tests are created by the developer to drive easytomaintain code acceptance criteria and tests acceptance criteria are a description of what would be checked by a test given a requirement such as as a user i want to check out a book from the library an acceptance criterion might be verify the book is marked as checked out an acceptance test for this requirement gives the details so that the test can be run with the same effect each time test format acceptance tests usually follow this form given setup a specified state of a system when trigger an action or event occurs then verification the state of the system has changed or an output has been produced also it is possible to add statements that start with and in any of the sections below given when then for the example requirement the steps could be listed asgiven book that has not been checked out and user who is registered on the system when user checks out a book then book is marked as checked out complete test the previous steps do not include any specific example data so that is added to complete the test given book that has not been checked out books title checked out great book no user who is registered on the system users name sam when user checks out a book checkout action user sam checks out great book then book is marked as checked out books title checked out user great book yes sam test examination examination of the test with specific data usually leads to many questions for the sample these might be what if the book is already checked out what if the book does not exist what if the user is not registered on the system is there a date that the book is due to be checkedin how many books can a user check out these questions help illuminate missing or ambiguous requirements additional details such as a duedate can be added to the expected result other acceptance tests can check that conditions such as attempting to check out a book that is already checked out produces the expected error another test example suppose the business customer wanted a business rule that a user could only check out one book at a time the following test would demonstrate that scenario check that checkout business rule is enforced given book that has been checked out books title checked out user great book yes sam another great book no users name sam when user checks out another book checkout action user sam checks out another great book then error occurs error occurred description violation of checkout business rule project acceptance tests in addition to acceptance tests for requirements acceptance tests can be used on a project as a whole for example if this requirement was part of a library book checkout project there could be acceptance tests for the whole project these are often termed smart objectives an example test is when the new library system is in production the users will be able to check books in and out three times as fast as they do today concordion fitnesse robot framework gauge software example of automation frameworks 