SlideShare a Scribd company logo
1 of 61
Download to read offline
Model-based Testing:
Taking BDD/ATDD to the Next Level
Robert V. Binder
System Verification Associates
rvbinder@sysverif.com
#MoreModelsLessTests

Chicago Quality Assurance Association
February 25, 2014
The Incredible
Vastness of
Testing

ModelBased
Testing

Eaten Alive by the
Testing Backblob

Tell Me
A Story

More Models,
More Tests
Less
Models,
Less
Tests

Model Driven Development: Taking BDD/ATDD to the Next Level

1
The Incredible
Vastness of Testing
Saved by Revealing Sub-domains
• Grains of sand to fill the
Grand Canyon
~ 1.68 × 1025
~ 10 septillion

• Trivial Program
–
–
–
–

Data space: 21024
Sequences: 21024
Execution space: 22048
1.34 × 10616

Large subsets of any program’s execution space are revealing: if a bug exists in any
member of that space and it is executed, an observable failure results.

But, we rarely know exactly which sub-domains are revealing until we test.
Model Driven Development: Taking BDD/ATDD to the Next Level

3
It’s release time.
Do you know where your bugs are?
Aerospace
Medical

IT

0.7
0.8

Other

Agile

1.9
1.8
4.4

5.0

6.0
6.0

Mobile
Best In Class

Average bugs per
thousand
equivalent source
code lines,
post-release

4.7
Capers Jones’ statistics: 5 defects/FP, 95% Removal. Assumes 53 Java LOC/FP .

Model Driven Development: Taking BDD/ATDD to the Next Level

4
It’s release time.
Do you know where your bugs are?

Aerospace
Medical
IT

Best In Class

Other

325
375

Agile

Predicted total
latent bugs,
500 KLOC Java

925
875
2511
2202

2350
Capers Jones’ statistics: 5 defects/FP, 95% Removal. Assumes 53 Java LOC/FP

Model Driven Development: Taking BDD/ATDD to the Next Level

5
Driven to Distraction
• Test Driven Development
– TDD

• Behavior Driven Development
– BDD

• Acceptance Test Driven Development

• What is it?
• How does it work?
• What can it do for
me?

– ATDD

• Model-based Testing
– MBT
Model Driven Development: Taking BDD/ATDD to the Next Level

6
Eaten Alive
by the
Testing
Backblob
EATEN ALIVE BY THE TESTING
BACKBLOB
Where does the time go?
Total
Number
of Test
Cases

Sprint 1

Sprint 2

Sprint 3

Sprint 4

}

Tests/testing for
new features
Existing manual
Test Cases not
executed

Available
Dev/Test
Time

Existing automated
Test Cases not
maintained
Model Driven Development: Taking BDD/ATDD to the Next Level

8
The Attack of the BackBlob

http://www.youtube.com/watch?v=GODDLgM1gKo
Tell Me a Story

TELL ME A STORY
The Chat Server
•
•
•
•
•

Logon
List active users
Post a message
Broadcast message
Logoff

!!!
Client
Endpoint

Client
Endpoint

Model Driven Development: Taking BDD/ATDD to the Next Level

Chat
Server
11
TDD – BDD – ATDD
• Test Driven
Development

• Behavior Driven
Development
• Acceptance Test Driven
Development

• Programming strategies
– Test suites are scaffolding
– Test each method/feature at
least once

– Rerun after any add/change

• Not testing strategies

Model Driven Development: Taking BDD/ATDD to the Next Level

12
The TDD Red-Green Cycle
• Imagine a class and its
responsibilities
• Code its API only

Logon
Logon

GetStatus
GetStatus

Logoff
Logoff

Model Driven Development: Taking BDD/ATDD to the Next Level

13
The Red-Green Cycle
• Imagine a class and its
responsibilities
• Code its API only



TestLogon

• Write and run a simple test – it
should fail

Logon

GetStatus

Logoff

Model Driven Development: Taking BDD/ATDD to the Next Level

14
The Red-Green Cycle
• Imagine a class and its
responsibilities
• Code its API only



TestLogon

• Write and run a simple test – it
should fail

Logon

GetStatus

• Code implementation
• Rerun all tests – expect pass

Model Driven Development: Taking BDD/ATDD to the Next Level

Logoff

15
The Red-Green Cycle
• Imagine a class and its
responsibilities
• Code its API only
• Write and run a simple test – it
should fail






TestLogon
Logon
TestGetStatus

GetStatus

• Code implementation
• Rerun all tests – expect pass

Logoff

• Repeat until feature complete
Model Driven Development: Taking BDD/ATDD to the Next Level

16
The Red-Green Cycle
• Imagine a class and its
responsibilities
• Code its API only
• Write and run a simple test – it
should fail





TestLogon
Logon
TestGetStatus

GetStatus

• Code implementation
• Rerun all tests – expect pass




TestLogoff

Logoff

• Repeat until feature complete
Model Driven Development: Taking BDD/ATDD to the Next Level

17
TDD Limitations
Process,
Activities

Components,
Test Objects

• No explicit linkage for
user/customer needs,
requirements, or
stories

• Gaps
– UI automation
– Feature testing
Model Driven Development: Taking BDD/ATDD to the Next Level

18
Behavior Driven Development
Process,
Activities

Components,
Test Objects
Features,
Scenarios
Feature Files

 Scenario A

*DD Tool

 Scenario B
 Scenario C

Test Objects
*Unit
Components
Model Driven Development: Taking BDD/ATDD to the Next Level

19
Acceptance Test Driven Development
Process,
Activities

Features,
Scenarios

UI Test
Cases
Feature Files

 Scenario A

*DD Tool

 Scenario B
 Scenario C

Test Scripts
Test Objects
Test Tooling
*Unit
System
Under Test
Model Driven Development: Taking BDD/ATDD to the Next Level

20
Features and Scenarios
Feature: story
Scenario: instance of a story
Steps:
Given: pre-condition
When: trigger
Then: verification condition

Feature: Logon
In order to use the chat server,
As a validated chat client,
I want to submit my credentials and
establish a session
Scenario: Submit Good
Given A connection to
When I send the Login
Then I should see the

Model Driven Development: Taking BDD/ATDD to the Next Level

Credentials
the server is open
message
"Hi Chatter" message

21
Overview
Feature Files

 Scenario A

SpecFlow

 Scenario B
 Scenario C

Test Objects
Nunit
Visual Studio
Components

http://www.specflow.org

• Enter features, scenarios
• Generates skeleton test
code for each step
– Extracts step names
– Can run immediately

• Developer adds step code
• Test run reports
• CI integration, more

Model Driven Development: Taking BDD/ATDD to the Next Level

22
1. Create a
Feature File
• SpecFlow
generates a stub
file
• Edit as necessary
• One feature
• 1:N scenarios

Model Driven Development: Taking BDD/ATDD to the Next Level

23
2. Enter Scenario
Steps
• Given
– Precondition
– Data State

• When
– Trigger
– API call, GUI action

• Then
– Verification
conditions
(expected results)
Model Driven Development: Taking BDD/ATDD to the Next Level

24
3. Inspect Skeleton
Test Code

• SpecFlow parses
feature file
• Generates
skeleton test
code for each
scenario and step

Model Driven Development: Taking BDD/ATDD to the Next Level

25
3. Add Test Case
Code
• User adds more
code as needed
to implement
each test case

Model Driven Development: Taking BDD/ATDD to the Next Level

26
4. Run Test Suite
• The generated
test code can be
run immediately
• Supports the redgreen cycle

Model Driven Development: Taking BDD/ATDD to the Next Level

27
SpecFlow
•

BDD for Visual Studio
• Link Feature Files to test code
• Generates partial test code

Feature File contains statements in
Gherkin
–

Keywords + natural language

•
•

Generates test code skeleton from
steps

•

Feature
File

1:N Steps per Scenario

•

Feature

1:N Scenarios per Feature File

Steps may be parameterized

Steps

Rows

•

Variables and variable bindings in Rows

–

Scenarios

–

Test code generation using regular
expression patterns

Integration with TFS, CI, …

Model Driven Development: Taking BDD/ATDD to the Next Level

28
Modelbased
Testing
THE VERY MODEL OF A MODERN …
What is a Model?
• Focus
• Smaller, simpler
• In IT systems
– Behavior
– Structure
– Content
Model Driven Development: Taking BDD/ATDD to the Next Level

30
IT Models
Process,
Activities

Behavior,
Structure,
Content

Model Driven Development: Taking BDD/ATDD to the Next Level

Technology

31
IT Models
• Notional (design)
• As built (documentation)
• Test Models
– Similar to notional and as-built
– Unique aspects
Test Models
• Focus on aspects that
support testing goals
• Behavior
– Sequence and time

• Transformation
– Input, output function

• Verification (oracle)
• Coverage

• Risk Management
Model Driven Development: Taking BDD/ATDD to the Next Level

33
Chat Server
• Logon

Chat Server

– Must be first
– Can’t be repeated

Logon
GetStatus
Logoff

• GetStatus
– Only after logon
– Returns number of calls since
logon

• Logoff
– Only after logon

• Typical RFC status codes
Model Driven Development: Taking BDD/ATDD to the Next Level

34
Simple Test Model
Logoff

nc = 0
GetStatus

System Under
Test (SUT)

Logon

Logon

Logon

GetStatus

assert (200)

assert (401)

assert (401)

assert (401)

Logoff

nc++
GetStatus

Logoff
assert (200)

Logoff
assert (200)
Model Driven Development: Taking BDD/ATDD to the Next Level

assert (200)
assert (n == nc)
35
Chat Server Message Sequence
Login a 1234
Hi Chatter a
Login b secret
Hi Chatter b
List Users
Users: a, b
!!!
Client Endpoint

Client Endpoint

Model Driven Development: Taking BDD/ATDD to the Next Level

Chat Server

36
Chat Server Message Sequence
List Users
Users: a, b
Post “Pumpkin Latte #mypics”
Ack a1 “Pumpkin Latte #mypics”

Bcast a1 “Pumpkin Latte #mypics”
Logoff b
Ack Logoff b

!!!
Client Endpoint

Client Endpoint

Model Driven Development: Taking BDD/ATDD to the Next Level

Chat Server

37
Spec Explorer Demo
• Model-based testing tool
– Microsoft Research

– Used to test all MSFT APIs
– Robust and stable
– Visual Studio “power tool”

• C# code, not cartoons
• Generates standalone
executable test suite
Model Driven Development: Taking BDD/ATDD to the Next Level

38
1. Create Test
Model Actions
• [Rule] tags a
method for
exploration
• Requires defines
a exploration
precondition –
must be true to
explore
Model Driven Development: Taking BDD/ATDD to the Next Level

39
2. Define Accepting
State(s)
• Tag condition(s)
that terminate
an exploration

Model Driven Development: Taking BDD/ATDD to the Next Level

40
3. Create Cord File
• Set options
• Define machines
– Limits Actions used
in an exploration

• Similar to regular
expression
• Composable
• Very powerful!
Model Driven Development: Taking BDD/ATDD to the Next Level

41
4. Explore the Model
• Select any
explorable machine
– Explore
– Generate test suite
– Run on-the-fly test

Model Driven Development: Taking BDD/ATDD to the Next Level

42
5. Review
Exploration Graph
•

Shows action/event
sequence

•

Ellipse: model state
computed by model
program machine

•

Diamond: observation
“event” – get something
from SUT (input to the
model program)

•

Right click to inspect
any item

Model Driven Development: Taking BDD/ATDD to the Next Level

43
6. Define machine(s)
to generate test
suites

• Set options to
generate test
code
• Use any machine
or composite
machine

Model Driven Development: Taking BDD/ATDD to the Next Level

44
7. Explore the Test
Suite machine
• Each root to leaf
path becomes a
test suite

Model Driven Development: Taking BDD/ATDD to the Next Level

45
8. Generate Test Code
• Explores the test
machine
• Writes out test
code using VS
testing
framework

Model Driven Development: Taking BDD/ATDD to the Next Level

46
8. Generate Test Code
• Not intended to
be maintained
• Re-generate any
time
• Add helper code in
the model to
extend/customize
Model Driven Development: Taking BDD/ATDD to the Next Level

47
9. Run the Test Suite
•

Uses built-in Visual
Studio test runner

•

Adapters
– Start/stop chat clients
and chat server

– Other SUT
setup/cleanup

•

Model Driven Development: Taking BDD/ATDD to the Next Level

Test code sends
messages, checks
replies
48
Model State
(test case inputs)

10. Review Test
Results
• Detailed run log
–
–
–
–

Event Handler
(pass/fail)
Requirement
Trace

VS test runner
States
Events
Requirements

• Add any other
programmable
function

Model Driven Development: Taking BDD/ATDD to the Next Level

49
Spec Explorer
Exploration
• Interactive model development
• Generate test suites

•

Machines

Cord
Declarations
Model
Program

Options

Machines define composable
Action sequences

•

Options control exploration and
data generation

•

Actions are explored
– Rules define exploration conditions

Model Data
Structures

Rules
Actions
Events
Adapters

– Events define expected SUT
response

•

Data structures support exploration

•

Adapters abstract, control, and
observe any interface, any platform

Model Driven Development: Taking BDD/ATDD to the Next Level

50
MBT Driven Development
Requirements, Stories, Scenarios...
Explore

Ambiguous, missing,
contradictory, incorrect,
redundant, incomplete

Test Model
Run

Generate

Model error, omission

Test Suite
Inputs
(Test Sequences)

Control

Missing,
incorrect
Coverage
Requirements
Model

Evaluate

Expected Outputs
(Test Oracle)

SUT

Observe

Model Driven Development: Taking BDD/ATDD to the Next Level

Bug
51
More Models, Less Tests

MORE MODELS, LESS TESTS
Model-based Testing in the Real World
• Windows protocol compliance (Web services, RPC, DCOM)
• Total effort: 250 person years (mostly junior SDETs)
• Saved 50 person years with model-based testing
Model-based Testing
1.4 Days/Requirement

42% Less
Time Per
Requirement

Traditional Testing
2.4 Days/Requirement
Requirements Study

Modeling

Test Coding

Adapter Coding

Model Driven Development: Taking
BDD/ATDD to the Next Level

Test Execution
53
Scope of Test Asset Maintenance
Model-based Testing

Behavior Driven Development

Model
How much MBTgenerated test code
must be maintained?

Test Code

None!

Adapters
Model Driven Development: Taking BDD/ATDD to the Next Level

54
More Models, Less Tests
• More Better Testing

• Icing the BackBlob

– Rule-based

– Maintain model

– Systematic and deep
exploration

– Regenerate test suites

– Generate 1000s of
scenarios in seconds

– Models grow much
more slowly than test
code

Model Driven Development: Taking BDD/ATDD to the Next Level

55
Icing the Backblob

http://www.youtube.com/watch?v=0GEJgR-bX0w
Q&A
#MoreModelsLessTests
rvbinder@sysverif.com

Model Driven Development: Taking BDD/ATDD to the Next Level

57
Learn More - MBT
•

UCCAT (User Conference on Advanced Automated Testing) Presentations

http://ucaat.etsi.org/2013/program_conf.html
•

2012 Model-based Testing User Survey

http://robertvbinder.com/wp-content/uploads/rvb-pdf/arts/MBT-User-Survey.pdf
•

Open Source MBT tools

http://www.robertvbinder.com/open-source-tools-for-model-based-testing/
•

Overview of MBT, list of commercial MBT tools

http://www.slideshare.net/robertvbinder/model-basedtestingignite
•

Spec Explorer

http://visualstudiogallery.msdn.microsoft.com/271d0904-f178-4ce9-956b-d9bfa4902745
http://msdn.microsoft.com/library/ee620411.aspx

•

Microsoft Open Protocol Project

http://cacm.acm.org/magazines/2011/7/109908-microsofts-protocol-documentation-program/fulltext#!
Model Driven Development: Taking
BDD/ATDD to the Next Level

58
Learn More: BDD, etc.
•

SpecFlow

http://www.specflow.org/
•

Using SpecFlow with WatiN

http://msdn.microsoft.com/en-us/magazine/gg490346.aspx
•

SpecFlow Quick Start

http://www.youtube.com/watch?v=SVwBz-ZTliw
•

Writing Cucumber Feature Files

https://github.com/cucumber/cucumber/wiki
•

Using Lava Lamps to indicate Build Status

https://wiki.jenkins-ci.org/display/JENKINS/Hudson+Build+Status+Lava+Lamps

Model Driven Development: Taking
BDD/ATDD to the Next Level

59
Content and Image Sources
Grand Canyon Time Lapse. Ezra Kamer
http://www.youtube.com/watch?v=NF6O6HuNJ0k

Contrast (Order and Chaos). M. C. Escher, 1950. National Gallery of
Canada
http://www.gallery.ca/en/see/collections/artwork.php?mkey=29270

The Blob, Theatre Scene. Fairview Productions, 1958.
http://www.youtube.com/watch?v=GODDLgM1gKo
http://www.imdb.com/title/tt0051418/

Order and Chaos II. M. C. Escher, 1955. National Gallery of Canada
http://www.gallery.ca/en/see/collections/artwork.php?mkey=41980

Defect densities:
• Capers Jones, Software Quality: Analysis and Guidelines for Success
• Robert E. Park. Software Size Measurement: A Framework for
Counting Source Statements. Technical Report CMU/SEI-92-TR-020.
Software Engineering Institute, Carnegie Mellon University

Spec Explorer. Microsoft
http://visualstudiogallery.msdn.microsoft.com/271d0904-f178-4ce9956b-d9bfa4902745

SpecFlow
http://www.specflow.org/

The Blob, Final Scene. Fairview Productions, 1958.
http://www.youtube.com/watch?v=0GEJgR-bX0w

Spec Explorer Chat Model. Microsoft.

All other content Copyright © Robert V. Binder, 2014.

Model Driven Development: Taking BDD/ATDD to the Next Level

60

More Related Content

What's hot

Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
Rathna Priya
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
Intetics
 
01 software test engineering (manual testing)
01 software test engineering (manual testing)01 software test engineering (manual testing)
01 software test engineering (manual testing)
Siddireddy Balu
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.ppt
Komal Garg
 

What's hot (20)

Software Testing
Software TestingSoftware Testing
Software Testing
 
Code coverage
Code coverageCode coverage
Code coverage
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Chapter 3 SOFTWARE TESTING PROCESS
Chapter 3 SOFTWARE TESTING PROCESSChapter 3 SOFTWARE TESTING PROCESS
Chapter 3 SOFTWARE TESTING PROCESS
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
Top 50 Software Testing Interview Questions & Answers | Edureka
Top 50 Software Testing Interview Questions & Answers | EdurekaTop 50 Software Testing Interview Questions & Answers | Edureka
Top 50 Software Testing Interview Questions & Answers | Edureka
 
[Hoang nguyen] The Psychology in Software Testing
[Hoang nguyen] The Psychology in Software Testing[Hoang nguyen] The Psychology in Software Testing
[Hoang nguyen] The Psychology in Software Testing
 
Test cases
Test casesTest cases
Test cases
 
Specification by example
Specification by exampleSpecification by example
Specification by example
 
Testing, black ,white and gray box testing
Testing, black ,white and gray box testingTesting, black ,white and gray box testing
Testing, black ,white and gray box testing
 
Setting up Performance Testing & Engineering COE - Top 10 success secrets
Setting up Performance Testing & Engineering COE - Top 10 success secretsSetting up Performance Testing & Engineering COE - Top 10 success secrets
Setting up Performance Testing & Engineering COE - Top 10 success secrets
 
Automation test framework with cucumber – BDD
Automation test framework with cucumber – BDDAutomation test framework with cucumber – BDD
Automation test framework with cucumber – BDD
 
Specification by Example
Specification by ExampleSpecification by Example
Specification by Example
 
Agile Testing Process
Agile Testing ProcessAgile Testing Process
Agile Testing Process
 
01 software test engineering (manual testing)
01 software test engineering (manual testing)01 software test engineering (manual testing)
01 software test engineering (manual testing)
 
An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)An introduction to Behavior-Driven Development (BDD)
An introduction to Behavior-Driven Development (BDD)
 
What is WebElement in Selenium | Web Elements & Element Locators | Edureka
What is WebElement in Selenium | Web Elements & Element Locators | EdurekaWhat is WebElement in Selenium | Web Elements & Element Locators | Edureka
What is WebElement in Selenium | Web Elements & Element Locators | Edureka
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.ppt
 
Types of Software Testing | Edureka
Types of Software Testing | EdurekaTypes of Software Testing | Edureka
Types of Software Testing | Edureka
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 

Viewers also liked

Viewers also liked (6)

Model-Based Testing: Why, What, How
Model-Based Testing: Why, What, HowModel-Based Testing: Why, What, How
Model-Based Testing: Why, What, How
 
Model-based Testing: Today And Tomorrow
Model-based Testing: Today And TomorrowModel-based Testing: Today And Tomorrow
Model-based Testing: Today And Tomorrow
 
Who will guard the guards themselves? How to trust your automation and avoid ...
Who will guard the guards themselves? How to trust your automation and avoid ...Who will guard the guards themselves? How to trust your automation and avoid ...
Who will guard the guards themselves? How to trust your automation and avoid ...
 
Deploy and Destroy Complete Test Environments
Deploy and Destroy Complete Test EnvironmentsDeploy and Destroy Complete Test Environments
Deploy and Destroy Complete Test Environments
 
How Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian KarlHow Spotify Does Test Automation - Kristian Karl
How Spotify Does Test Automation - Kristian Karl
 
Re-thinking Test Automation and Test Process Modelling (in pictures)
Re-thinking Test Automation and Test Process Modelling (in pictures)Re-thinking Test Automation and Test Process Modelling (in pictures)
Re-thinking Test Automation and Test Process Modelling (in pictures)
 

Similar to Model-based Testing: Taking BDD/ATDD to the Next Level

Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
gaoliang641
 
Software Testing - Day One
Software Testing - Day OneSoftware Testing - Day One
Software Testing - Day One
Govardhan Reddy
 

Similar to Model-based Testing: Taking BDD/ATDD to the Next Level (20)

AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech UpdateAdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
AdaCore Paris Tech Day 2016: Jose Ruiz - QGen Tech Update
 
Web automation in BDD
Web automation in BDDWeb automation in BDD
Web automation in BDD
 
Continuous Integration for z using Test Data Management and Application D...
Continuous  Integration for z  using  Test Data Management  and Application D...Continuous  Integration for z  using  Test Data Management  and Application D...
Continuous Integration for z using Test Data Management and Application D...
 
Groovy In the Cloud
Groovy In the CloudGroovy In the Cloud
Groovy In the Cloud
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
Testing - How Vital and How Easy to use
Testing - How Vital and How Easy to useTesting - How Vital and How Easy to use
Testing - How Vital and How Easy to use
 
Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...
 
Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...Azure Integration DTAP Series, How to go from Development to Production – Par...
Azure Integration DTAP Series, How to go from Development to Production – Par...
 
Getting started with RISC-V verification what's next after compliance testing
Getting started with RISC-V verification what's next after compliance testingGetting started with RISC-V verification what's next after compliance testing
Getting started with RISC-V verification what's next after compliance testing
 
Behavior Driven Development by Example
Behavior Driven Development by ExampleBehavior Driven Development by Example
Behavior Driven Development by Example
 
Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...Technology-Driven Development: Using Automation and Development Techniques to...
Technology-Driven Development: Using Automation and Development Techniques to...
 
Software Development Life Cycle – SDLC – Waterfall Model
Software Development Life Cycle – SDLC – Waterfall ModelSoftware Development Life Cycle – SDLC – Waterfall Model
Software Development Life Cycle – SDLC – Waterfall Model
 
Lessons learned validating 60,000 pages of api documentation
Lessons learned validating 60,000 pages of api documentationLessons learned validating 60,000 pages of api documentation
Lessons learned validating 60,000 pages of api documentation
 
Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.Effective Android Development. UA Mobile 2016.
Effective Android Development. UA Mobile 2016.
 
NET Code Testing
NET Code TestingNET Code Testing
NET Code Testing
 
Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration Continuous Delivery, Continuous Integration
Continuous Delivery, Continuous Integration
 
Gocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous DeploymentGocd – Kubernetes/Nomad Continuous Deployment
Gocd – Kubernetes/Nomad Continuous Deployment
 
Binary Studio Academy: .NET Code Testing
Binary Studio Academy: .NET Code TestingBinary Studio Academy: .NET Code Testing
Binary Studio Academy: .NET Code Testing
 
Fut Lsi
Fut LsiFut Lsi
Fut Lsi
 
Software Testing - Day One
Software Testing - Day OneSoftware Testing - Day One
Software Testing - Day One
 

More from Bob Binder

More from Bob Binder (20)

Mobile App Assurance: Yesterday, Today, and Tomorrow.
Mobile App Assurance: Yesterday, Today, and Tomorrow.Mobile App Assurance: Yesterday, Today, and Tomorrow.
Mobile App Assurance: Yesterday, Today, and Tomorrow.
 
Popular Delusions, Crowds, and the Coming Deluge: end of the Oracle?
Popular Delusions, Crowds, and the Coming Deluge: end of the Oracle?Popular Delusions, Crowds, and the Coming Deluge: end of the Oracle?
Popular Delusions, Crowds, and the Coming Deluge: end of the Oracle?
 
MTS: Controllable Test Objects
MTS: Controllable Test ObjectsMTS: Controllable Test Objects
MTS: Controllable Test Objects
 
Achieving Very High Reliability for Ubiquitous Information Technology
Achieving Very High Reliability for Ubiquitous Information Technology Achieving Very High Reliability for Ubiquitous Information Technology
Achieving Very High Reliability for Ubiquitous Information Technology
 
The Tester’s Dashboard: Release Decision Support
The Tester’s Dashboard: Release Decision SupportThe Tester’s Dashboard: Release Decision Support
The Tester’s Dashboard: Release Decision Support
 
Performance Testing Mobile and Multi-Tier Applications
Performance Testing Mobile and Multi-Tier ApplicationsPerformance Testing Mobile and Multi-Tier Applications
Performance Testing Mobile and Multi-Tier Applications
 
Testing Object-Oriented Systems: Lessons Learned
Testing Object-Oriented Systems: Lessons LearnedTesting Object-Oriented Systems: Lessons Learned
Testing Object-Oriented Systems: Lessons Learned
 
mVerify Investor Overview
mVerify Investor OverviewmVerify Investor Overview
mVerify Investor Overview
 
MDD and the Tautology Problem: Discussion Notes.
MDD and the Tautology Problem: Discussion Notes.MDD and the Tautology Problem: Discussion Notes.
MDD and the Tautology Problem: Discussion Notes.
 
Mobile Reliability Challenges
Mobile Reliability ChallengesMobile Reliability Challenges
Mobile Reliability Challenges
 
Experience with a Profile-based Automated Testing Environment
Experience with a Profile-based Automated Testing EnvironmentExperience with a Profile-based Automated Testing Environment
Experience with a Profile-based Automated Testing Environment
 
Testability: Factors and Strategy
Testability: Factors and StrategyTestability: Factors and Strategy
Testability: Factors and Strategy
 
Test Objects -- They Just Work
Test Objects -- They Just WorkTest Objects -- They Just Work
Test Objects -- They Just Work
 
A Million Users in a Box: The WTS Story
A Million Users in a Box: The WTS StoryA Million Users in a Box: The WTS Story
A Million Users in a Box: The WTS Story
 
ISSRE 2008 Trip Report
ISSRE 2008 Trip ReportISSRE 2008 Trip Report
ISSRE 2008 Trip Report
 
Software Test Patterns: Successes and Challenges
Software Test Patterns: Successes and ChallengesSoftware Test Patterns: Successes and Challenges
Software Test Patterns: Successes and Challenges
 
Assurance for Cloud Computing
Assurance for Cloud ComputingAssurance for Cloud Computing
Assurance for Cloud Computing
 
The Advanced Mobile Application Testing Environment: Project Report
The Advanced Mobile Application Testing Environment: Project ReportThe Advanced Mobile Application Testing Environment: Project Report
The Advanced Mobile Application Testing Environment: Project Report
 
Software Testing: Models, Patterns, Tools
Software Testing: Models, Patterns, ToolsSoftware Testing: Models, Patterns, Tools
Software Testing: Models, Patterns, Tools
 
The Tester’s Dashboard: Release Decision Support
The Tester’s Dashboard: Release Decision SupportThe Tester’s Dashboard: Release Decision Support
The Tester’s Dashboard: Release Decision Support
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

Model-based Testing: Taking BDD/ATDD to the Next Level

  • 1. Model-based Testing: Taking BDD/ATDD to the Next Level Robert V. Binder System Verification Associates rvbinder@sysverif.com #MoreModelsLessTests Chicago Quality Assurance Association February 25, 2014
  • 2. The Incredible Vastness of Testing ModelBased Testing Eaten Alive by the Testing Backblob Tell Me A Story More Models, More Tests Less Models, Less Tests Model Driven Development: Taking BDD/ATDD to the Next Level 1
  • 4. Saved by Revealing Sub-domains • Grains of sand to fill the Grand Canyon ~ 1.68 × 1025 ~ 10 septillion • Trivial Program – – – – Data space: 21024 Sequences: 21024 Execution space: 22048 1.34 × 10616 Large subsets of any program’s execution space are revealing: if a bug exists in any member of that space and it is executed, an observable failure results. But, we rarely know exactly which sub-domains are revealing until we test. Model Driven Development: Taking BDD/ATDD to the Next Level 3
  • 5. It’s release time. Do you know where your bugs are? Aerospace Medical IT 0.7 0.8 Other Agile 1.9 1.8 4.4 5.0 6.0 6.0 Mobile Best In Class Average bugs per thousand equivalent source code lines, post-release 4.7 Capers Jones’ statistics: 5 defects/FP, 95% Removal. Assumes 53 Java LOC/FP . Model Driven Development: Taking BDD/ATDD to the Next Level 4
  • 6. It’s release time. Do you know where your bugs are? Aerospace Medical IT Best In Class Other 325 375 Agile Predicted total latent bugs, 500 KLOC Java 925 875 2511 2202 2350 Capers Jones’ statistics: 5 defects/FP, 95% Removal. Assumes 53 Java LOC/FP Model Driven Development: Taking BDD/ATDD to the Next Level 5
  • 7. Driven to Distraction • Test Driven Development – TDD • Behavior Driven Development – BDD • Acceptance Test Driven Development • What is it? • How does it work? • What can it do for me? – ATDD • Model-based Testing – MBT Model Driven Development: Taking BDD/ATDD to the Next Level 6
  • 8. Eaten Alive by the Testing Backblob EATEN ALIVE BY THE TESTING BACKBLOB
  • 9. Where does the time go? Total Number of Test Cases Sprint 1 Sprint 2 Sprint 3 Sprint 4 } Tests/testing for new features Existing manual Test Cases not executed Available Dev/Test Time Existing automated Test Cases not maintained Model Driven Development: Taking BDD/ATDD to the Next Level 8
  • 10. The Attack of the BackBlob http://www.youtube.com/watch?v=GODDLgM1gKo
  • 11. Tell Me a Story TELL ME A STORY
  • 12. The Chat Server • • • • • Logon List active users Post a message Broadcast message Logoff !!! Client Endpoint Client Endpoint Model Driven Development: Taking BDD/ATDD to the Next Level Chat Server 11
  • 13. TDD – BDD – ATDD • Test Driven Development • Behavior Driven Development • Acceptance Test Driven Development • Programming strategies – Test suites are scaffolding – Test each method/feature at least once – Rerun after any add/change • Not testing strategies Model Driven Development: Taking BDD/ATDD to the Next Level 12
  • 14. The TDD Red-Green Cycle • Imagine a class and its responsibilities • Code its API only Logon Logon GetStatus GetStatus Logoff Logoff Model Driven Development: Taking BDD/ATDD to the Next Level 13
  • 15. The Red-Green Cycle • Imagine a class and its responsibilities • Code its API only  TestLogon • Write and run a simple test – it should fail Logon GetStatus Logoff Model Driven Development: Taking BDD/ATDD to the Next Level 14
  • 16. The Red-Green Cycle • Imagine a class and its responsibilities • Code its API only  TestLogon • Write and run a simple test – it should fail Logon GetStatus • Code implementation • Rerun all tests – expect pass Model Driven Development: Taking BDD/ATDD to the Next Level Logoff 15
  • 17. The Red-Green Cycle • Imagine a class and its responsibilities • Code its API only • Write and run a simple test – it should fail    TestLogon Logon TestGetStatus GetStatus • Code implementation • Rerun all tests – expect pass Logoff • Repeat until feature complete Model Driven Development: Taking BDD/ATDD to the Next Level 16
  • 18. The Red-Green Cycle • Imagine a class and its responsibilities • Code its API only • Write and run a simple test – it should fail   TestLogon Logon TestGetStatus GetStatus • Code implementation • Rerun all tests – expect pass   TestLogoff Logoff • Repeat until feature complete Model Driven Development: Taking BDD/ATDD to the Next Level 17
  • 19. TDD Limitations Process, Activities Components, Test Objects • No explicit linkage for user/customer needs, requirements, or stories • Gaps – UI automation – Feature testing Model Driven Development: Taking BDD/ATDD to the Next Level 18
  • 20. Behavior Driven Development Process, Activities Components, Test Objects Features, Scenarios Feature Files  Scenario A *DD Tool  Scenario B  Scenario C Test Objects *Unit Components Model Driven Development: Taking BDD/ATDD to the Next Level 19
  • 21. Acceptance Test Driven Development Process, Activities Features, Scenarios UI Test Cases Feature Files  Scenario A *DD Tool  Scenario B  Scenario C Test Scripts Test Objects Test Tooling *Unit System Under Test Model Driven Development: Taking BDD/ATDD to the Next Level 20
  • 22. Features and Scenarios Feature: story Scenario: instance of a story Steps: Given: pre-condition When: trigger Then: verification condition Feature: Logon In order to use the chat server, As a validated chat client, I want to submit my credentials and establish a session Scenario: Submit Good Given A connection to When I send the Login Then I should see the Model Driven Development: Taking BDD/ATDD to the Next Level Credentials the server is open message "Hi Chatter" message 21
  • 23. Overview Feature Files  Scenario A SpecFlow  Scenario B  Scenario C Test Objects Nunit Visual Studio Components http://www.specflow.org • Enter features, scenarios • Generates skeleton test code for each step – Extracts step names – Can run immediately • Developer adds step code • Test run reports • CI integration, more Model Driven Development: Taking BDD/ATDD to the Next Level 22
  • 24. 1. Create a Feature File • SpecFlow generates a stub file • Edit as necessary • One feature • 1:N scenarios Model Driven Development: Taking BDD/ATDD to the Next Level 23
  • 25. 2. Enter Scenario Steps • Given – Precondition – Data State • When – Trigger – API call, GUI action • Then – Verification conditions (expected results) Model Driven Development: Taking BDD/ATDD to the Next Level 24
  • 26. 3. Inspect Skeleton Test Code • SpecFlow parses feature file • Generates skeleton test code for each scenario and step Model Driven Development: Taking BDD/ATDD to the Next Level 25
  • 27. 3. Add Test Case Code • User adds more code as needed to implement each test case Model Driven Development: Taking BDD/ATDD to the Next Level 26
  • 28. 4. Run Test Suite • The generated test code can be run immediately • Supports the redgreen cycle Model Driven Development: Taking BDD/ATDD to the Next Level 27
  • 29. SpecFlow • BDD for Visual Studio • Link Feature Files to test code • Generates partial test code Feature File contains statements in Gherkin – Keywords + natural language • • Generates test code skeleton from steps • Feature File 1:N Steps per Scenario • Feature 1:N Scenarios per Feature File Steps may be parameterized Steps Rows • Variables and variable bindings in Rows – Scenarios – Test code generation using regular expression patterns Integration with TFS, CI, … Model Driven Development: Taking BDD/ATDD to the Next Level 28
  • 31. What is a Model? • Focus • Smaller, simpler • In IT systems – Behavior – Structure – Content Model Driven Development: Taking BDD/ATDD to the Next Level 30
  • 32. IT Models Process, Activities Behavior, Structure, Content Model Driven Development: Taking BDD/ATDD to the Next Level Technology 31
  • 33. IT Models • Notional (design) • As built (documentation) • Test Models – Similar to notional and as-built – Unique aspects
  • 34. Test Models • Focus on aspects that support testing goals • Behavior – Sequence and time • Transformation – Input, output function • Verification (oracle) • Coverage • Risk Management Model Driven Development: Taking BDD/ATDD to the Next Level 33
  • 35. Chat Server • Logon Chat Server – Must be first – Can’t be repeated Logon GetStatus Logoff • GetStatus – Only after logon – Returns number of calls since logon • Logoff – Only after logon • Typical RFC status codes Model Driven Development: Taking BDD/ATDD to the Next Level 34
  • 36. Simple Test Model Logoff nc = 0 GetStatus System Under Test (SUT) Logon Logon Logon GetStatus assert (200) assert (401) assert (401) assert (401) Logoff nc++ GetStatus Logoff assert (200) Logoff assert (200) Model Driven Development: Taking BDD/ATDD to the Next Level assert (200) assert (n == nc) 35
  • 37. Chat Server Message Sequence Login a 1234 Hi Chatter a Login b secret Hi Chatter b List Users Users: a, b !!! Client Endpoint Client Endpoint Model Driven Development: Taking BDD/ATDD to the Next Level Chat Server 36
  • 38. Chat Server Message Sequence List Users Users: a, b Post “Pumpkin Latte #mypics” Ack a1 “Pumpkin Latte #mypics” Bcast a1 “Pumpkin Latte #mypics” Logoff b Ack Logoff b !!! Client Endpoint Client Endpoint Model Driven Development: Taking BDD/ATDD to the Next Level Chat Server 37
  • 39. Spec Explorer Demo • Model-based testing tool – Microsoft Research – Used to test all MSFT APIs – Robust and stable – Visual Studio “power tool” • C# code, not cartoons • Generates standalone executable test suite Model Driven Development: Taking BDD/ATDD to the Next Level 38
  • 40. 1. Create Test Model Actions • [Rule] tags a method for exploration • Requires defines a exploration precondition – must be true to explore Model Driven Development: Taking BDD/ATDD to the Next Level 39
  • 41. 2. Define Accepting State(s) • Tag condition(s) that terminate an exploration Model Driven Development: Taking BDD/ATDD to the Next Level 40
  • 42. 3. Create Cord File • Set options • Define machines – Limits Actions used in an exploration • Similar to regular expression • Composable • Very powerful! Model Driven Development: Taking BDD/ATDD to the Next Level 41
  • 43. 4. Explore the Model • Select any explorable machine – Explore – Generate test suite – Run on-the-fly test Model Driven Development: Taking BDD/ATDD to the Next Level 42
  • 44. 5. Review Exploration Graph • Shows action/event sequence • Ellipse: model state computed by model program machine • Diamond: observation “event” – get something from SUT (input to the model program) • Right click to inspect any item Model Driven Development: Taking BDD/ATDD to the Next Level 43
  • 45. 6. Define machine(s) to generate test suites • Set options to generate test code • Use any machine or composite machine Model Driven Development: Taking BDD/ATDD to the Next Level 44
  • 46. 7. Explore the Test Suite machine • Each root to leaf path becomes a test suite Model Driven Development: Taking BDD/ATDD to the Next Level 45
  • 47. 8. Generate Test Code • Explores the test machine • Writes out test code using VS testing framework Model Driven Development: Taking BDD/ATDD to the Next Level 46
  • 48. 8. Generate Test Code • Not intended to be maintained • Re-generate any time • Add helper code in the model to extend/customize Model Driven Development: Taking BDD/ATDD to the Next Level 47
  • 49. 9. Run the Test Suite • Uses built-in Visual Studio test runner • Adapters – Start/stop chat clients and chat server – Other SUT setup/cleanup • Model Driven Development: Taking BDD/ATDD to the Next Level Test code sends messages, checks replies 48
  • 50. Model State (test case inputs) 10. Review Test Results • Detailed run log – – – – Event Handler (pass/fail) Requirement Trace VS test runner States Events Requirements • Add any other programmable function Model Driven Development: Taking BDD/ATDD to the Next Level 49
  • 51. Spec Explorer Exploration • Interactive model development • Generate test suites • Machines Cord Declarations Model Program Options Machines define composable Action sequences • Options control exploration and data generation • Actions are explored – Rules define exploration conditions Model Data Structures Rules Actions Events Adapters – Events define expected SUT response • Data structures support exploration • Adapters abstract, control, and observe any interface, any platform Model Driven Development: Taking BDD/ATDD to the Next Level 50
  • 52. MBT Driven Development Requirements, Stories, Scenarios... Explore Ambiguous, missing, contradictory, incorrect, redundant, incomplete Test Model Run Generate Model error, omission Test Suite Inputs (Test Sequences) Control Missing, incorrect Coverage Requirements Model Evaluate Expected Outputs (Test Oracle) SUT Observe Model Driven Development: Taking BDD/ATDD to the Next Level Bug 51
  • 53. More Models, Less Tests MORE MODELS, LESS TESTS
  • 54. Model-based Testing in the Real World • Windows protocol compliance (Web services, RPC, DCOM) • Total effort: 250 person years (mostly junior SDETs) • Saved 50 person years with model-based testing Model-based Testing 1.4 Days/Requirement 42% Less Time Per Requirement Traditional Testing 2.4 Days/Requirement Requirements Study Modeling Test Coding Adapter Coding Model Driven Development: Taking BDD/ATDD to the Next Level Test Execution 53
  • 55. Scope of Test Asset Maintenance Model-based Testing Behavior Driven Development Model How much MBTgenerated test code must be maintained? Test Code None! Adapters Model Driven Development: Taking BDD/ATDD to the Next Level 54
  • 56. More Models, Less Tests • More Better Testing • Icing the BackBlob – Rule-based – Maintain model – Systematic and deep exploration – Regenerate test suites – Generate 1000s of scenarios in seconds – Models grow much more slowly than test code Model Driven Development: Taking BDD/ATDD to the Next Level 55
  • 59. Learn More - MBT • UCCAT (User Conference on Advanced Automated Testing) Presentations http://ucaat.etsi.org/2013/program_conf.html • 2012 Model-based Testing User Survey http://robertvbinder.com/wp-content/uploads/rvb-pdf/arts/MBT-User-Survey.pdf • Open Source MBT tools http://www.robertvbinder.com/open-source-tools-for-model-based-testing/ • Overview of MBT, list of commercial MBT tools http://www.slideshare.net/robertvbinder/model-basedtestingignite • Spec Explorer http://visualstudiogallery.msdn.microsoft.com/271d0904-f178-4ce9-956b-d9bfa4902745 http://msdn.microsoft.com/library/ee620411.aspx • Microsoft Open Protocol Project http://cacm.acm.org/magazines/2011/7/109908-microsofts-protocol-documentation-program/fulltext#! Model Driven Development: Taking BDD/ATDD to the Next Level 58
  • 60. Learn More: BDD, etc. • SpecFlow http://www.specflow.org/ • Using SpecFlow with WatiN http://msdn.microsoft.com/en-us/magazine/gg490346.aspx • SpecFlow Quick Start http://www.youtube.com/watch?v=SVwBz-ZTliw • Writing Cucumber Feature Files https://github.com/cucumber/cucumber/wiki • Using Lava Lamps to indicate Build Status https://wiki.jenkins-ci.org/display/JENKINS/Hudson+Build+Status+Lava+Lamps Model Driven Development: Taking BDD/ATDD to the Next Level 59
  • 61. Content and Image Sources Grand Canyon Time Lapse. Ezra Kamer http://www.youtube.com/watch?v=NF6O6HuNJ0k Contrast (Order and Chaos). M. C. Escher, 1950. National Gallery of Canada http://www.gallery.ca/en/see/collections/artwork.php?mkey=29270 The Blob, Theatre Scene. Fairview Productions, 1958. http://www.youtube.com/watch?v=GODDLgM1gKo http://www.imdb.com/title/tt0051418/ Order and Chaos II. M. C. Escher, 1955. National Gallery of Canada http://www.gallery.ca/en/see/collections/artwork.php?mkey=41980 Defect densities: • Capers Jones, Software Quality: Analysis and Guidelines for Success • Robert E. Park. Software Size Measurement: A Framework for Counting Source Statements. Technical Report CMU/SEI-92-TR-020. Software Engineering Institute, Carnegie Mellon University Spec Explorer. Microsoft http://visualstudiogallery.msdn.microsoft.com/271d0904-f178-4ce9956b-d9bfa4902745 SpecFlow http://www.specflow.org/ The Blob, Final Scene. Fairview Productions, 1958. http://www.youtube.com/watch?v=0GEJgR-bX0w Spec Explorer Chat Model. Microsoft. All other content Copyright © Robert V. Binder, 2014. Model Driven Development: Taking BDD/ATDD to the Next Level 60