Behavior Driven Development
Upcoming SlideShare
Loading in...5
×
 

Behavior Driven Development

on

  • 604 views

Automated Acceptance Criteria using SpecFlow with Selenium in .NET

Automated Acceptance Criteria using SpecFlow with Selenium in .NET

Statistics

Views

Total Views
604
Views on SlideShare
604
Embed Views
0

Actions

Likes
0
Downloads
18
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Given-When-Then is acceptance test analog

Behavior Driven Development Behavior Driven Development Presentation Transcript

  • behavior drivendevelopment in.NETMICHAEL MCGUIRE@MONOCULARVISION
  • so what’s theproblem?
  • behavior driven development“BDD is a second-generation, outside–in,pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology.It describes a cycle of interactions with well-defined outputs, resulting in the delivery ofworking, tested software that matters.”- Dan North
  • BDD History Stemmed from confusion over TDD Where to start? What should I test? What should I not test? How big should a single test be? What should I name my tests? Grown to include agile analysis and automated testing
  • emphasize behavior over testing Test method names are sentences Keeps test methods focused Expressive test name is helpful when a test fails Test methods begin with “should” Keeps classes focused on doing one thing (SingleResponsibility Principle) Acceptance criteria should be executable Requirements are behavior too!
  • TDDMake ItPassRefactorWriteFailingUnit Test
  • BDD is TDDMake ItPassRefactorWriteFailingUnit TestWrite FailingAcceptanceTestMake It Pass
  • Automated Acceptance Criteria Structured user story format In order to <need> As a <role> I want to <feature> Focus put on the business need and benefit Scenarios give additional details about feature Given-When-Then
  •  http://www.specflow.org/ Open source framework for the creation and execution ofautomated acceptance tests in .NET Uses the Gherkin syntax for defining features and scenarios Generates NUnit or MSTest unit tests from feature file
  • SpecFlow Demo
  • driving your applicationSelenium http://seleniumhq.org Pros Most major browsers supported -PhantomJS, Chrome, IE, Firefoxand others Large community, many languagebindings Cons Simplistic APIWatiN http://watin.org/ Pros Fairly easy to use Rich API (specific element types) Cons Supports only Internet Explorer andFirefox Not a big community (.NETspecific)
  • Selenium + SpecFlow Demo
  • additional SpecFlow features Hooks [Before/After]TestRun [Before/After]Feature [Before/After]Scenario [Before/After]ScenarioBlock [Before/After]Step Tags/Tag Filtering on Hooks Step Argument Conversion [Scenario/Feature]Context Data Tables
  • additional considerations Setting up your application database for tests Attach/Detach database Clear/Load database tables Database transactions Faking/Mocking Database Imperative vs. Declarative tests http://benmabey.com/2008/05/19/imperative-vs-declarative-scenarios-in-user-stories.html
  • Links Behavior-Driven Development with SpecFlow and WatiN:http://msdn.microsoft.com/en-us/magazine/gg490346.aspx Behavior Driven Development (BDD) with SpecFlow and ASP.NETMVC: http://blog.stevensanderson.com/2010/03/03/behavior-driven-development-bdd-with-specflow-and-aspnet-mvc/