Slide 1

Slide 1 text

Acceptance Test Driven Development for .Net

Slide 2

Slide 2 text

me => (Ryan Cromwell)

Slide 3

Slide 3 text

Coder Agile Coach ALM MVP

Slide 4

Slide 4 text

Acceptance Test Driven Development (ATDD) is a practice in which the whole team collaboratively discusses acceptance criteria, with examples, and then distills them into a set of concrete acceptance tests before development begins. - Elisabeth Hendrickson

Slide 5

Slide 5 text

• TDD + 1! • Confidence • Collaboration Requirements Design Code Test

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

“Selenium automates browsers.” http://seleniumhq.org/

Slide 8

Slide 8 text

IDE • Record and Playback • Create quick bug reproduction scripts • Create scripts to aid later automation • Not scalable WebDriver • Create robust regression scripts • Scale and distribute scripts across many environments • API (Java, .Net, Ruby, Javascript, Python, others)

Slide 9

Slide 9 text

http://bit.ly/selenese

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

BDD – Behavior Driven Development Gherkin – Given, When, Then… plus others Top of the testing pyramid http://specflow.org/

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Code Or It Didn’t Happen

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

Good • Given I go to Address Book • When I Quick Add John Doe • And I Quick Add John Doe • Then I’m told of the duplicate Bad • Given I Go To • When I Type John Doe • And hit Save • And I type John Doe • And hit Save • Then I see “Sorry, duplicate”

Slide 18

Slide 18 text

• Refactor • Consolidate Url Knowledge • SOLID+

Slide 19

Slide 19 text

• Will Feel Silly • Methods = Features/Behaviors • Single Dom throws a

Slide 20

Slide 20 text

• TFS Test Controllers & Agents • Selenium Grid • SauceLabs

Slide 21

Slide 21 text

• VMM Templates • PowerShell • Script Seed Data

Slide 22

Slide 22 text

Selenium (install-package Selenium.WebDriver) Selenium Helpers (install-package Selenium.Support) SpecFlow (install-package specflow, specflow.org) NUnit (install-package nunit)* ShouldFluent (install-package)*

Slide 23

Slide 23 text

Test Code is Production Code Discipline Confidence

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

github.com/cromwellryan

Slide 26

Slide 26 text

@cromwellryan blog.cromwellhaus.com