SlideShare a Scribd company logo
T2
Test Techniques
5/8/2014 9:45:00 AM
Leaping over the Boundaries of
Boundary Value Analysis
Presented by:
Michael Bolton
DevelopSense
Brought to you by:
340 Corporate Way, Suite 300, Orange Park, FL 32073
888-268-8770 ∙ 904-278-0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
Michael Bolton
DevelopSense
Tester, consultant, and trainer Michael Bolton is the co-author (with James Bach) of Rapid
Software Testing, a course that presents a methodology and mindset for testing software
expertly in uncertain conditions and under extreme time pressure. Michael is a leader in the
context-driven software testing movement, with twenty years of experience testing, developing,
managing, and writing about software. Currently, he leads DevelopSense, a Toronto-based
consultancy. Prior to DevelopSense, he was with Quarterdeck Corporation, where he managed
the company’s flagship products and directed project and testing teams-both in-house and
worldwide. Contact Michael at michael@developsense.com.
1
Boundaries Abound, Boundlessly:
“If it ain’t exploratory,
it’s avoidatory”
James Bach
james@satisfice.com
http://www.satisfice.com
This material benefited from review and conversation at the 4th Workshop on Heuristic and Exploratory Techniques.
The following people contributed to that conference: Jon Bach, James Bach, Robert Sabourin, Karen Johnson, Cem Kaner, Henrik
Andersson, Keith Stobie, Scott Barber, David Gilbert, Doug Hoffman, Mike Kelly, Harry Robinson, Ross Collard, Dawn Haynes, Timothy
Coulter, and Michael Bolton
Michael Bolton
mb@developsense.com
http://www.developsense.com
4.3.2 Boundary value analysis (K3)
“Behavior at the edge of each equivalence
partition is more likely to be incorrect, so
boundaries are an area where testing is likely
to yield defects. The maximum and minimum
values of a partition are its boundary values.
When designing test cases, a value on each
boundary is chosen.”
ISTQB Foundation Syllabus
2
Classical Boundary Testing is Based on
Specific Theories of Error
 comparison operators are easy to screw up
 array indices are easy to screw up
− Visual Basic’s OPTION BASE directive made the screw-ups even easier
 buffer sizes are easy to screw up
 buffer overflows happen in the real world
 limit checks are easy to forget
 signed and unsigned data types are easily confused
 error checking and recovery is often poorly thought-out
These are simple, plausible errors.
They also have the virtue of being easy to teach.
A Message From The Programmer
3
A System Test
API
API
API
API
API
GUI
Database
Serializer
Serializer (<256 bytes)
What Have We Discovered?
 Confusion about data types and limits
 Misdeclared boundaries
 Upstream boundaries
 Dynamic boundaries for which limits change
 Latent (previously unnoticed) boundaries
 Boundaries that are revealed by specific actions
 Parafunctional boundaries
 Conditional boundaries
 Interaction boundaries
 Timing boundaries
4
Why Procedures Can’t Suffice:
Input Constraint Testing
Here’s an older version of
The Famous Triangle
Program.
We see interesting
differences in how testers
approach this task.
How Well Do Text Fields Handle Long Inputs?
 What does “long” mean?
 What does “handle well” mean?
 What will users do? What will they expect?
 So what?
5
Max String Sizes Chosen by 39 Testers
(no limit was specified)
1
10
100
1000
10000
100000
1
4
7
10
13
16
19
22
25
28
31
34
37
Cycle 1
Cycle 2
For cycle two we specifically asked students to try long inputs
Interesting Lengths
 16 digits & up: loss of mathematical precision.
 23 digits & up: can’t see all of the input.
 310 digits & up: input not understood as a number.
 1,000 digits & up: exponentially increasing freeze when
navigating to the end of the field by pressing <END>.
 23,829 digits & up: all text in field turns white.
 2,400,000 digits: crash (reproducible).
Only the first two boundaries were known to the programmer!
6
16 digits and up
23 digits and up
7
And more!
 16 digits & up: loss of mathematical precision.
 23 digits & up: can’t see all of the input.
 310 digits & up: input not understood as a number.
 1,000 digits & up: exponentially increasing freeze when
navigating to the end of the field by pressing <END>.
 23,829 digits & up: all text in field turns white.
 2,400,000 digits: crash (reproducible).
Only the first two boundaries were known to the programmer!
What stops testers from trying
longer inputs?
 They’re seduced by entering data up to the visible limits of the field.
 They think they need a spec that tells them the max.
 If they have a spec or script, they stop when the spec or script says stop.
 If they have access to a programmer, they accept the programmer’s model.
 They’re satisfied by the first boundary bug they find (16 digits).
 They let their fingers do the walking instead of using a program like Notepad
or PerlClip to generate input.
 The use a strictly linear lengthening strategy.
 They don’t realize the significance of degradation.
 They assume more thorough testing will be too hard and take too long.
 They think “No one would do that” (hackers do it).
 The literature persistently tells them that one extra byte is enough.
8
The Boundary Risk Hypothesis:
All other things being equal, any given thing is more likely
to be misclassified, mishandled, or misdirected when
“near” a suspected boundary than when “far away.”
This hypothesis arises because we are
aware of specific mechanisms of boundary-related failure,
over and above other mechanisms.
But the actual boundaries in a product
may not be the ones we are told about.
That’s why we must explore.
Toward a Better Definition of
Boundary Testing
 Boundary testing: Any testing to the extent that
it involves the evaluation or discovery of
boundaries or boundary-related behavior.
 Boundary: 1. A dividing point between two
otherwise contiguous regions of behavior; or
2. A principle, mechanism, or event by which
things are classified into different sets that may
be confused with other sets.
9
Overcoming Objections
 Do we always have to do all this stuff?
 Do we have to do this stuff on every build?
 But we have too many tests already!
 With so many boundaries, how will we have
time for everything?
Possible Answers
 use automation in an exploratory way, as well as in a
confirmatory way
 use tools: PerlClip, scripting languages, or Notepad files
 reduce prescriptive documentation
 resist the urge to document every test
 resist the urge to repeat every test on every build
 reduce the load of prescribed tests
 take concise notes, and identify the value of logging
 note or record tests that reveal problems
 record detail to the extent that other people WILL (not
might) need the guidance

More Related Content

Viewers also liked

Security Testing for Testing Professionals
Security Testing for Testing ProfessionalsSecurity Testing for Testing Professionals
Security Testing for Testing Professionals
TechWell
 
Getting Your Message Across: Communications Skills for Testers
Getting Your Message Across: Communications Skills for TestersGetting Your Message Across: Communications Skills for Testers
Getting Your Message Across: Communications Skills for Testers
TechWell
 
What’s Your Leadership IQ?
What’s Your Leadership IQ?What’s Your Leadership IQ?
What’s Your Leadership IQ?
TechWell
 
Top Practices for Successful Mobile Test Automation
Top Practices for Successful Mobile Test AutomationTop Practices for Successful Mobile Test Automation
Top Practices for Successful Mobile Test Automation
TechWell
 
Essential Test Management and Planning
Essential Test Management and PlanningEssential Test Management and Planning
Essential Test Management and Planning
TechWell
 
Testing the Data Warehouse―Big Data, Big Problems
Testing the Data Warehouse―Big Data, Big ProblemsTesting the Data Warehouse―Big Data, Big Problems
Testing the Data Warehouse―Big Data, Big Problems
TechWell
 
Billion Dollar Bugs: When and How to Test a Spreadsheet
Billion Dollar Bugs: When and How to Test a SpreadsheetBillion Dollar Bugs: When and How to Test a Spreadsheet
Billion Dollar Bugs: When and How to Test a Spreadsheet
TechWell
 
Managing Application Performance: A Simplified Universal Approach
Managing Application Performance: A Simplified Universal ApproachManaging Application Performance: A Simplified Universal Approach
Managing Application Performance: A Simplified Universal Approach
TechWell
 
Seven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing TransitionSeven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing Transition
TechWell
 
Ambiguity Reviews: Building Quality Requirements
Ambiguity Reviews: Building Quality RequirementsAmbiguity Reviews: Building Quality Requirements
Ambiguity Reviews: Building Quality Requirements
TechWell
 
Meet Big Agile: Testing on Large-Scale Projects
Meet Big Agile: Testing on Large-Scale ProjectsMeet Big Agile: Testing on Large-Scale Projects
Meet Big Agile: Testing on Large-Scale Projects
TechWell
 

Viewers also liked (11)

Security Testing for Testing Professionals
Security Testing for Testing ProfessionalsSecurity Testing for Testing Professionals
Security Testing for Testing Professionals
 
Getting Your Message Across: Communications Skills for Testers
Getting Your Message Across: Communications Skills for TestersGetting Your Message Across: Communications Skills for Testers
Getting Your Message Across: Communications Skills for Testers
 
What’s Your Leadership IQ?
What’s Your Leadership IQ?What’s Your Leadership IQ?
What’s Your Leadership IQ?
 
Top Practices for Successful Mobile Test Automation
Top Practices for Successful Mobile Test AutomationTop Practices for Successful Mobile Test Automation
Top Practices for Successful Mobile Test Automation
 
Essential Test Management and Planning
Essential Test Management and PlanningEssential Test Management and Planning
Essential Test Management and Planning
 
Testing the Data Warehouse―Big Data, Big Problems
Testing the Data Warehouse―Big Data, Big ProblemsTesting the Data Warehouse―Big Data, Big Problems
Testing the Data Warehouse―Big Data, Big Problems
 
Billion Dollar Bugs: When and How to Test a Spreadsheet
Billion Dollar Bugs: When and How to Test a SpreadsheetBillion Dollar Bugs: When and How to Test a Spreadsheet
Billion Dollar Bugs: When and How to Test a Spreadsheet
 
Managing Application Performance: A Simplified Universal Approach
Managing Application Performance: A Simplified Universal ApproachManaging Application Performance: A Simplified Universal Approach
Managing Application Performance: A Simplified Universal Approach
 
Seven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing TransitionSeven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing Transition
 
Ambiguity Reviews: Building Quality Requirements
Ambiguity Reviews: Building Quality RequirementsAmbiguity Reviews: Building Quality Requirements
Ambiguity Reviews: Building Quality Requirements
 
Meet Big Agile: Testing on Large-Scale Projects
Meet Big Agile: Testing on Large-Scale ProjectsMeet Big Agile: Testing on Large-Scale Projects
Meet Big Agile: Testing on Large-Scale Projects
 

Similar to Leaping over the Boundaries of Boundary Value Analysis

Annotated Bibliography .Guidelines Annotated Bibliograph.docx
Annotated Bibliography  .Guidelines Annotated Bibliograph.docxAnnotated Bibliography  .Guidelines Annotated Bibliograph.docx
Annotated Bibliography .Guidelines Annotated Bibliograph.docx
justine1simpson78276
 
2014 toronto-torbug
2014 toronto-torbug2014 toronto-torbug
2014 toronto-torbug
c.titus.brown
 
Testing 2 - Thinking Like A Tester
Testing 2 - Thinking Like A TesterTesting 2 - Thinking Like A Tester
Testing 2 - Thinking Like A Tester
ArleneAndrews2
 
Testing Software Solutions
Testing Software SolutionsTesting Software Solutions
Testing Software Solutions
gavhays
 
Testing
TestingTesting
H testing and debugging
H testing and debuggingH testing and debugging
H testing and debugging
missstevenson01
 
30 February 2005 QUEUE rants [email protected] DARNEDTestin.docx
30  February 2005  QUEUE rants [email protected] DARNEDTestin.docx30  February 2005  QUEUE rants [email protected] DARNEDTestin.docx
30 February 2005 QUEUE rants [email protected] DARNEDTestin.docx
tamicawaysmith
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testing
Philip Johnson
 
Google, quality and you
Google, quality and youGoogle, quality and you
Google, quality and you
nelinger
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECHManual testing interview question by INFOTECH
Manual testing interview question by INFOTECH
Pravinsinh
 
SE - Lecture 8 - Software Testing State Diagram.pptx
SE - Lecture 8 - Software Testing  State Diagram.pptxSE - Lecture 8 - Software Testing  State Diagram.pptx
SE - Lecture 8 - Software Testing State Diagram.pptx
TangZhiSiang
 
Software testing
Software testingSoftware testing
Software testing
Enamul Haque
 
How to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated TestingHow to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated Testing
TechWell
 
1Sem-MTech-Design For Verification Notes-Unit2-Verification Tools
1Sem-MTech-Design For Verification Notes-Unit2-Verification Tools1Sem-MTech-Design For Verification Notes-Unit2-Verification Tools
1Sem-MTech-Design For Verification Notes-Unit2-Verification Tools
Dr. Shivananda Koteshwar
 
Testing
TestingTesting
Testing
nazeer pasha
 
Testing fundamentals
Testing fundamentalsTesting fundamentals
Testing fundamentals
Abdul Basit
 
Estimating test effort part 2 of 2
Estimating test effort part 2 of 2Estimating test effort part 2 of 2
Estimating test effort part 2 of 2
Ian McDonald
 
testing
testingtesting
testing
Rashmi Deoli
 
Measuring Your Code
Measuring Your CodeMeasuring Your Code
Measuring Your Code
Nate Abele
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
michael.labriola
 

Similar to Leaping over the Boundaries of Boundary Value Analysis (20)

Annotated Bibliography .Guidelines Annotated Bibliograph.docx
Annotated Bibliography  .Guidelines Annotated Bibliograph.docxAnnotated Bibliography  .Guidelines Annotated Bibliograph.docx
Annotated Bibliography .Guidelines Annotated Bibliograph.docx
 
2014 toronto-torbug
2014 toronto-torbug2014 toronto-torbug
2014 toronto-torbug
 
Testing 2 - Thinking Like A Tester
Testing 2 - Thinking Like A TesterTesting 2 - Thinking Like A Tester
Testing 2 - Thinking Like A Tester
 
Testing Software Solutions
Testing Software SolutionsTesting Software Solutions
Testing Software Solutions
 
Testing
TestingTesting
Testing
 
H testing and debugging
H testing and debuggingH testing and debugging
H testing and debugging
 
30 February 2005 QUEUE rants [email protected] DARNEDTestin.docx
30  February 2005  QUEUE rants [email protected] DARNEDTestin.docx30  February 2005  QUEUE rants [email protected] DARNEDTestin.docx
30 February 2005 QUEUE rants [email protected] DARNEDTestin.docx
 
A beginners guide to testing
A beginners guide to testingA beginners guide to testing
A beginners guide to testing
 
Google, quality and you
Google, quality and youGoogle, quality and you
Google, quality and you
 
Manual testing interview question by INFOTECH
Manual testing interview question by INFOTECHManual testing interview question by INFOTECH
Manual testing interview question by INFOTECH
 
SE - Lecture 8 - Software Testing State Diagram.pptx
SE - Lecture 8 - Software Testing  State Diagram.pptxSE - Lecture 8 - Software Testing  State Diagram.pptx
SE - Lecture 8 - Software Testing State Diagram.pptx
 
Software testing
Software testingSoftware testing
Software testing
 
How to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated TestingHow to Actually DO High-volume Automated Testing
How to Actually DO High-volume Automated Testing
 
1Sem-MTech-Design For Verification Notes-Unit2-Verification Tools
1Sem-MTech-Design For Verification Notes-Unit2-Verification Tools1Sem-MTech-Design For Verification Notes-Unit2-Verification Tools
1Sem-MTech-Design For Verification Notes-Unit2-Verification Tools
 
Testing
TestingTesting
Testing
 
Testing fundamentals
Testing fundamentalsTesting fundamentals
Testing fundamentals
 
Estimating test effort part 2 of 2
Estimating test effort part 2 of 2Estimating test effort part 2 of 2
Estimating test effort part 2 of 2
 
testing
testingtesting
testing
 
Measuring Your Code
Measuring Your CodeMeasuring Your Code
Measuring Your Code
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 

More from TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
TechWell
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
TechWell
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
TechWell
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
TechWell
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
TechWell
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
TechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
TechWell
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
TechWell
 
Ma 15
Ma 15Ma 15
Ma 15
TechWell
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
TechWell
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
TechWell
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
TechWell
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
TechWell
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
TechWell
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
TechWell
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
TechWell
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
TechWell
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
TechWell
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
TechWell
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
TechWell
 

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Recently uploaded

Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 

Recently uploaded (20)

Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 

Leaping over the Boundaries of Boundary Value Analysis

  • 1. T2 Test Techniques 5/8/2014 9:45:00 AM Leaping over the Boundaries of Boundary Value Analysis Presented by: Michael Bolton DevelopSense Brought to you by: 340 Corporate Way, Suite 300, Orange Park, FL 32073 888-268-8770 ∙ 904-278-0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
  • 2. Michael Bolton DevelopSense Tester, consultant, and trainer Michael Bolton is the co-author (with James Bach) of Rapid Software Testing, a course that presents a methodology and mindset for testing software expertly in uncertain conditions and under extreme time pressure. Michael is a leader in the context-driven software testing movement, with twenty years of experience testing, developing, managing, and writing about software. Currently, he leads DevelopSense, a Toronto-based consultancy. Prior to DevelopSense, he was with Quarterdeck Corporation, where he managed the company’s flagship products and directed project and testing teams-both in-house and worldwide. Contact Michael at michael@developsense.com.
  • 3. 1 Boundaries Abound, Boundlessly: “If it ain’t exploratory, it’s avoidatory” James Bach james@satisfice.com http://www.satisfice.com This material benefited from review and conversation at the 4th Workshop on Heuristic and Exploratory Techniques. The following people contributed to that conference: Jon Bach, James Bach, Robert Sabourin, Karen Johnson, Cem Kaner, Henrik Andersson, Keith Stobie, Scott Barber, David Gilbert, Doug Hoffman, Mike Kelly, Harry Robinson, Ross Collard, Dawn Haynes, Timothy Coulter, and Michael Bolton Michael Bolton mb@developsense.com http://www.developsense.com 4.3.2 Boundary value analysis (K3) “Behavior at the edge of each equivalence partition is more likely to be incorrect, so boundaries are an area where testing is likely to yield defects. The maximum and minimum values of a partition are its boundary values. When designing test cases, a value on each boundary is chosen.” ISTQB Foundation Syllabus
  • 4. 2 Classical Boundary Testing is Based on Specific Theories of Error  comparison operators are easy to screw up  array indices are easy to screw up − Visual Basic’s OPTION BASE directive made the screw-ups even easier  buffer sizes are easy to screw up  buffer overflows happen in the real world  limit checks are easy to forget  signed and unsigned data types are easily confused  error checking and recovery is often poorly thought-out These are simple, plausible errors. They also have the virtue of being easy to teach. A Message From The Programmer
  • 5. 3 A System Test API API API API API GUI Database Serializer Serializer (<256 bytes) What Have We Discovered?  Confusion about data types and limits  Misdeclared boundaries  Upstream boundaries  Dynamic boundaries for which limits change  Latent (previously unnoticed) boundaries  Boundaries that are revealed by specific actions  Parafunctional boundaries  Conditional boundaries  Interaction boundaries  Timing boundaries
  • 6. 4 Why Procedures Can’t Suffice: Input Constraint Testing Here’s an older version of The Famous Triangle Program. We see interesting differences in how testers approach this task. How Well Do Text Fields Handle Long Inputs?  What does “long” mean?  What does “handle well” mean?  What will users do? What will they expect?  So what?
  • 7. 5 Max String Sizes Chosen by 39 Testers (no limit was specified) 1 10 100 1000 10000 100000 1 4 7 10 13 16 19 22 25 28 31 34 37 Cycle 1 Cycle 2 For cycle two we specifically asked students to try long inputs Interesting Lengths  16 digits & up: loss of mathematical precision.  23 digits & up: can’t see all of the input.  310 digits & up: input not understood as a number.  1,000 digits & up: exponentially increasing freeze when navigating to the end of the field by pressing <END>.  23,829 digits & up: all text in field turns white.  2,400,000 digits: crash (reproducible). Only the first two boundaries were known to the programmer!
  • 8. 6 16 digits and up 23 digits and up
  • 9. 7 And more!  16 digits & up: loss of mathematical precision.  23 digits & up: can’t see all of the input.  310 digits & up: input not understood as a number.  1,000 digits & up: exponentially increasing freeze when navigating to the end of the field by pressing <END>.  23,829 digits & up: all text in field turns white.  2,400,000 digits: crash (reproducible). Only the first two boundaries were known to the programmer! What stops testers from trying longer inputs?  They’re seduced by entering data up to the visible limits of the field.  They think they need a spec that tells them the max.  If they have a spec or script, they stop when the spec or script says stop.  If they have access to a programmer, they accept the programmer’s model.  They’re satisfied by the first boundary bug they find (16 digits).  They let their fingers do the walking instead of using a program like Notepad or PerlClip to generate input.  The use a strictly linear lengthening strategy.  They don’t realize the significance of degradation.  They assume more thorough testing will be too hard and take too long.  They think “No one would do that” (hackers do it).  The literature persistently tells them that one extra byte is enough.
  • 10. 8 The Boundary Risk Hypothesis: All other things being equal, any given thing is more likely to be misclassified, mishandled, or misdirected when “near” a suspected boundary than when “far away.” This hypothesis arises because we are aware of specific mechanisms of boundary-related failure, over and above other mechanisms. But the actual boundaries in a product may not be the ones we are told about. That’s why we must explore. Toward a Better Definition of Boundary Testing  Boundary testing: Any testing to the extent that it involves the evaluation or discovery of boundaries or boundary-related behavior.  Boundary: 1. A dividing point between two otherwise contiguous regions of behavior; or 2. A principle, mechanism, or event by which things are classified into different sets that may be confused with other sets.
  • 11. 9 Overcoming Objections  Do we always have to do all this stuff?  Do we have to do this stuff on every build?  But we have too many tests already!  With so many boundaries, how will we have time for everything? Possible Answers  use automation in an exploratory way, as well as in a confirmatory way  use tools: PerlClip, scripting languages, or Notepad files  reduce prescriptive documentation  resist the urge to document every test  resist the urge to repeat every test on every build  reduce the load of prescribed tests  take concise notes, and identify the value of logging  note or record tests that reveal problems  record detail to the extent that other people WILL (not might) need the guidance