Un "test d'acceptation" est un test rédigé par, ou en coopération avec la MOA. C'est une véritable spécification exécutable, qui est décrite dans un format humainement lisible. Le but recherché est d'extraire les algoritmes métiers du code, afin de les rendre visibles par tous les acteurs du projet - MOA, développeurs, testeurs, éventuellement les utilisateurs...
Les tests d'acceptation encouragent la "spécification par l'exemple" : la fonctionnalité développée est encadrée par des exemples décrivant les cas nominaux, les cas particuliers, les exceptions, etc. Les tests s'assurent ensuite que le comportement attendu est respecté.
Plusieurs outils existent, comme FitNesse, Cucumber (Ruby), RobotFramework (Python), JBehave (Java)... Concordion se démarque du lot par son extrême simplicité de mise en oeuvre car il s'appuie sur JUnit, et ne nécessite aucun serveur externe ni langage exotique.