SlideShare a Scribd company logo
1 of 46
Download to read offline
9 december 2006
https://time.com/3785942/blue-marble/
A Future where we don’t write tests
Felix Dobslaw
#TestVikings
What do we mean by test
automation?
Often: running (human created) tests automatically
What do we mean by test
automation?
Often: running (human created) tests automatically
Here: running machine created tests (automatically)
program
Specification:
inputs
outputs
requirements
constraints
program
Specification:
tests
verify
Specification
inputs
outputs
requirements
constraints
program
Specification:
tests
verify
Specification
inputs
outputs
requirements
constraints
program
Specification:
tests
verify
Specification
inputs
outputs
requirements
constraints
Boundary Value Analysis/Testing
Why? Find bugs, anomalies, deviation from specification
Boundary Value Analysis/Testing
Why? Find bugs, anomalies, deviation from specification
What are program boundaries?
Boundary Value Analysis/Testing
Why? Find bugs, anomalies, deviation from specification
What are program boundaries?
Take 1: where things are supposed to change (specification focus)
Boundary Value Analysis/Testing
Why? Find bugs, anomalies, deviation from specification
What are program boundaries?
Take 1: where things are supposed to change (specification focus)
Take 2: where things change (functional focus)
Boundary Value Analysis/Testing
Why? Find bugs, anomalies, deviation from specification
What are program boundaries?
Take 1: where things are supposed to change (specification focus)
Take 2: where things change (functional focus)
Tackle Take 1: Explicit specification, check edge cases. Requires manual work.
Boundary Value Analysis/Testing
Why? Find bugs, anomalies, deviation from specification
What are program boundaries?
Take 1: where things are supposed to change (specification focus)
Take 2: where things change (functional focus)
Tackle Take 1: Explicit specification, check edge cases. Requires manual work.
Tackle Take 2: Explore program boundaries, extract actual edge cases. Can be automated.
Boundary Value Analysis/Testing
Why? Find bugs, anomalies, deviation from specification
What are program boundaries?
Take 1: where things are supposed to change (specification focus)
Take 2: where things change (functional focus)
Tackle Take 1: Explicit specification, check edge cases. Requires manual work.
Tackle Take 2: Explore program boundaries, extract actual edge cases. Can be automated.
BVA vs. BVT?
Boundary Value Analysis/Testing
Why? Find bugs, anomalies, deviation from specification
What are program boundaries?
Take 1: where things are supposed to change (specification focus)
Take 2: where things change (functional focus)
Tackle Take 1: Explicit specification, check edge cases. Requires manual work.
Can be used in combination.
Tackle Take 2: Explore program boundaries, extract actual edge cases. Can be automated.
BVA vs. BVT?
Boundary Value Analysis/Testing
Why? Find bugs, anomalies, deviation from specification
What are program boundaries?
Take 1: where things are supposed to change (specification focus)
Take 2: where things change (functional focus)
Tackle Take 1: Explicit specification, check edge cases. Requires manual work.
Can be used in combination.
Tackle Take 2: Explore program boundaries, extract actual edge cases. Can be automated.
BVA vs. BVT?
Pizza order
curl -X POST https://www.FelixPizza.com/order -d "type=hawaii&number=2"
Pizza order
curl -X POST https://www.FelixPizza.com/order -d "type=hawaii&number=2"
... -d "type=hawaii&number=1000"
?x y
?x y
Assert y == yexp
?x y
Assert y == yexp
?x y
x1 x2
y1 y2
? ?
Assert y == yexp
?x y
x1 x2
y1 y2
?
? ?
Assert y == yexp
?x y
x1 x2
y1 y2
?
? ?
Assert y == yexp
Boundary Without Oracle
month
day of month
year
program
Specification:
tests
inputs
outputs
requirements
constraints
T D
program
Specification:
tests
inputs
outputs
requirements
constraints
T
D
program
Specification:
tests
inputs
outputs
requirements
constraints
T
D
boundary
implementation
program
Specification:
tests
inputs
outputs
requirements
constraints
T
D
boundary
implementation
boundary
mining
program
Specification:
tests
inputs
outputs
requirements
constraints
T
D
boundary
implementation
boundary
mining
Specification Pull Request:
PizzeriaId = 42 && -1 < number < 1_000_000
Specification Pull Request Update:
PizzeriaId = 42 && 0 < number < 12
program
Specification:
tests
inputs
outputs
requirements
constraints
T
D
boundary
implementation
boundary
mining
Specification Pull Request:
PizzeriaId = 42 && -1 < number < 1_000_000
Specification Pull Request Update:
PizzeriaId = 42 && 0 < number < 12
program
Specification:
tests
inputs
outputs
requirements
constraints
T
D
boundary
implementation
boundary
mining
Specification Pull Request:
PizzeriaId = 42 && -1 < number < 1_000_000
programprogramteststests
Specification Pull Request Update:
PizzeriaId = 42 && 0 < number < 12
program
Specification:
tests
inputs
outputs
requirements
constraints
T
D
boundary
implementation
boundary
mining
Specification Pull Request:
PizzeriaId = 42 && -1 < number < 1_000_000
programprogramteststests
Specification Pull Request Update:
PizzeriaId = 42 && 0 < number < 12
program
Specification:
tests
inputs
outputs
requirements
constraints
T
D
boundary
implementation
boundary
mining
Specification Pull Request:
PizzeriaId = 42 && -1 < number < 1_000_000
design
support
Ok, so the robots take over testing...
Ok, so the robots take over testing...
https://time.com/3785942/blue-marble/
TestVikings

“We come over land and sea to break your code”
Find us at: https://testvikings.github.io/
Feel free to add me on LinkedIn for updates (Felix Dobslaw)

More Related Content

What's hot

Code Review
Code ReviewCode Review
Code Review
rantav
 
Mahesh_Chaudhar_Softwaare_Engg_Automation
Mahesh_Chaudhar_Softwaare_Engg_AutomationMahesh_Chaudhar_Softwaare_Engg_Automation
Mahesh_Chaudhar_Softwaare_Engg_Automation
Mahesh Chaudhar
 
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Sung Kim
 
Code Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCoCode Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCo
Evgeny Mandrikov
 

What's hot (20)

Code metrics in PHP
Code metrics in PHPCode metrics in PHP
Code metrics in PHP
 
How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis How To Improve Quality With Static Code Analysis
How To Improve Quality With Static Code Analysis
 
Code Review
Code ReviewCode Review
Code Review
 
Mahesh_Chaudhar_Softwaare_Engg_Automation
Mahesh_Chaudhar_Softwaare_Engg_AutomationMahesh_Chaudhar_Softwaare_Engg_Automation
Mahesh_Chaudhar_Softwaare_Engg_Automation
 
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
Soirée du Test Logiciel - Présentation de Kiuwan (Jack ABDO)
 
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
Code Coverage and Test Suite Effectiveness: Empirical Study with Real Bugs in...
 
Personalized Defect Prediction
Personalized Defect PredictionPersonalized Defect Prediction
Personalized Defect Prediction
 
Top 10 static code analysis tool
Top 10 static code analysis toolTop 10 static code analysis tool
Top 10 static code analysis tool
 
Designing Test Cases for the Gilded Rose Kata v2 (2015)
Designing Test Cases for the Gilded Rose Kata v2 (2015)Designing Test Cases for the Gilded Rose Kata v2 (2015)
Designing Test Cases for the Gilded Rose Kata v2 (2015)
 
Dw testing
Dw testingDw testing
Dw testing
 
2010 US Codility Product Demo
2010 US Codility Product Demo2010 US Codility Product Demo
2010 US Codility Product Demo
 
Crowd debugging (FSE 2015)
Crowd debugging (FSE 2015)Crowd debugging (FSE 2015)
Crowd debugging (FSE 2015)
 
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
Automatically Generated Patches as Debugging Aids: A Human Study (FSE 2014)
 
Static Code Analysis
Static Code AnalysisStatic Code Analysis
Static Code Analysis
 
Improving Code Quality Through Effective Review Process
Improving Code Quality Through Effective  Review ProcessImproving Code Quality Through Effective  Review Process
Improving Code Quality Through Effective Review Process
 
Chapter17 of clean code
Chapter17 of clean codeChapter17 of clean code
Chapter17 of clean code
 
Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage" Presentation slides: "How to get 100% code coverage"
Presentation slides: "How to get 100% code coverage"
 
API World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API developmentAPI World 2016 - A five-sided prism polarizing Web API development
API World 2016 - A five-sided prism polarizing Web API development
 
Code Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCoCode Coverage Revised : EclEmma on JaCoCo
Code Coverage Revised : EclEmma on JaCoCo
 
Advanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web AppsAdvanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web Apps
 

Similar to A Future where we don’t write tests

Software Testing - Day One
Software Testing - Day OneSoftware Testing - Day One
Software Testing - Day One
Govardhan Reddy
 
Framework Engineering Revisited
Framework Engineering RevisitedFramework Engineering Revisited
Framework Engineering Revisited
YoungSu Son
 
Velocity NY 2016 - Devops: Who Does What?
Velocity NY 2016 - Devops: Who Does What?Velocity NY 2016 - Devops: Who Does What?
Velocity NY 2016 - Devops: Who Does What?
cornelia davis
 

Similar to A Future where we don’t write tests (20)

Software Testing - Day One
Software Testing - Day OneSoftware Testing - Day One
Software Testing - Day One
 
Tec314
Tec314Tec314
Tec314
 
Using Diversity for Automated Boundary Value Testing
Using Diversity for Automated Boundary Value TestingUsing Diversity for Automated Boundary Value Testing
Using Diversity for Automated Boundary Value Testing
 
Tdd & clean code
Tdd & clean codeTdd & clean code
Tdd & clean code
 
Professional Code Reviews - Bogdan Gusiev
Professional Code Reviews - Bogdan GusievProfessional Code Reviews - Bogdan Gusiev
Professional Code Reviews - Bogdan Gusiev
 
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
 
A journey to_be_a_software_craftsman
A journey to_be_a_software_craftsmanA journey to_be_a_software_craftsman
A journey to_be_a_software_craftsman
 
Building functional Quality Gates with ReportPortal
Building functional Quality Gates with ReportPortalBuilding functional Quality Gates with ReportPortal
Building functional Quality Gates with ReportPortal
 
Quality Control Proposal
Quality Control ProposalQuality Control Proposal
Quality Control Proposal
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects
 
Metrics-Driven Devops: Delivering High Quality Software Faster!
Metrics-Driven Devops: Delivering High Quality Software Faster! Metrics-Driven Devops: Delivering High Quality Software Faster!
Metrics-Driven Devops: Delivering High Quality Software Faster!
 
Kim Carter (BinaryMist)
Kim Carter (BinaryMist)Kim Carter (BinaryMist)
Kim Carter (BinaryMist)
 
Framework Engineering Revisited
Framework Engineering RevisitedFramework Engineering Revisited
Framework Engineering Revisited
 
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical StepsPreparing for Enterprise Continuous Delivery - 5 Critical Steps
Preparing for Enterprise Continuous Delivery - 5 Critical Steps
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
Testing Vue Apps with Cypress.io (STLJS Meetup April 2018)
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
Optimizely Agent: Scaling Resilient Feature Delivery
Optimizely Agent: Scaling Resilient Feature DeliveryOptimizely Agent: Scaling Resilient Feature Delivery
Optimizely Agent: Scaling Resilient Feature Delivery
 
Let's not rewrite it all
Let's not rewrite it allLet's not rewrite it all
Let's not rewrite it all
 
Velocity NY 2016 - Devops: Who Does What?
Velocity NY 2016 - Devops: Who Does What?Velocity NY 2016 - Devops: Who Does What?
Velocity NY 2016 - Devops: Who Does What?
 

More from Felix Dobslaw (7)

Software testing research solving real-world problems
Software testing research solving real-world problemsSoftware testing research solving real-world problems
Software testing research solving real-world problems
 
wasp_2023.pdf
wasp_2023.pdfwasp_2023.pdf
wasp_2023.pdf
 
Sast 2021
Sast 2021Sast 2021
Sast 2021
 
Boundary Value Exploration for Software Analysis
Boundary Value Exploration for Software AnalysisBoundary Value Exploration for Software Analysis
Boundary Value Exploration for Software Analysis
 
Presentation at SCAM 2020
Presentation at SCAM 2020Presentation at SCAM 2020
Presentation at SCAM 2020
 
Estimating Return on Investment for GUI Test Automation Frameworks
Estimating Return on Investment for GUI Test Automation FrameworksEstimating Return on Investment for GUI Test Automation Frameworks
Estimating Return on Investment for GUI Test Automation Frameworks
 
Towards Automated Boundary Value Testing with Program Derivatives and Search
Towards Automated Boundary Value Testing with Program Derivatives and SearchTowards Automated Boundary Value Testing with Program Derivatives and Search
Towards Automated Boundary Value Testing with Program Derivatives and Search
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc
 

Recently uploaded (20)

Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
API Governance and Monetization - The evolution of API governance
API Governance and Monetization -  The evolution of API governanceAPI Governance and Monetization -  The evolution of API governance
API Governance and Monetization - The evolution of API governance
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Simplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptxSimplifying Mobile A11y Presentation.pptx
Simplifying Mobile A11y Presentation.pptx
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Design and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data ScienceDesign and Development of a Provenance Capture Platform for Data Science
Design and Development of a Provenance Capture Platform for Data Science
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
TrustArc Webinar - Unified Trust Center for Privacy, Security, Compliance, an...
 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

A Future where we don’t write tests