3. Agile ManifestoIndividuals and interactionsover processes and toolsWorking softwareover comprehensive documentationCustomer collaborationover contract negotiationResponding to changeover following a plan
6. Acceptance TestsRefunded items should be returned to stockGiven a customer buys a black jumperAnd I have 3 black jumpers left in stockWhen he returns the blackjumper for a refundThen I should have 4 black jumpers in stock
7. Test Driven Development (TDD)BenefitsFacilitates changeRefactoringRegression TestingDocumentationAPILiving DocumentationDesignClasses, MethodsBehaviour
8. Unit TestingA good unit test needs both to illustrate and define the behavioural contract of the unit in question. Behaviour is more than just individual methods KevlinHenney
9. Behaviour Driven Development(BDD) Is an agile software development technique that encourages collaboration betweenDevelopersQABusiness Participants in a software project.It extends TDD by writing test cases in a natural language that non-programmers can read.
10. Behaviour Driven Development (BDD)BenefitsFacilitates ChangeRefactoringRegressionRewritingDocumentationBehaviourLiving DocumentationDomain LanguageDefines DoneWhen all tests pass
15. DeclarationsGherkinGiven I input 5When calculating the factorialThen the result is 120NaturalSpec[<Scenario>] let ``When calculating factorial of 5 it should equal 120``() = Given 5 |> When calculating factorial |> It should equal 120 |> Verify
21. Step away from the toolsStart by having conversations, engaging both testers and business stakeholdersIf you cant have those conversations, stop. You cant do BDD Liz Keogh
22. BDD Patterns: TablesScenario: Winning positions Given a board layout: | 1 | 2 | 3 | | O | O | X | | O | | | | X | | X | When a player marks X at middle right Then X wins
23. BDD Patterns: ExamplesScenario: Winning positions Given a board layout: | 1 | 2 | 3 | | O | O | X | | O | | | | X | | X | When a player marks X at <row> <col> Then X winsExamples: | row | col | | middle | right | | middle | middle | | bottom | middle |
26. Q & AOr contact me in confidence:Twitter: @ptrelfordE-mail: phil(at)trelford.comIn-person: http://meetup.com/FSharpLondon
Editor's Notes
http://www.stickyminds.com/sitewide.asp?Function=edetail&ObjectType=ART&ObjectId=13833&tth=DYN&tt=siteemail&iDyn=2Key part here is A good unit test needs to define the behavioural contractThese kind of observations were what prompted Dan North into evolving TDD into BDD, which is what we will discuss next.
This is a description of what BDD is and how it relates to TDD.
BDD also known as Acceptance Test Driven Development etc.