diff --git a/docs/all-anchors.adoc b/docs/all-anchors.adoc index 9e99e04..d95d3b8 100644 --- a/docs/all-anchors.adoc +++ b/docs/all-anchors.adoc @@ -149,6 +149,8 @@ include::anchors/wardley-mapping.adoc[leveloffset=+2] == Testing & Quality Practices +include::anchors/bdd-given-when-then.adoc[leveloffset=+2] + include::anchors/iec-61508-sil-levels.adoc[leveloffset=+2] include::anchors/mutation-testing.adoc[leveloffset=+2] diff --git a/docs/anchors/bdd-given-when-then.adoc b/docs/anchors/bdd-given-when-then.adoc new file mode 100644 index 0000000..135d0d8 --- /dev/null +++ b/docs/anchors/bdd-given-when-then.adoc @@ -0,0 +1,48 @@ += BDD (Behavior-Driven Development) +:categories: testing-quality +:roles: software-developer, qa-engineer, business-analyst, product-owner +:proponents: Dan North +:related: tdd-london-school, tdd-chicago-school, user-story-mapping +:tags: bdd, gherkin, cucumber, specification-by-example, three-amigos, given-when-then, living-documentation + +[%collapsible] +==== +Also known as:: Specification by Example, Executable Specifications + +[discrete] +== *Core Concepts*: + +Given-When-Then:: Structured scenario format — Given a precondition, When an action occurs, Then an expected outcome results + +Specification by Example:: Concrete examples as executable specifications that define system behavior + +Three Amigos:: Collaborative discovery sessions between developer, tester, and business representative + +Gherkin syntax:: Domain-specific language for writing human-readable, machine-executable scenarios + +Living documentation:: Tests that serve as always-current system documentation + +Outside-in specification:: Start from desired business behavior, work inward to implementation + +Ubiquitous language:: Shared vocabulary bridging technical and business stakeholders in scenarios + +Discovery workshops:: Structured conversations to uncover requirements through examples before implementation + + +Key Proponent:: Dan North ("Introducing BDD", 2006), creator of JBehave which influenced Cucumber's design (Cucumber created by Aslak Hellesøy, 2008) + +[discrete] +== *When to Use*: + +* Cross-functional teams needing shared understanding of requirements +* Systems where business rules are complex and need clear documentation +* Projects requiring executable acceptance criteria +* Bridging communication gaps between technical and non-technical stakeholders + +[discrete] +== *Related Anchors*: + +* <> - Outside-in development approach that complements BDD +* <> - Developer-focused TDD practice +* <> - Requirements discovery that feeds BDD scenarios +==== diff --git a/skill/semantic-anchor-translator/references/catalog.md b/skill/semantic-anchor-translator/references/catalog.md index 3454d58..eea52f0 100644 --- a/skill/semantic-anchor-translator/references/catalog.md +++ b/skill/semantic-anchor-translator/references/catalog.md @@ -14,6 +14,11 @@ Source: https://github.com/LLM-Coding/Semantic-Anchors - **Proponents:** Kent Beck, Martin Fowler - **Core:** State-based testing, real objects over mocks, refactoring-focused +### BDD (Behavior-Driven Development) +- **Also known as:** Specification by Example, Executable Specifications +- **Proponents:** Dan North +- **Core:** Given-When-Then scenarios, Gherkin syntax, three amigos, living documentation, outside-in specification + ### Testing Pyramid - **Core:** Many unit tests, fewer integration tests, fewest E2E tests