SlideShare a Scribd company logo
1 of 46
Download to read offline
20140918 System Verification Associates © 2014 1
How to Release Rock-solid RESTful
APIs and Ice the Testing BackBlob
Unicom Next Generation Testing Conference
Chicago, September 18, 2014
Robert V. Binder
SystemVerification Associates
Enabling High Assurance http://sysverif.com
20140918 System Verification Associates © 2014 2
Overview
• Background
• Advanced API Verification
• Dataflow Testing Model
• Model-based Testing Demo
• The Testing Twofer
• Q&A
20140918 System Verification Associates © 2014 3
Discovery Analysis Design Verification Support
BACKGROUND
20140918 System Verification Associates © 2014 4
You are here …
Browser
HTTP Client
HTTP
Server
App
HTTP Client
App
SOAP Client
HTTP Client
Files
HTTP
Server
Service
SOAP Server
Service
SOAP Server
Files
SOAP API
REST API
20140918 System Verification Associates © 2014 5
Programmable Web’s Growing Roster
20140918 System Verification Associates © 2014 6
Google Trends: REST and SOAP
100
News Headline Occurrence, Monthly
SOAP API
REST API
20140918 System Verification Associates © 2014 7
So many APIs, so little time …
Why is this happening?
20140918 System Verification Associates © 2014 8
Challenges
• Usability
• Narrow developer focus
• Poor documentation
• Revenue prevention
• Assurance Fragmentation
• Functionality
• Security
• Performance
• Low reliability
• Ineffective testing
• Manual UI interaction
• Developer-centric, hand-
coded unit testing
• Wheel spinning
• High QA expense
• Low quality
All-aspect approach needed
20140918 System Verification Associates © 2014 9
Discovery Analysis Design Verification Support
ADVANCED API VERIFICATION
20140918 System Verification Associates © 2014 10
Discovery Sprint
• Survey and catalog
• API documentation
• Open and closed issues
• Social media views
• Codebase
• Usage logs
• Results
• Strategy
• Test environment spec
• Report card
Discovery Analysis Design Verification Support
20140918 System Verification Associates © 2014 11
Analysis Sprint
• Workflow
• Construct usage profile
• Scrutinize documentation
• Abstract data model
• Results
• Doc issues
• Gap analysis
• Revised strategy
Discovery Analysis Design Verification Support
20140918 System Verification Associates © 2014 12
Design Sprint
• Workflow
• Configure virtual lab
• Behavior/data models
• Traffic capture/parsers
• Instantiate adapters
• Results
• Stable test environment
• All-aspect test model
• Revised strategy
Discovery Analysis Design Verification Support
20140918 System Verification Associates © 2014 13
Verification Sprint
• Workflow
• Model checking
• Generate/run test suites
• Collect traffic logs
• Analyze coverage
• Results
• All test artifacts
• Test coverage report
• Final report
• Briefing
Discovery Analysis Design Verification Support
20140918 System Verification Associates © 2014 14
Support
• As needed
• Incremental design review
• Usage monitoring
• CI and regression testing
• Results
• Continuity
• Protect investment
• Continuous improvement
Discovery Analysis Design Verification Support
20140918 System Verification Associates © 2014 15
Discovery Analysis Design Verification Support
DATAFLOW TESTING MODEL
20140918 System Verification Associates © 2014 16
System Under Test
Service
Browser
HTTP Client
HTTP
Server
App
SOAP Client
SOAP Server
HTTP Client
Files
Service
HTTP
Server
SOAP Server
Files
App
HTTP Client
REST API
20140918 System Verification Associates © 2014 17
Test Configuration
Service
App
HTTP
Server
HTTP Client
Service
HTTP
Server
Generated
Test Code
Test Model
REST API
20140918 System Verification Associates © 2014 18
REST = Methods + Resources + Parameters
Service
App HTTP
ServerHTTP Client
HTTP
Server Service
HTTP methods:
GET, PUT, POST, DELETE …
HTTP resources (URI):
http://foo.com/titles
HTTP returned payload, JSON format:
{"firstName": "Bob",
"lastName": "Binder",
"books": [
{ "title": "Testing Object-oriented"},
{ "title": "Application Debugging"}
]
}
Status Code:
200, 201, 400, 404
/?au=binder
20140918 System Verification Associates © 2014 19
REST Dataflow Model – Normal Paths
alpha
Defined
Used
Gone
PUT/201
GET/200
PUT|POST/200
DELETE/200
DELETE/200PUT|POST/200
GET/200
20140918 System Verification Associates © 2014 20
REST Dataflow Model – Method Errors
alpha
Defined
Used
Gone
DELETE|GET/404
DELETE|GET|PUT|POST/404
20140918 System Verification Associates © 2014 21
REST Dataflow Model – Parameter Errors
alpha
Defined
Used
Gone
PUT|POST|GET|DELETE
?garbage/400
PUT|POST|GET|DELETE
?garbage/400
20140918 System Verification Associates © 2014 22
REST Dataflow Model
alpha
Defined
Used
Gone
Test Pattern: Non-Modal Class
20140918 System Verification Associates © 2014 23
Input variation, all sequences
• Nominal values
• Boundary values
• Operator mutants
• Fuzzing, each/all
• Domain model
• Pairwise selection
• Sequence
randomization
Sounds like a lot of work!
20140918 System Verification Associates © 2014 24
Model-based Testing
• Model-based testing tool
• Microsoft Research, 2001
• Test 500 MSFT APIs, 2007-12
• Robust and stable
• Visual Studio “power tool”
• C# code, not cartoons
• Generates standalone
executable test suite
20140918 System Verification Associates © 2014 25
Demo
• Synthetic Client
• Model Program
• Coordination File
• Test Cases
SUT HostTest Host
Test Suite
HTTP
Server
Synthetic
Client
Pass/Fail
Synthetic
Client
Interface
Spex
Rules
Spex
Cord
Test Modeling Test Execution
Service
Under
Test
Explore/
Generate
20140918 System Verification Associates © 2014 26
Synthetic Client
• The test model’s view of the SUT
• Static class wrapper for HTTP client
• Public methods correspond to SUT’s
HTTP methods and resources
• Manage server-side setup/cleanup
• Message serialize/deserialize
• Becomes part of the executable test
code assembly
• Example is a stub!
20140918 System Verification Associates © 2014 27
Model Program
• [Rule]
• Determines when an action
is called
• Selects argument values for
the action call
• Computes expected results
• Updates its model state as
needed
• Simulates environment
and/or system under test
20140918 System Verification Associates © 2014 28
Cord File
• Defines all model
actions
• action = Synthetic Client
public method
• machine
• Any action sequence
• Similar to regex
• May use other machines
• Model any use case,
scenario, slice, etc.
• Many options
20140918 System Verification Associates © 2014 29
What is Exploration?
• Find all action sequences and data
bindings that model program Rules
and a machine allow
• Search loop
• Select a rule for a machine action
• If enabling condition true:
• Update model program state
• Return expected results
• Stop when all selected inputs used or
size limit exceeded
20140918 System Verification Associates © 2014 30
Machine Exploration
• Shows all possible
action sequences for a
machine
• No data bindings
• Note similarity to
normal path dataflow
20140918 System Verification Associates © 2014 31
Model Program Exploration
• Rules + machine
• Rules add data
bindings, expected
results
• Many ways to
choose data values
20140918 System Verification Associates © 2014 32
Test Cases from an Exploration
• Spex chooses exploration steps
that end in accepting state
• Covers all states and steps at
least once
20140918 System Verification Associates © 2014 33
Generate Test Code
• Standalone code – does
not require model
• Run from VS Test
Explorer or command
line
20140918 System Verification Associates © 2014 34
SUT HostTest Host
Test Suite
HTTP
Server
Synthetic
Client
Pass/Fail
Synthetic
Client
Interface
Spex Rules
Spex Cord
Test Modeling Test Execution
Service
Under
Test
Explore/
Generate
20140918 System Verification Associates © 2014 35
Test Strategy
• Each resource path
• Interleave all DUG
variants
• Accepting sequence
• Wrong sequence
• Pairwise combination
• Parameters (path and value)
• Mutants, nominal, edge
• Security
• Interleave Fuzz cases
• Abuse case model
• All other HTTP methods
• Performance
• Virtual users/test drivers
• Randomize combos
20140918 System Verification Associates © 2014 36
Discovery Analysis Design Verification Support
THE TESTING TWOFER
20140918 System Verification Associates © 2014 37
The Testing BackBlob
Total
Number
of Test
Cases
Sprint 1
Available
Test Time
Manual Test
Cases not
executed
Automated Test
Cases not
maintained
Total Developed
Test Cases
Sprint 2 Sprint 3 Sprint 4
20140918 System Verification Associates © 2014 38
The Attack of the Testing BackBlob
Coming soon … to a scrum near you
20140918 System Verification Associates © 2014 39
Test Asset Size
Model
Test Code
Adapters
Model-based Testing Behavior Driven Development
20140918 System Verification Associates © 2014 40
Test Asset Maintenance Load
Model
Test Code
Adapters
Model-based Testing Behavior Driven Development
20140918 System Verification Associates © 2014 41
The Testing Twofer
Rock Solid APIs
• Documentation Scrutiny
• Fact-based Evaluation
• Multi-dimensional testing
• Dataflow coverage
• Everything wrong at least
once
• Fuzzing
• Repeat at scale
Icing the BackBlob
• Develop/maintain model
• Regenerate test suites
20140918 System Verification Associates © 2014 42
Q & A
rvbinder@sysverif.com
#MoreModelsLessTests
http://sysverif.com
20140918 System Verification Associates © 2014 43
Discovery Analysis Design Verification Support
ETC.
Say what you do, do what you say
20140918 System Verification Associates © 2014 44
Robert V. Binder
Robert Binder is a high-assurance
entrepreneur.
He has developed hundreds of application
systems and advanced automated testing
solutions. As test process architect for
Microsoft’s Open Protocol Initiative, he lead the
application of model-based testing to all of
Microsoft’s server-side APIs. He is the author of
the definitive Testing Object-Oriented Systems:
Models, Patterns, and Tools and two other
books. He holds a US patent for model-based
testing of mobile systems.
• MS, EECS, University of Illinois at Chicago
• MBA, University of Chicago
• BA, University of Chicago
20140918 System Verification Associates © 2014 45
System Verification Associates
Enabling High Assurance
• Chicago- based consulting boutique
• Clients are typically software development
organizations for whom system failure is not an option.
• We assist clients in achieving high reliability and
effectiveness in their IT processes and systems.
• Founded in 2009 and led by Robert V. Binder
• http://sysverif.com
• Advanced API Verification Datasheet
• Supported Microsoft’s Open Protocols project with a
team of experts; Robert Binder served process architect,
leading the technical work of over 300 staff located in
Redmond, China, India, and Argentina.
• Assessed and improved software process at several
FDA-regulated product companies, balancing quality
management system compliance and Agile practices.
• Developed model-based testing solutions for high-
frequency trading and aerospace applications.
• Helped software service and product companies
articulate unique high-value messaging for innovative
services.
• Conducted and published the Model-based Testing User
Survey of 2012 and 2014 (forthcoming.)
20140918 System Verification Associates © 2014 46
Does My API Suck?
 Your documentation is incomplete, wrong,
misleading, or just plain incomprehensible.
 Users complain that coding simple use cases
is just too much hassle.
 Users often rely on workarounds—they FTP
files instead of using your API’s getFile.
 Your API is unbalanced or incomplete—you
can turn something on, but not off.
 Your API’s service crashes or responds with
garbage when messages are out of order or
contain invalid data.
 Version mismatches have unpredictable
results.
 No one is really sure what will happen with
edge cases and they don’t want to know.
 Your API allows your service to be hacked
with common attack vectors.
 Your service supports several protocols (REST,
SOAP,…) or formats (JSON, XML,…), but
behavior and data isn’t consistent
 Your API doesn’t provide useful feedback—
good and bad input all get the same
response.
 Your service is so awesome that it draws
traffic spikes, but then your server chokes
and dies.
Buggy APIs are eating the world

More Related Content

What's hot

Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIDavid Hahn
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDDDror Helper
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabFilipa Lacerda
 
Introduction to Design Patterns and Singleton
Introduction to Design Patterns and SingletonIntroduction to Design Patterns and Singleton
Introduction to Design Patterns and SingletonJonathan Simon
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumLiraz Shay
 
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon StudioKnoldus Inc.
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilElias Nogueira
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to GitlabJulien Pivotto
 
Building a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessBuilding a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessLee Barnes
 
Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8a34sharm
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsMatthew David
 
JUnit- A Unit Testing Framework
JUnit- A Unit Testing FrameworkJUnit- A Unit Testing Framework
JUnit- A Unit Testing FrameworkOnkar Deshpande
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Gibran Badrulzaman
 
Robot Framework Dos And Don'ts
Robot Framework Dos And Don'tsRobot Framework Dos And Don'ts
Robot Framework Dos And Don'tsPekka Klärck
 

What's hot (20)

Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
Devops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at GitlabDevops Porto - CI/CD at Gitlab
Devops Porto - CI/CD at Gitlab
 
Introduction to Design Patterns and Singleton
Introduction to Design Patterns and SingletonIntroduction to Design Patterns and Singleton
Introduction to Design Patterns and Singleton
 
The Test Pyramid
The Test PyramidThe Test Pyramid
The Test Pyramid
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and Selenium
 
Les tests exploratoires
Les tests exploratoiresLes tests exploratoires
Les tests exploratoires
 
API Testing With Katalon Studio
API Testing With Katalon StudioAPI Testing With Katalon Studio
API Testing With Katalon Studio
 
Papel do QA na Transformação Ágil
Papel do QA na Transformação ÁgilPapel do QA na Transformação Ágil
Papel do QA na Transformação Ágil
 
Introduction to Gitlab
Introduction to GitlabIntroduction to Gitlab
Introduction to Gitlab
 
CICD with Jenkins
CICD with JenkinsCICD with Jenkins
CICD with Jenkins
 
Building a Test Automation Strategy for Success
Building a Test Automation Strategy for SuccessBuilding a Test Automation Strategy for Success
Building a Test Automation Strategy for Success
 
Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8Role Of Qa And Testing In Agile 1225221397167302 8
Role Of Qa And Testing In Agile 1225221397167302 8
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Unit test
Unit testUnit test
Unit test
 
JUnit- A Unit Testing Framework
JUnit- A Unit Testing FrameworkJUnit- A Unit Testing Framework
JUnit- A Unit Testing Framework
 
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
Understanding the GitOps Workflow and CICD Pipeline - What It Is, Why It Matt...
 
Robot Framework Dos And Don'ts
Robot Framework Dos And Don'tsRobot Framework Dos And Don'ts
Robot Framework Dos And Don'ts
 
JUNit Presentation
JUNit PresentationJUNit Presentation
JUNit Presentation
 

Viewers also liked

Model-Based Testing: Why, What, How
Model-Based Testing: Why, What, HowModel-Based Testing: Why, What, How
Model-Based Testing: Why, What, HowBob Binder
 
Automated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from ModelsAutomated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from ModelsDharmalingam Ganesan
 
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?Bob Binder
 
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 documentationBob Binder
 
MTS: Controllable Test Objects
MTS: Controllable Test ObjectsMTS: Controllable Test Objects
MTS: Controllable Test ObjectsBob Binder
 
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.Bob Binder
 
Threat Modeling: Applied on a Publish-Subscribe Architectural Style
Threat Modeling: Applied on a Publish-Subscribe Architectural StyleThreat Modeling: Applied on a Publish-Subscribe Architectural Style
Threat Modeling: Applied on a Publish-Subscribe Architectural StyleDharmalingam Ganesan
 
API Testing – Keeping a Check on Agile Software Development
API Testing – Keeping a Check on Agile Software DevelopmentAPI Testing – Keeping a Check on Agile Software Development
API Testing – Keeping a Check on Agile Software DevelopmentSoftware Testing Solution
 
Model-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight ExecutiveModel-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight ExecutiveDharmalingam Ganesan
 
Model-based Testing: Today And Tomorrow
Model-based Testing: Today And TomorrowModel-based Testing: Today And Tomorrow
Model-based Testing: Today And TomorrowBob Binder
 
I Love APIs 2015: Getting **IT Done Workshop
I Love APIs 2015: Getting **IT Done WorkshopI Love APIs 2015: Getting **IT Done Workshop
I Love APIs 2015: Getting **IT Done WorkshopApigee | Google Cloud
 
Load-time Hacking using LD_PRELOAD
Load-time Hacking using LD_PRELOADLoad-time Hacking using LD_PRELOAD
Load-time Hacking using LD_PRELOADDharmalingam Ganesan
 
Reverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureReverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureDharmalingam Ganesan
 
Laravel Restful API and AngularJS
Laravel Restful API and AngularJSLaravel Restful API and AngularJS
Laravel Restful API and AngularJSBlake Newman
 
DevOps - Its just Agile done right
DevOps - Its just Agile done rightDevOps - Its just Agile done right
DevOps - Its just Agile done rightTomas Riha
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyDharmalingam Ganesan
 
Linux binary analysis and exploitation
Linux binary analysis and exploitationLinux binary analysis and exploitation
Linux binary analysis and exploitationDharmalingam Ganesan
 

Viewers also liked (20)

Model-Based Testing: Why, What, How
Model-Based Testing: Why, What, HowModel-Based Testing: Why, What, How
Model-Based Testing: Why, What, How
 
Automated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from ModelsAutomated Test Case Generation and Execution from Models
Automated Test Case Generation and Execution from Models
 
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?
 
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
 
MTS: Controllable Test Objects
MTS: Controllable Test ObjectsMTS: Controllable Test Objects
MTS: Controllable Test Objects
 
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.
 
Threat Modeling: Applied on a Publish-Subscribe Architectural Style
Threat Modeling: Applied on a Publish-Subscribe Architectural StyleThreat Modeling: Applied on a Publish-Subscribe Architectural Style
Threat Modeling: Applied on a Publish-Subscribe Architectural Style
 
API Testing – Keeping a Check on Agile Software Development
API Testing – Keeping a Check on Agile Software DevelopmentAPI Testing – Keeping a Check on Agile Software Development
API Testing – Keeping a Check on Agile Software Development
 
JOB ORDER FORM
JOB ORDER FORMJOB ORDER FORM
JOB ORDER FORM
 
Agile Testing - Challenges
Agile Testing - ChallengesAgile Testing - Challenges
Agile Testing - Challenges
 
Model-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight ExecutiveModel-based Testing of a Software Bus - Applied on Core Flight Executive
Model-based Testing of a Software Bus - Applied on Core Flight Executive
 
Model-based Testing: Today And Tomorrow
Model-based Testing: Today And TomorrowModel-based Testing: Today And Tomorrow
Model-based Testing: Today And Tomorrow
 
I Love APIs 2015: Getting **IT Done Workshop
I Love APIs 2015: Getting **IT Done WorkshopI Love APIs 2015: Getting **IT Done Workshop
I Love APIs 2015: Getting **IT Done Workshop
 
Load-time Hacking using LD_PRELOAD
Load-time Hacking using LD_PRELOADLoad-time Hacking using LD_PRELOAD
Load-time Hacking using LD_PRELOAD
 
Reverse Engineering of Software Architecture
Reverse Engineering of Software ArchitectureReverse Engineering of Software Architecture
Reverse Engineering of Software Architecture
 
Carbon Finance
Carbon FinanceCarbon Finance
Carbon Finance
 
Laravel Restful API and AngularJS
Laravel Restful API and AngularJSLaravel Restful API and AngularJS
Laravel Restful API and AngularJS
 
DevOps - Its just Agile done right
DevOps - Its just Agile done rightDevOps - Its just Agile done right
DevOps - Its just Agile done right
 
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case StudyModel-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
Model-based Testing using Microsoft’s Spec Explorer Tool: A Case Study
 
Linux binary analysis and exploitation
Linux binary analysis and exploitationLinux binary analysis and exploitation
Linux binary analysis and exploitation
 

Similar to How to Release Rock-solid RESTful APIs and Ice the Testing BackBlob

End to-end test automation at scale
End to-end test automation at scaleEnd to-end test automation at scale
End to-end test automation at scalemabl
 
Continuous Integration Testing for SAP
Continuous Integration Testing for SAPContinuous Integration Testing for SAP
Continuous Integration Testing for SAPWorksoft
 
Making the Transition from Manual to Automated Testing
Making the Transition from Manual to Automated TestingMaking the Transition from Manual to Automated Testing
Making the Transition from Manual to Automated TestingSauce Labs
 
New ThousandEyes Product Features and Release Highlights: March 2024
New ThousandEyes Product Features and Release Highlights: March 2024New ThousandEyes Product Features and Release Highlights: March 2024
New ThousandEyes Product Features and Release Highlights: March 2024ThousandEyes
 
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...TEST Huddle
 
StarWest2016_T24_ExploratoryAutomation_DawnJardine_Final
StarWest2016_T24_ExploratoryAutomation_DawnJardine_FinalStarWest2016_T24_ExploratoryAutomation_DawnJardine_Final
StarWest2016_T24_ExploratoryAutomation_DawnJardine_FinalDawn Jardine
 
Presentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOpsPresentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOpsKovair
 
Automate SaaS Offering: SAP® Automation In The Cloud
Automate SaaS Offering: SAP® Automation In The CloudAutomate SaaS Offering: SAP® Automation In The Cloud
Automate SaaS Offering: SAP® Automation In The CloudPrecisely
 
Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...Paul Brebner
 
C.V, Narayanan - Open Source Tools for Test Management - EuroSTAR 2010
C.V, Narayanan - Open Source Tools for Test Management - EuroSTAR 2010C.V, Narayanan - Open Source Tools for Test Management - EuroSTAR 2010
C.V, Narayanan - Open Source Tools for Test Management - EuroSTAR 2010TEST Huddle
 
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...AppDynamics
 
Aether T-Innovations company presentation
Aether T-Innovations company presentationAether T-Innovations company presentation
Aether T-Innovations company presentationShriniwas Gadage
 
Listen to Your Machines: DevOps Analytics for Better Feedback Loops
Listen to Your Machines: DevOps Analytics for Better Feedback LoopsListen to Your Machines: DevOps Analytics for Better Feedback Loops
Listen to Your Machines: DevOps Analytics for Better Feedback LoopsSplunk
 
Kovair Integrated Test Management Platform - The Business Values
Kovair Integrated Test Management Platform - The Business ValuesKovair Integrated Test Management Platform - The Business Values
Kovair Integrated Test Management Platform - The Business ValuesKovair
 
Srinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_ResumeSrinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_ResumeSrinivasa rao
 
Small is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case DesignSmall is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case DesignGeorgina Tilby
 
Deep-Dive to Application Insights
Deep-Dive to Application Insights Deep-Dive to Application Insights
Deep-Dive to Application Insights Gunnar Peipman
 
10 Emerging Test Frameworks for Cross Browser Testing
10 Emerging Test Frameworks for Cross Browser Testing10 Emerging Test Frameworks for Cross Browser Testing
10 Emerging Test Frameworks for Cross Browser TestingPerfecto by Perforce
 

Similar to How to Release Rock-solid RESTful APIs and Ice the Testing BackBlob (20)

End to-end test automation at scale
End to-end test automation at scaleEnd to-end test automation at scale
End to-end test automation at scale
 
Continuous Integration Testing for SAP
Continuous Integration Testing for SAPContinuous Integration Testing for SAP
Continuous Integration Testing for SAP
 
Making the Transition from Manual to Automated Testing
Making the Transition from Manual to Automated TestingMaking the Transition from Manual to Automated Testing
Making the Transition from Manual to Automated Testing
 
New ThousandEyes Product Features and Release Highlights: March 2024
New ThousandEyes Product Features and Release Highlights: March 2024New ThousandEyes Product Features and Release Highlights: March 2024
New ThousandEyes Product Features and Release Highlights: March 2024
 
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...
Bob Harnisch & Tim Koomen - Mixing Waterfall, Agile & Outsourcing at Dutch Ra...
 
StarWest2016_T24_ExploratoryAutomation_DawnJardine_Final
StarWest2016_T24_ExploratoryAutomation_DawnJardine_FinalStarWest2016_T24_ExploratoryAutomation_DawnJardine_Final
StarWest2016_T24_ExploratoryAutomation_DawnJardine_Final
 
Presentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOpsPresentation on 3 Pillars of DevOps - Kovair DevOps
Presentation on 3 Pillars of DevOps - Kovair DevOps
 
Automate SaaS Offering: SAP® Automation In The Cloud
Automate SaaS Offering: SAP® Automation In The CloudAutomate SaaS Offering: SAP® Automation In The Cloud
Automate SaaS Offering: SAP® Automation In The Cloud
 
LMS TESTING SERVICES
LMS TESTING SERVICESLMS TESTING SERVICES
LMS TESTING SERVICES
 
Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...Past Experiences and Future Challenges using Automatic Performance Modelling ...
Past Experiences and Future Challenges using Automatic Performance Modelling ...
 
C.V, Narayanan - Open Source Tools for Test Management - EuroSTAR 2010
C.V, Narayanan - Open Source Tools for Test Management - EuroSTAR 2010C.V, Narayanan - Open Source Tools for Test Management - EuroSTAR 2010
C.V, Narayanan - Open Source Tools for Test Management - EuroSTAR 2010
 
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...
AppSphere 15 - How The Container Store Uses AppDynamics in their Development ...
 
Aether T-Innovations company presentation
Aether T-Innovations company presentationAether T-Innovations company presentation
Aether T-Innovations company presentation
 
Listen to Your Machines: DevOps Analytics for Better Feedback Loops
Listen to Your Machines: DevOps Analytics for Better Feedback LoopsListen to Your Machines: DevOps Analytics for Better Feedback Loops
Listen to Your Machines: DevOps Analytics for Better Feedback Loops
 
Kovair Integrated Test Management Platform - The Business Values
Kovair Integrated Test Management Platform - The Business ValuesKovair Integrated Test Management Platform - The Business Values
Kovair Integrated Test Management Platform - The Business Values
 
Srinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_ResumeSrinivas_Selenium_3 Years_Resume
Srinivas_Selenium_3 Years_Resume
 
Small is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case DesignSmall is Beautiful- Fully Automate your Test Case Design
Small is Beautiful- Fully Automate your Test Case Design
 
Deep-Dive to Application Insights
Deep-Dive to Application Insights Deep-Dive to Application Insights
Deep-Dive to Application Insights
 
Key Factors To Ensure Test Automation Framework Success
Key Factors To Ensure Test Automation Framework SuccessKey Factors To Ensure Test Automation Framework Success
Key Factors To Ensure Test Automation Framework Success
 
10 Emerging Test Frameworks for Cross Browser Testing
10 Emerging Test Frameworks for Cross Browser Testing10 Emerging Test Frameworks for Cross Browser Testing
10 Emerging Test Frameworks for Cross Browser Testing
 

More from Bob Binder

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 Bob Binder
 
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 SupportBob Binder
 
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 ApplicationsBob Binder
 
Testing Object-Oriented Systems: Lessons Learned
Testing Object-Oriented Systems: Lessons LearnedTesting Object-Oriented Systems: Lessons Learned
Testing Object-Oriented Systems: Lessons LearnedBob Binder
 
mVerify Investor Overview
mVerify Investor OverviewmVerify Investor Overview
mVerify Investor OverviewBob Binder
 
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.Bob Binder
 
Mobile Reliability Challenges
Mobile Reliability ChallengesMobile Reliability Challenges
Mobile Reliability ChallengesBob Binder
 
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 EnvironmentBob Binder
 
Testability: Factors and Strategy
Testability: Factors and StrategyTestability: Factors and Strategy
Testability: Factors and StrategyBob Binder
 
Test Objects -- They Just Work
Test Objects -- They Just WorkTest Objects -- They Just Work
Test Objects -- They Just WorkBob Binder
 
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 StoryBob Binder
 
ISSRE 2008 Trip Report
ISSRE 2008 Trip ReportISSRE 2008 Trip Report
ISSRE 2008 Trip ReportBob Binder
 
Software Test Patterns: Successes and Challenges
Software Test Patterns: Successes and ChallengesSoftware Test Patterns: Successes and Challenges
Software Test Patterns: Successes and ChallengesBob Binder
 
Assurance for Cloud Computing
Assurance for Cloud ComputingAssurance for Cloud Computing
Assurance for Cloud ComputingBob Binder
 
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 ReportBob Binder
 
Software Testing: Models, Patterns, Tools
Software Testing: Models, Patterns, ToolsSoftware Testing: Models, Patterns, Tools
Software Testing: Models, Patterns, ToolsBob Binder
 
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 SupportBob Binder
 
Testability: Factors and Strategy
Testability: Factors and StrategyTestability: Factors and Strategy
Testability: Factors and StrategyBob Binder
 

More from Bob Binder (18)

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
 
Testability: Factors and Strategy
Testability: Factors and StrategyTestability: Factors and Strategy
Testability: Factors and Strategy
 

Recently uploaded

20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 

Recently uploaded (20)

20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 

How to Release Rock-solid RESTful APIs and Ice the Testing BackBlob

  • 1. 20140918 System Verification Associates © 2014 1 How to Release Rock-solid RESTful APIs and Ice the Testing BackBlob Unicom Next Generation Testing Conference Chicago, September 18, 2014 Robert V. Binder SystemVerification Associates Enabling High Assurance http://sysverif.com
  • 2. 20140918 System Verification Associates © 2014 2 Overview • Background • Advanced API Verification • Dataflow Testing Model • Model-based Testing Demo • The Testing Twofer • Q&A
  • 3. 20140918 System Verification Associates © 2014 3 Discovery Analysis Design Verification Support BACKGROUND
  • 4. 20140918 System Verification Associates © 2014 4 You are here … Browser HTTP Client HTTP Server App HTTP Client App SOAP Client HTTP Client Files HTTP Server Service SOAP Server Service SOAP Server Files SOAP API REST API
  • 5. 20140918 System Verification Associates © 2014 5 Programmable Web’s Growing Roster
  • 6. 20140918 System Verification Associates © 2014 6 Google Trends: REST and SOAP 100 News Headline Occurrence, Monthly SOAP API REST API
  • 7. 20140918 System Verification Associates © 2014 7 So many APIs, so little time … Why is this happening?
  • 8. 20140918 System Verification Associates © 2014 8 Challenges • Usability • Narrow developer focus • Poor documentation • Revenue prevention • Assurance Fragmentation • Functionality • Security • Performance • Low reliability • Ineffective testing • Manual UI interaction • Developer-centric, hand- coded unit testing • Wheel spinning • High QA expense • Low quality All-aspect approach needed
  • 9. 20140918 System Verification Associates © 2014 9 Discovery Analysis Design Verification Support ADVANCED API VERIFICATION
  • 10. 20140918 System Verification Associates © 2014 10 Discovery Sprint • Survey and catalog • API documentation • Open and closed issues • Social media views • Codebase • Usage logs • Results • Strategy • Test environment spec • Report card Discovery Analysis Design Verification Support
  • 11. 20140918 System Verification Associates © 2014 11 Analysis Sprint • Workflow • Construct usage profile • Scrutinize documentation • Abstract data model • Results • Doc issues • Gap analysis • Revised strategy Discovery Analysis Design Verification Support
  • 12. 20140918 System Verification Associates © 2014 12 Design Sprint • Workflow • Configure virtual lab • Behavior/data models • Traffic capture/parsers • Instantiate adapters • Results • Stable test environment • All-aspect test model • Revised strategy Discovery Analysis Design Verification Support
  • 13. 20140918 System Verification Associates © 2014 13 Verification Sprint • Workflow • Model checking • Generate/run test suites • Collect traffic logs • Analyze coverage • Results • All test artifacts • Test coverage report • Final report • Briefing Discovery Analysis Design Verification Support
  • 14. 20140918 System Verification Associates © 2014 14 Support • As needed • Incremental design review • Usage monitoring • CI and regression testing • Results • Continuity • Protect investment • Continuous improvement Discovery Analysis Design Verification Support
  • 15. 20140918 System Verification Associates © 2014 15 Discovery Analysis Design Verification Support DATAFLOW TESTING MODEL
  • 16. 20140918 System Verification Associates © 2014 16 System Under Test Service Browser HTTP Client HTTP Server App SOAP Client SOAP Server HTTP Client Files Service HTTP Server SOAP Server Files App HTTP Client REST API
  • 17. 20140918 System Verification Associates © 2014 17 Test Configuration Service App HTTP Server HTTP Client Service HTTP Server Generated Test Code Test Model REST API
  • 18. 20140918 System Verification Associates © 2014 18 REST = Methods + Resources + Parameters Service App HTTP ServerHTTP Client HTTP Server Service HTTP methods: GET, PUT, POST, DELETE … HTTP resources (URI): http://foo.com/titles HTTP returned payload, JSON format: {"firstName": "Bob", "lastName": "Binder", "books": [ { "title": "Testing Object-oriented"}, { "title": "Application Debugging"} ] } Status Code: 200, 201, 400, 404 /?au=binder
  • 19. 20140918 System Verification Associates © 2014 19 REST Dataflow Model – Normal Paths alpha Defined Used Gone PUT/201 GET/200 PUT|POST/200 DELETE/200 DELETE/200PUT|POST/200 GET/200
  • 20. 20140918 System Verification Associates © 2014 20 REST Dataflow Model – Method Errors alpha Defined Used Gone DELETE|GET/404 DELETE|GET|PUT|POST/404
  • 21. 20140918 System Verification Associates © 2014 21 REST Dataflow Model – Parameter Errors alpha Defined Used Gone PUT|POST|GET|DELETE ?garbage/400 PUT|POST|GET|DELETE ?garbage/400
  • 22. 20140918 System Verification Associates © 2014 22 REST Dataflow Model alpha Defined Used Gone Test Pattern: Non-Modal Class
  • 23. 20140918 System Verification Associates © 2014 23 Input variation, all sequences • Nominal values • Boundary values • Operator mutants • Fuzzing, each/all • Domain model • Pairwise selection • Sequence randomization Sounds like a lot of work!
  • 24. 20140918 System Verification Associates © 2014 24 Model-based Testing • Model-based testing tool • Microsoft Research, 2001 • Test 500 MSFT APIs, 2007-12 • Robust and stable • Visual Studio “power tool” • C# code, not cartoons • Generates standalone executable test suite
  • 25. 20140918 System Verification Associates © 2014 25 Demo • Synthetic Client • Model Program • Coordination File • Test Cases SUT HostTest Host Test Suite HTTP Server Synthetic Client Pass/Fail Synthetic Client Interface Spex Rules Spex Cord Test Modeling Test Execution Service Under Test Explore/ Generate
  • 26. 20140918 System Verification Associates © 2014 26 Synthetic Client • The test model’s view of the SUT • Static class wrapper for HTTP client • Public methods correspond to SUT’s HTTP methods and resources • Manage server-side setup/cleanup • Message serialize/deserialize • Becomes part of the executable test code assembly • Example is a stub!
  • 27. 20140918 System Verification Associates © 2014 27 Model Program • [Rule] • Determines when an action is called • Selects argument values for the action call • Computes expected results • Updates its model state as needed • Simulates environment and/or system under test
  • 28. 20140918 System Verification Associates © 2014 28 Cord File • Defines all model actions • action = Synthetic Client public method • machine • Any action sequence • Similar to regex • May use other machines • Model any use case, scenario, slice, etc. • Many options
  • 29. 20140918 System Verification Associates © 2014 29 What is Exploration? • Find all action sequences and data bindings that model program Rules and a machine allow • Search loop • Select a rule for a machine action • If enabling condition true: • Update model program state • Return expected results • Stop when all selected inputs used or size limit exceeded
  • 30. 20140918 System Verification Associates © 2014 30 Machine Exploration • Shows all possible action sequences for a machine • No data bindings • Note similarity to normal path dataflow
  • 31. 20140918 System Verification Associates © 2014 31 Model Program Exploration • Rules + machine • Rules add data bindings, expected results • Many ways to choose data values
  • 32. 20140918 System Verification Associates © 2014 32 Test Cases from an Exploration • Spex chooses exploration steps that end in accepting state • Covers all states and steps at least once
  • 33. 20140918 System Verification Associates © 2014 33 Generate Test Code • Standalone code – does not require model • Run from VS Test Explorer or command line
  • 34. 20140918 System Verification Associates © 2014 34 SUT HostTest Host Test Suite HTTP Server Synthetic Client Pass/Fail Synthetic Client Interface Spex Rules Spex Cord Test Modeling Test Execution Service Under Test Explore/ Generate
  • 35. 20140918 System Verification Associates © 2014 35 Test Strategy • Each resource path • Interleave all DUG variants • Accepting sequence • Wrong sequence • Pairwise combination • Parameters (path and value) • Mutants, nominal, edge • Security • Interleave Fuzz cases • Abuse case model • All other HTTP methods • Performance • Virtual users/test drivers • Randomize combos
  • 36. 20140918 System Verification Associates © 2014 36 Discovery Analysis Design Verification Support THE TESTING TWOFER
  • 37. 20140918 System Verification Associates © 2014 37 The Testing BackBlob Total Number of Test Cases Sprint 1 Available Test Time Manual Test Cases not executed Automated Test Cases not maintained Total Developed Test Cases Sprint 2 Sprint 3 Sprint 4
  • 38. 20140918 System Verification Associates © 2014 38 The Attack of the Testing BackBlob Coming soon … to a scrum near you
  • 39. 20140918 System Verification Associates © 2014 39 Test Asset Size Model Test Code Adapters Model-based Testing Behavior Driven Development
  • 40. 20140918 System Verification Associates © 2014 40 Test Asset Maintenance Load Model Test Code Adapters Model-based Testing Behavior Driven Development
  • 41. 20140918 System Verification Associates © 2014 41 The Testing Twofer Rock Solid APIs • Documentation Scrutiny • Fact-based Evaluation • Multi-dimensional testing • Dataflow coverage • Everything wrong at least once • Fuzzing • Repeat at scale Icing the BackBlob • Develop/maintain model • Regenerate test suites
  • 42. 20140918 System Verification Associates © 2014 42 Q & A rvbinder@sysverif.com #MoreModelsLessTests http://sysverif.com
  • 43. 20140918 System Verification Associates © 2014 43 Discovery Analysis Design Verification Support ETC. Say what you do, do what you say
  • 44. 20140918 System Verification Associates © 2014 44 Robert V. Binder Robert Binder is a high-assurance entrepreneur. He has developed hundreds of application systems and advanced automated testing solutions. As test process architect for Microsoft’s Open Protocol Initiative, he lead the application of model-based testing to all of Microsoft’s server-side APIs. He is the author of the definitive Testing Object-Oriented Systems: Models, Patterns, and Tools and two other books. He holds a US patent for model-based testing of mobile systems. • MS, EECS, University of Illinois at Chicago • MBA, University of Chicago • BA, University of Chicago
  • 45. 20140918 System Verification Associates © 2014 45 System Verification Associates Enabling High Assurance • Chicago- based consulting boutique • Clients are typically software development organizations for whom system failure is not an option. • We assist clients in achieving high reliability and effectiveness in their IT processes and systems. • Founded in 2009 and led by Robert V. Binder • http://sysverif.com • Advanced API Verification Datasheet • Supported Microsoft’s Open Protocols project with a team of experts; Robert Binder served process architect, leading the technical work of over 300 staff located in Redmond, China, India, and Argentina. • Assessed and improved software process at several FDA-regulated product companies, balancing quality management system compliance and Agile practices. • Developed model-based testing solutions for high- frequency trading and aerospace applications. • Helped software service and product companies articulate unique high-value messaging for innovative services. • Conducted and published the Model-based Testing User Survey of 2012 and 2014 (forthcoming.)
  • 46. 20140918 System Verification Associates © 2014 46 Does My API Suck?  Your documentation is incomplete, wrong, misleading, or just plain incomprehensible.  Users complain that coding simple use cases is just too much hassle.  Users often rely on workarounds—they FTP files instead of using your API’s getFile.  Your API is unbalanced or incomplete—you can turn something on, but not off.  Your API’s service crashes or responds with garbage when messages are out of order or contain invalid data.  Version mismatches have unpredictable results.  No one is really sure what will happen with edge cases and they don’t want to know.  Your API allows your service to be hacked with common attack vectors.  Your service supports several protocols (REST, SOAP,…) or formats (JSON, XML,…), but behavior and data isn’t consistent  Your API doesn’t provide useful feedback— good and bad input all get the same response.  Your service is so awesome that it draws traffic spikes, but then your server chokes and dies. Buggy APIs are eating the world