Specyfikacja w przykładach jest często kojarzona z ATDD (Acceptance Test Driven Development) oraz z AAT (Agile Acceptance Testing). Jest to praktyka wspólnego definiowania wymagań i testów funkcjonalnych, mających umocowanie biznesowe, gdzie podstawą definiowania jest przykład użycia danego oprogramowania.
Cały proces jest uproszczony do kilku kroków:
Zdefiniuj cel biznesowy lub też efekt jaki powinien zostać osiągnięty. W oparciu o cele określ zakres, a następnie w małych zespołach angażujących możliwie największą ilość członków grupy projektowej i klientów staraj się wypracować kluczowe przykłady użycia. W kolejnym kroku popraw specyfikację tak, by była ona poprawna (wspólne przeglądy). Wytworzoną specyfikację należy bezpśrednio przełożyć na automaty tworząc tak zwaną "wykonywalną specyfikację". Wielokrotne uruchomienie oraz częste rozmowy o wymaganiach, mają zapewnić to, że dokumentacja będzie żywa i uwzględniać będzie wszelkie zmiany.
Dobre specyfikowanie w przykładach wymaga dobrej bazy narzędziowej:
- FitNesse
- Cucumber
- JBehave
- Robot Framework.
Koncept został szeroko opisany przez Gojko Adzica w dwóch jego książkach.
Specification by Example: How Successful Teams Deliver the Right Software
Bridging the Communication Gap: Specification by Example and Agile Acceptance Testing