specflow for agile teams
TRANSCRIPT
SpecF low for Ag i le TeamsAlejandro RamirezSenior ConsultantPolaris Solutions
Platinum Sponsors
Silver Sponsors
Gold Sponsors
The evolved role of testing
Image credit: http://www.archeolog-home.com/pages/content/how-humans-became-masters-of-the-earth.html
Black-Box Agile
Test automation pyramid
GUITests
Acceptance Tests
Unit Tests
ManualTests
Test automation pyramid
GUITests
Acceptance Tests / BDD | ATDD
Unit Tests / Component Tests/ TDD
ManualTests
CodedUI Visual Studio
SpecFlow Visual Studio
xUnit Visual Studio
Manual Test CasesExploratory Tests MTM
AgileMaturity
ATDD or BDD?They are the same thing!
Agile techniques
Started in 2003
Understanding software behavior through discussion
Discussing acceptance criteria with examples
Focus on why and benefits of code
Embodies the definition of done in testsImage is copyright of Nintendo
https://microsite.nintendo-europe.com/Stay_Updated/ptPT/
What is SpecFlow?Not a pickle
Automated testing tool
Runs acceptance tests written in BDD style
It’s Cucumber for .NET
What you need to use it• Visual Studio
• SpecFlow package
• Learn Gherkin
How to use SpecFlow in 3 StepsONE: Specify behavior in Gherkin
TWO: Automate scenarios
THREE: Enjoy and repeat
Example( y o u a r e g o i n g t o l o v e i t )
Specifying behavior with GherkinDescribe behavior in plain English
Given, When, Then
In order to,As a,
I want toFeature
Behavior
Feature: Add CustomerIn order to store new customer informationAs a User of the XYZ systemI want to be able to create and store new customers
Scenario 1: Happy PathGiven a user has entered information about a customerWhen he/she completes entering more informationThen the customer information should be stored in the system
Scenario 1 (more elaborate)Given a user has entered information about a customerAnd he/she has provided a first name and a last nameWhen he/she completes entering more informationThen the customer information should be stored in the system
Scenario 1 (even more elaborate)Given a user has entered information about a customerAnd he/she has provided a first name and a last nameWhen he/she completes entering more informationThen the customer information should be stored in the system
Scenario 1 (even more elaborate)Given a user has entered information about a customerAnd he/she has provided a first name and a last nameWhen he/she completes entering more informationThen the customer information should be stored in the system
Scenario 2: Missing Required DataGiven a user has entered information about a customerAnd he/she has not provided the first name and last nameWhen he/she completes entering more informationThen the user will be notified about the missing dataAnd the customer will not be stored into the system
Exerc ise
In real life:
Quick Demo
Automating behaviorsGenerate stubs
Fill in the blanks
Run
SpecFlow approaches for agile teamsService layer
Integration
GUI
SpecFlow approaches for agile teamsDev + BADev + Test + BADev + Test
Q&A