SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
T14
Test Techniques
5/2/2013 1:30:00 PM

White-box Testing: When Quality Really
Matters
Presented by:
Jamie Mitchell
Jamie Mitchell Consulting, Inc.

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
Jamie Mitchell
Jamie Mitchell has more than thirty years of experience developing and testing both hardware and
software. In 1991, Jamie moved from hardware to the dark side - software. He was a pioneer in the test
automation field, working with a variety of vendor, open source, and custom-built tools since Windows 3.0.
Jamie's specialty is increasing the productivity of automation and test teams through innovative ideas and
custom tool extensions. In addition, Jamie provides training, mentoring, and expert technical support in all
aspects of testing and automation. Jamie is the coauthor (with Rex Black) of Advanced Software Testing,
Volume 3: Guide to the ISTQB Advanced Certification as an Advanced Technical Test Analyst.
4/19/2013

Structural Testing
When Quality Really Matters
Jamie L Mitchell

Jamie Mitchell Consulting Inc.

When Software Really Needs to Work

Copyright (c) Jamie Mitchell Consulting Inc.

2

1
4/19/2013

Why Structure-based Testing?
StructureExperience-based techniques are not thorough
enough:
◦ Error-guessing
◦ Exploratory testing
◦ Defect- and taxonomy-based

Black-box testing depends on how good your test
basis model is:
◦ Requirements
◦ Use cases
◦ Functional specifications

How well have you tested?
Is testing less than half of your code sufficient?
Copyright (c) Jamie Mitchell Consulting Inc.

3

WhiteWhite-Box Test Basis
Design documents and models
◦ Architecture
◦ Functional design
◦ Low-level design
Object models
Class interface documents

Code

Copyright (c) Jamie Mitchell Consulting Inc.

4

2
4/19/2013

Today’s Discussion Targets
Control-flow analysis: selecting certain
paths through the software to test, based
on desired coverage
Data-flow analysis: a control-flow
technique that scrutinizes the life-cycle of
data variables

Copyright (c) Jamie Mitchell Consulting Inc.

5

ControlControl-flow Testing
Select certain paths through the
software
◦ Based on desired level of coverage
Based on statements
Based on decisions
Based on loops
Based on paths

Copyright (c) Jamie Mitchell Consulting Inc.

6

3
4/19/2013

Statement Coverage
Execute every line of code
Tools available for measurement
◦ Run tool while executing tests
◦ Evaluate coverage
◦ Create more tests to reach areas missed

Also called instruction or code coverage

Copyright (c) Jamie Mitchell Consulting Inc.

7

Decision Coverage
Statement coverage may miss bugs
◦ One test needed for statement coverage
(a = 5, b = 4)
Passes
z = 0;
if (a > b) then
z = 12;
x = 72 / z

Select inputs to force each decision to execute
both possible ways (T/F)
◦ Now two test cases are needed for coverage
(a = 5, b = 4)
(a = 4, b = 5)

Passes
Finds bug
Copyright (c) Jamie Mitchell Consulting Inc.

8

4
4/19/2013

Condition Coverage
Decisions may be arbitrarily complex
if (a > b) then…
if (A || B) && (C == D) || (!E) && (F) then…

Condition testing requires that each atomic
condition must be evaluated both true and false
Note that condition coverage – by itself – may
not be as strong as decision coverage
if (a AND b) then
(a = F, b = T
(a = T, b = F

F)
F)
Copyright (c) Jamie Mitchell Consulting Inc.

9

Decision / Condition Coverage
A combination of Condition and Decision
1. Each atomic condition must be evaluated
both ways AND
2. Decision coverage must be satisfied
if (a AND b) then
(a = F, b = T
(a = T, b = F
(a = T, b = T

F)
F)
T)

Is that enough coverage?
Copyright (c) Jamie Mitchell Consulting Inc.

10

5
4/19/2013

Modified Condition / Decision
Usually called MC/DC
◦ For each condition in the predicate, there is at
least one test where the outcome is TRUE only
because of that condition being TRUE
◦ For each condition in the predicate, there is at
least one test where the outcome is FALSE only
because of that condition being FALSE

Usually results in N+1 test cases where N is
number of conditions in predicate
Required by some safety standards to ensure
that enough testing has been done
Ex: FAA DO/178B Level A (catastrophic) software
Copyright (c) Jamie Mitchell Consulting Inc.

11

MC/DC Coverage (2)
if ((a || b) && c) then …
Decision/Condition can be achieved with
(a = T, b = T, c = T)
(a = F, b = F, c = F)

T
F

Note that (b) never independently affects
the outcome of the condition

Copyright (c) Jamie Mitchell Consulting Inc.

12

6
4/19/2013

MC/DC Coverage (3)
if ((a || b) && c) then …
Following test set will achieve MC/DC coverage
1.
2.
3.
4.

(a = T,
(a = F,
(a = F,
(a = T,

b = F,
b = F,
b = T,
b = F,

c = T)
c = T)
c = T)
c = F)

T
F
T
F

Copyright (c) Jamie Mitchell Consulting Inc.

13

Coverage Based on Loops
Loops make testing …interesting…
The number of possible paths may
approach infinite depending on how many
loops are executed
Basic coverage criteria
◦ Test when no loops are made
◦ Test when a single loop is made
◦ Test when n loops are made (where n is either
the expected max or a large number)
Copyright (c) Jamie Mitchell Consulting Inc.

14

7
4/19/2013

Loops (2)
This loop can calculate a factorial (n!)
for (i = 1; i <= n; i++)
f *= i;
Use (n = 0) for zero loops
Use (n = 1) for one time through
Determining the max requires thought
◦ In this case, (f) gets very large
◦ Use (n = 12); 13 would cause an overflow
Copyright (c) Jamie Mitchell Consulting Inc.

15

Nested Loops
Nested loops are really hard to test
Boris Beizer* had some advice
1.
2.
3.

4.
5.

Start at the innermost loop, setting all outer loops to
their minimum iteration setting
Test boundaries for innermost loop while keeping outer
loops at their minimum
If you have done outermost loop goto 5. Else move
one loop outward and test as in step 2 with all inner
loops set to their typical values
Continue outward until all loops done
Test the boundaries for all loops simultaneously

* Software Testing Techniques, 2nd Ed. by Boris Beizer

Copyright (c) Jamie Mitchell Consulting Inc.

16

8
4/19/2013

Path Testing
Full path testing in a non-trivial system is
impossible
◦ The number of paths approaches infinite
◦ This is due to loops as seen previously

We can identify independent, non-looping
paths which cover all the edges and nodes of
a control-flow graph
◦ These are called basis paths
◦ Testing the basis paths can guarantee decision
(and statement) coverage
◦ McCabe cyclomatic complexity uses this method
◦ Tools are available for calculating this value
Copyright (c) Jamie Mitchell Consulting Inc.

17

Cyclomatic Complexity Example
Complexity = 3
Tests needed
◦ 1-2-6-7-8
◦ 1-3-4-7-8
◦ 1-3-5-8

Example from “A Complexity Measure” by Thomas
McCabe, IEEE Transactions on SW Engineering, Vol.
SE-2, No 4, December 1976

Copyright (c) Jamie Mitchell Consulting Inc.

18

9
4/19/2013

DataData-flow Analysis (1)
Programs create, set, read, evaluate and destroy
data
The life cycle of data can be analyzed to find
defects that control-flow techniques miss
Some defect examples
◦
◦
◦
◦

Incorrect assignment of a value
Incorrect input statement
Failure to define a variable before use
Incorrect path taken due to incorrect value in a
control predicate
◦ Use of a variable after it is destroyed or out of scope
◦ Redefinition of a variable before it can be used.

Look for consecutive touches to each variable
Copyright (c) Jamie Mitchell Consulting Inc.

19

DataData-flow Analysis (2)
Dependent on the language used
We look for anomalies in data life-cycle
◦ Not all anomalies are defects
◦ While this is nominally a static technique, it
will not find all data defects (often data is
manipulated or assigned dynamically)

Sometimes called DUK testing
◦D
◦U
◦K

Define
Use
Kill
Copyright (c) Jamie Mitchell Consulting Inc.

20

10
4/19/2013

DataData-flow Testing Combinations (1)
Anomaly Explanation
1.

~d

first define

Allowed

2.

du

define-use

Allowed, normal case

3.

dk

define-kill

Potential bug; data was never used

4.

~u

first use

Potential bug; data was used without definition.
It may be a global variable, set outside the
routine

5.

ud

use-define

Allowed: data used and then re-defined

6.

uk

use-kill

Allowed

7.

~k

first kill

Potential bug; data is killed before definition

8.

ku

kill-use

Serious defect; data is used after being killed
Copyright (c) Jamie Mitchell Consulting Inc.

21

DataData-flow Testing Combinations (2)
Anomaly Explanation
9.

kd

kill-define

Usually allowed. Data is killed and then redefined. Some theorists believe this should be
disallowed

10. dd

define-define

Potential bug; double definition

11. uu

use-use

Allowed; normal case. Some do not bother
testing this pair since no redefinition occurred

12. kk

kill-kill

Potential bug

13. d~

define last

Potential bug; dead variable? May be a global
variable which is used in other context

14. u~

use last

Allowed. Variable was used in this routine but
not killed off

15. k~

kill last

Allowed; normal case

Copyright (c) Jamie Mitchell Consulting Inc.

22

11
4/19/2013

Function to Test
1.

public static double calculateBill (int Usage) {

2.

double Bill = 0;

3.

if(Usage > 0) {

4.

Bill = 40;

5.
6.

if(Usage > 100) {

7.

if(Usage <= 200) {

8.

Bill = Bill + (Usage - 100) * 0.5;

9.

}

10.

else {

11.

Bill = Bill + 50 + (Usage - 200) * 0.1;

12.

if(Bill >= 100) {

13.

Bill = Bill * 0.9;

14.

}

15.

}

16.

}

17.

}

18.
19.

return Bill;
}

Copyright (c) Jamie Mitchell Consulting Inc.

23

Variable DUK Patterns
Usage data-flow
information

Bill data-flow
information

Pattern

Explanation

1.

~d (1)

normal case

1. ~d (2)

Pattern

normal case

Explanation

2.

du (1-3)

normal case

2. dd (2-4)

suspicious

3.

uu (3-6)(6-7)
(7-8)(7-11)

normal case

3. du (2-18)(4-8)
(4-11)(11-12)

normal case

4.

uk (6-19)
(8-19)(11-19)

normal case

4. ud (8-8)(11-11)(13-13)

acceptable

5. uu (12-13)(12-18)

normal case

5.

k~ (19)

normal case

6. uk (18-19)

normal case

7. k~ (19)

normal case

Copyright (c) Jamie Mitchell Consulting Inc.

24

12
4/19/2013

Summary
Many testers simply use black-box and
experience-based techniques
Some systems require far deeper testing
This presentation barely touches the
many advanced techniques that can be
used in testing
Learning these techniques can give you an
advantage in your career
Copyright (c) Jamie Mitchell Consulting Inc.

25

13

Contenu connexe

Tendances

Chapter 1 - Fundamentals of Testing
Chapter 1 - Fundamentals of TestingChapter 1 - Fundamentals of Testing
Chapter 1 - Fundamentals of TestingNeeraj Kumar Singh
 
Fundamentals of Testing
Fundamentals of TestingFundamentals of Testing
Fundamentals of TestingCode95
 
ISTQB Test Automation Engineer Answers to Sample Question Paper
ISTQB Test Automation Engineer Answers to Sample Question PaperISTQB Test Automation Engineer Answers to Sample Question Paper
ISTQB Test Automation Engineer Answers to Sample Question PaperNeeraj Kumar Singh
 
Role+Of+Testing+In+Sdlc
Role+Of+Testing+In+SdlcRole+Of+Testing+In+Sdlc
Role+Of+Testing+In+Sdlcmahendra singh
 
Chapter 6 - Test Tools and Automation
Chapter 6 - Test Tools and AutomationChapter 6 - Test Tools and Automation
Chapter 6 - Test Tools and AutomationNeeraj Kumar Singh
 
Ppt 2 testing throughout the software life cycle
Ppt 2 testing throughout the software life cyclePpt 2 testing throughout the software life cycle
Ppt 2 testing throughout the software life cyclesanti suryani
 
Fundamental test process
Fundamental test processFundamental test process
Fundamental test processIrvan Febry
 
Fl 2018 sample questions exam a v1.3 answers
Fl 2018 sample questions exam a v1.3 answersFl 2018 sample questions exam a v1.3 answers
Fl 2018 sample questions exam a v1.3 answersNeeraj Kumar Singh
 
St & internationalization
St & internationalizationSt & internationalization
St & internationalizationSachin MK
 
Chapter 3 - Agile Testing Methods, Techniques and Tools
Chapter 3 - Agile Testing Methods, Techniques and ToolsChapter 3 - Agile Testing Methods, Techniques and Tools
Chapter 3 - Agile Testing Methods, Techniques and ToolsNeeraj Kumar Singh
 
Basic interview questions for manual testing
Basic interview questions for manual testingBasic interview questions for manual testing
Basic interview questions for manual testingJYOTI RANJAN PAL
 
ISTQB Advanced Technical Test Analyst Training
ISTQB Advanced Technical Test Analyst TrainingISTQB Advanced Technical Test Analyst Training
ISTQB Advanced Technical Test Analyst TrainingHiraQureshi22
 
Manual testing interview questions and answers
Manual testing interview questions and answersManual testing interview questions and answers
Manual testing interview questions and answersRajnish Sharma
 
FUNDAMENTAL TEST PROCESS
FUNDAMENTAL TEST PROCESSFUNDAMENTAL TEST PROCESS
FUNDAMENTAL TEST PROCESSMeychiaGaiza
 

Tendances (20)

Chapter 1 - Fundamentals of Testing
Chapter 1 - Fundamentals of TestingChapter 1 - Fundamentals of Testing
Chapter 1 - Fundamentals of Testing
 
Fundamentals of Testing
Fundamentals of TestingFundamentals of Testing
Fundamentals of Testing
 
Chapter 2 - Test Management
Chapter 2 - Test ManagementChapter 2 - Test Management
Chapter 2 - Test Management
 
Chapter 5 - Reviews
Chapter 5 - ReviewsChapter 5 - Reviews
Chapter 5 - Reviews
 
ISTQB Test Automation Engineer Answers to Sample Question Paper
ISTQB Test Automation Engineer Answers to Sample Question PaperISTQB Test Automation Engineer Answers to Sample Question Paper
ISTQB Test Automation Engineer Answers to Sample Question Paper
 
Pmt 05
Pmt 05Pmt 05
Pmt 05
 
Role+Of+Testing+In+Sdlc
Role+Of+Testing+In+SdlcRole+Of+Testing+In+Sdlc
Role+Of+Testing+In+Sdlc
 
Chapter 6 - Test Tools and Automation
Chapter 6 - Test Tools and AutomationChapter 6 - Test Tools and Automation
Chapter 6 - Test Tools and Automation
 
Ppt 2 testing throughout the software life cycle
Ppt 2 testing throughout the software life cyclePpt 2 testing throughout the software life cycle
Ppt 2 testing throughout the software life cycle
 
Fundamental test process
Fundamental test processFundamental test process
Fundamental test process
 
Fundamental test process
Fundamental test processFundamental test process
Fundamental test process
 
Software testing
Software testingSoftware testing
Software testing
 
Navin Latest
Navin LatestNavin Latest
Navin Latest
 
Fl 2018 sample questions exam a v1.3 answers
Fl 2018 sample questions exam a v1.3 answersFl 2018 sample questions exam a v1.3 answers
Fl 2018 sample questions exam a v1.3 answers
 
St & internationalization
St & internationalizationSt & internationalization
St & internationalization
 
Chapter 3 - Agile Testing Methods, Techniques and Tools
Chapter 3 - Agile Testing Methods, Techniques and ToolsChapter 3 - Agile Testing Methods, Techniques and Tools
Chapter 3 - Agile Testing Methods, Techniques and Tools
 
Basic interview questions for manual testing
Basic interview questions for manual testingBasic interview questions for manual testing
Basic interview questions for manual testing
 
ISTQB Advanced Technical Test Analyst Training
ISTQB Advanced Technical Test Analyst TrainingISTQB Advanced Technical Test Analyst Training
ISTQB Advanced Technical Test Analyst Training
 
Manual testing interview questions and answers
Manual testing interview questions and answersManual testing interview questions and answers
Manual testing interview questions and answers
 
FUNDAMENTAL TEST PROCESS
FUNDAMENTAL TEST PROCESSFUNDAMENTAL TEST PROCESS
FUNDAMENTAL TEST PROCESS
 

En vedette

Transitioning to Kanban: From Theory to Practice
Transitioning to Kanban: From Theory to PracticeTransitioning to Kanban: From Theory to Practice
Transitioning to Kanban: From Theory to PracticeTechWell
 
How to Break Software: Robustness Edition
How to Break Software: Robustness EditionHow to Break Software: Robustness Edition
How to Break Software: Robustness EditionTechWell
 
There’s No Room for Emotions in Testing—Not!
There’s No Room for Emotions in Testing—Not!There’s No Room for Emotions in Testing—Not!
There’s No Room for Emotions in Testing—Not!TechWell
 
Requirements Engineering: A Practicum
Requirements Engineering: A PracticumRequirements Engineering: A Practicum
Requirements Engineering: A PracticumTechWell
 
Testing Metrics: Project, Product, Process
Testing Metrics: Project, Product, ProcessTesting Metrics: Project, Product, Process
Testing Metrics: Project, Product, ProcessTechWell
 
Lean Development Practices for Enterprise Agile
Lean Development Practices for Enterprise AgileLean Development Practices for Enterprise Agile
Lean Development Practices for Enterprise AgileTechWell
 
Mobile Testing Methodologies: Trends, Successes, and Pitfalls
Mobile Testing Methodologies: Trends, Successes, and PitfallsMobile Testing Methodologies: Trends, Successes, and Pitfalls
Mobile Testing Methodologies: Trends, Successes, and PitfallsTechWell
 
Design Patterns Explained: From Analysis through Implementation
Design Patterns Explained: From Analysis through ImplementationDesign Patterns Explained: From Analysis through Implementation
Design Patterns Explained: From Analysis through ImplementationTechWell
 
Mobile Testing Tools 101
Mobile Testing Tools 101Mobile Testing Tools 101
Mobile Testing Tools 101TechWell
 
12 cbsce bw2
12 cbsce bw212 cbsce bw2
12 cbsce bw2TechWell
 
Security Testing for Testing Professionals
Security Testing for Testing ProfessionalsSecurity Testing for Testing Professionals
Security Testing for Testing ProfessionalsTechWell
 
Tuning and Improving Your Agility
Tuning and Improving Your AgilityTuning and Improving Your Agility
Tuning and Improving Your AgilityTechWell
 
T23 HTML5 Security Testing at Spotify
T23 HTML5 Security Testing at SpotifyT23 HTML5 Security Testing at Spotify
T23 HTML5 Security Testing at SpotifyTechWell
 
Continuous Delivery: Rapid and Reliable Releases with DevOps Practices
Continuous Delivery: Rapid and Reliable Releases with DevOps PracticesContinuous Delivery: Rapid and Reliable Releases with DevOps Practices
Continuous Delivery: Rapid and Reliable Releases with DevOps PracticesTechWell
 
Critical Thinking for Software Testers
Critical Thinking for Software TestersCritical Thinking for Software Testers
Critical Thinking for Software TestersTechWell
 

En vedette (15)

Transitioning to Kanban: From Theory to Practice
Transitioning to Kanban: From Theory to PracticeTransitioning to Kanban: From Theory to Practice
Transitioning to Kanban: From Theory to Practice
 
How to Break Software: Robustness Edition
How to Break Software: Robustness EditionHow to Break Software: Robustness Edition
How to Break Software: Robustness Edition
 
There’s No Room for Emotions in Testing—Not!
There’s No Room for Emotions in Testing—Not!There’s No Room for Emotions in Testing—Not!
There’s No Room for Emotions in Testing—Not!
 
Requirements Engineering: A Practicum
Requirements Engineering: A PracticumRequirements Engineering: A Practicum
Requirements Engineering: A Practicum
 
Testing Metrics: Project, Product, Process
Testing Metrics: Project, Product, ProcessTesting Metrics: Project, Product, Process
Testing Metrics: Project, Product, Process
 
Lean Development Practices for Enterprise Agile
Lean Development Practices for Enterprise AgileLean Development Practices for Enterprise Agile
Lean Development Practices for Enterprise Agile
 
Mobile Testing Methodologies: Trends, Successes, and Pitfalls
Mobile Testing Methodologies: Trends, Successes, and PitfallsMobile Testing Methodologies: Trends, Successes, and Pitfalls
Mobile Testing Methodologies: Trends, Successes, and Pitfalls
 
Design Patterns Explained: From Analysis through Implementation
Design Patterns Explained: From Analysis through ImplementationDesign Patterns Explained: From Analysis through Implementation
Design Patterns Explained: From Analysis through Implementation
 
Mobile Testing Tools 101
Mobile Testing Tools 101Mobile Testing Tools 101
Mobile Testing Tools 101
 
12 cbsce bw2
12 cbsce bw212 cbsce bw2
12 cbsce bw2
 
Security Testing for Testing Professionals
Security Testing for Testing ProfessionalsSecurity Testing for Testing Professionals
Security Testing for Testing Professionals
 
Tuning and Improving Your Agility
Tuning and Improving Your AgilityTuning and Improving Your Agility
Tuning and Improving Your Agility
 
T23 HTML5 Security Testing at Spotify
T23 HTML5 Security Testing at SpotifyT23 HTML5 Security Testing at Spotify
T23 HTML5 Security Testing at Spotify
 
Continuous Delivery: Rapid and Reliable Releases with DevOps Practices
Continuous Delivery: Rapid and Reliable Releases with DevOps PracticesContinuous Delivery: Rapid and Reliable Releases with DevOps Practices
Continuous Delivery: Rapid and Reliable Releases with DevOps Practices
 
Critical Thinking for Software Testers
Critical Thinking for Software TestersCritical Thinking for Software Testers
Critical Thinking for Software Testers
 

Similaire à White-box Testing: When Quality Really Matters

Structural Testing: When Quality Really Matters
Structural Testing: When Quality Really MattersStructural Testing: When Quality Really Matters
Structural Testing: When Quality Really MattersTechWell
 
Chapter 2 - White Box Test Techniques
Chapter 2 - White Box Test TechniquesChapter 2 - White Box Test Techniques
Chapter 2 - White Box Test TechniquesNeeraj Kumar Singh
 
Software Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life CycleSoftware Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life CycleDerek Callaway
 
Cause-Effect Graphing: Rigorous Test Case Design
Cause-Effect Graphing: Rigorous Test Case DesignCause-Effect Graphing: Rigorous Test Case Design
Cause-Effect Graphing: Rigorous Test Case DesignTechWell
 
Code coverage in theory and in practice form the do178 b perspective
Code coverage in theory and in practice form the do178 b perspectiveCode coverage in theory and in practice form the do178 b perspective
Code coverage in theory and in practice form the do178 b perspectiveEngineering Software Lab
 
Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective   Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective Engineering Software Lab
 
Istqb question-paper-dump-8
Istqb question-paper-dump-8Istqb question-paper-dump-8
Istqb question-paper-dump-8TestingGeeks
 
Istqb question-paper-dump-3
Istqb question-paper-dump-3Istqb question-paper-dump-3
Istqb question-paper-dump-3TestingGeeks
 
Safety Enhancement for Deep Reinforcement Learning in Autonomous Separation A...
Safety Enhancement for Deep Reinforcement Learning in Autonomous Separation A...Safety Enhancement for Deep Reinforcement Learning in Autonomous Separation A...
Safety Enhancement for Deep Reinforcement Learning in Autonomous Separation A...Wei Guo
 
Istqb exam sample_paper_1
Istqb exam sample_paper_1Istqb exam sample_paper_1
Istqb exam sample_paper_1TestingGeeks
 
Sample Paper 1233140926359988 2
Sample Paper 1233140926359988 2Sample Paper 1233140926359988 2
Sample Paper 1233140926359988 2mnassef
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniquesersanbilik
 
SE-CyclomaticComplexityand Testing.ppt
SE-CyclomaticComplexityand Testing.pptSE-CyclomaticComplexityand Testing.ppt
SE-CyclomaticComplexityand Testing.pptvishal choudhary
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareAdaCore
 
Tlc 1223618496327769-9
Tlc 1223618496327769-9Tlc 1223618496327769-9
Tlc 1223618496327769-9krunal yagnik
 
TESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTTESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTsuhasreddy1
 
Some testing - Everything you should know about testing to go with @pedro_g_s...
Some testing - Everything you should know about testing to go with @pedro_g_s...Some testing - Everything you should know about testing to go with @pedro_g_s...
Some testing - Everything you should know about testing to go with @pedro_g_s...Sergio Arroyo
 
Test design techniques: Structured and Experienced-based techniques
Test design techniques: Structured and Experienced-based techniquesTest design techniques: Structured and Experienced-based techniques
Test design techniques: Structured and Experienced-based techniquesKhuong Nguyen
 
Question ISTQB foundation 2
Question ISTQB  foundation 2Question ISTQB  foundation 2
Question ISTQB foundation 2Jenny Nguyen
 

Similaire à White-box Testing: When Quality Really Matters (20)

Structural Testing: When Quality Really Matters
Structural Testing: When Quality Really MattersStructural Testing: When Quality Really Matters
Structural Testing: When Quality Really Matters
 
Chapter 2 - White Box Test Techniques
Chapter 2 - White Box Test TechniquesChapter 2 - White Box Test Techniques
Chapter 2 - White Box Test Techniques
 
Software Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life CycleSoftware Testing: Test Design and the Project Life Cycle
Software Testing: Test Design and the Project Life Cycle
 
Cause-Effect Graphing: Rigorous Test Case Design
Cause-Effect Graphing: Rigorous Test Case DesignCause-Effect Graphing: Rigorous Test Case Design
Cause-Effect Graphing: Rigorous Test Case Design
 
Code coverage in theory and in practice form the do178 b perspective
Code coverage in theory and in practice form the do178 b perspectiveCode coverage in theory and in practice form the do178 b perspective
Code coverage in theory and in practice form the do178 b perspective
 
Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective   Code Coverage in Theory and in practice form the DO178B perspective
Code Coverage in Theory and in practice form the DO178B perspective
 
Istqb question-paper-dump-8
Istqb question-paper-dump-8Istqb question-paper-dump-8
Istqb question-paper-dump-8
 
Istqb question-paper-dump-3
Istqb question-paper-dump-3Istqb question-paper-dump-3
Istqb question-paper-dump-3
 
Safety Enhancement for Deep Reinforcement Learning in Autonomous Separation A...
Safety Enhancement for Deep Reinforcement Learning in Autonomous Separation A...Safety Enhancement for Deep Reinforcement Learning in Autonomous Separation A...
Safety Enhancement for Deep Reinforcement Learning in Autonomous Separation A...
 
Istqb exam sample_paper_1
Istqb exam sample_paper_1Istqb exam sample_paper_1
Istqb exam sample_paper_1
 
Sample Paper 1233140926359988 2
Sample Paper 1233140926359988 2Sample Paper 1233140926359988 2
Sample Paper 1233140926359988 2
 
Software Testing Tecniques
Software Testing TecniquesSoftware Testing Tecniques
Software Testing Tecniques
 
SE-CyclomaticComplexityand Testing.ppt
SE-CyclomaticComplexityand Testing.pptSE-CyclomaticComplexityand Testing.ppt
SE-CyclomaticComplexityand Testing.ppt
 
Application of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle softwareApplication of theorem proving for safety-critical vehicle software
Application of theorem proving for safety-critical vehicle software
 
Istqb Sample Questions
Istqb Sample QuestionsIstqb Sample Questions
Istqb Sample Questions
 
Tlc 1223618496327769-9
Tlc 1223618496327769-9Tlc 1223618496327769-9
Tlc 1223618496327769-9
 
TESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPTTESTING LIFE CYCLE PPT
TESTING LIFE CYCLE PPT
 
Some testing - Everything you should know about testing to go with @pedro_g_s...
Some testing - Everything you should know about testing to go with @pedro_g_s...Some testing - Everything you should know about testing to go with @pedro_g_s...
Some testing - Everything you should know about testing to go with @pedro_g_s...
 
Test design techniques: Structured and Experienced-based techniques
Test design techniques: Structured and Experienced-based techniquesTest design techniques: Structured and Experienced-based techniques
Test design techniques: Structured and Experienced-based techniques
 
Question ISTQB foundation 2
Question ISTQB  foundation 2Question ISTQB  foundation 2
Question ISTQB foundation 2
 

Plus de TechWell

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and RecoveringTechWell
 
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 ArchitectureTechWell
 
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 StartTechWell
 
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 StrategyTechWell
 
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 SuccessTechWell
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowTechWell
 
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 SanityTechWell
 
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 StrategyTechWell
 
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 DevOpsTechWell
 
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—LeadershipTechWell
 
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 TeamsTechWell
 
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 GameTechWell
 
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 TeamsTechWell
 
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 ImplementationTechWell
 
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 ProcessTechWell
 
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 AutomateTechWell
 
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 SuccessTechWell
 
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 TransformationTechWell
 

Plus de 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
 

Dernier

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 

Dernier (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

White-box Testing: When Quality Really Matters

  • 1. T14 Test Techniques 5/2/2013 1:30:00 PM White-box Testing: When Quality Really Matters Presented by: Jamie Mitchell Jamie Mitchell Consulting, Inc. 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. Jamie Mitchell Jamie Mitchell has more than thirty years of experience developing and testing both hardware and software. In 1991, Jamie moved from hardware to the dark side - software. He was a pioneer in the test automation field, working with a variety of vendor, open source, and custom-built tools since Windows 3.0. Jamie's specialty is increasing the productivity of automation and test teams through innovative ideas and custom tool extensions. In addition, Jamie provides training, mentoring, and expert technical support in all aspects of testing and automation. Jamie is the coauthor (with Rex Black) of Advanced Software Testing, Volume 3: Guide to the ISTQB Advanced Certification as an Advanced Technical Test Analyst.
  • 3. 4/19/2013 Structural Testing When Quality Really Matters Jamie L Mitchell Jamie Mitchell Consulting Inc. When Software Really Needs to Work Copyright (c) Jamie Mitchell Consulting Inc. 2 1
  • 4. 4/19/2013 Why Structure-based Testing? StructureExperience-based techniques are not thorough enough: ◦ Error-guessing ◦ Exploratory testing ◦ Defect- and taxonomy-based Black-box testing depends on how good your test basis model is: ◦ Requirements ◦ Use cases ◦ Functional specifications How well have you tested? Is testing less than half of your code sufficient? Copyright (c) Jamie Mitchell Consulting Inc. 3 WhiteWhite-Box Test Basis Design documents and models ◦ Architecture ◦ Functional design ◦ Low-level design Object models Class interface documents Code Copyright (c) Jamie Mitchell Consulting Inc. 4 2
  • 5. 4/19/2013 Today’s Discussion Targets Control-flow analysis: selecting certain paths through the software to test, based on desired coverage Data-flow analysis: a control-flow technique that scrutinizes the life-cycle of data variables Copyright (c) Jamie Mitchell Consulting Inc. 5 ControlControl-flow Testing Select certain paths through the software ◦ Based on desired level of coverage Based on statements Based on decisions Based on loops Based on paths Copyright (c) Jamie Mitchell Consulting Inc. 6 3
  • 6. 4/19/2013 Statement Coverage Execute every line of code Tools available for measurement ◦ Run tool while executing tests ◦ Evaluate coverage ◦ Create more tests to reach areas missed Also called instruction or code coverage Copyright (c) Jamie Mitchell Consulting Inc. 7 Decision Coverage Statement coverage may miss bugs ◦ One test needed for statement coverage (a = 5, b = 4) Passes z = 0; if (a > b) then z = 12; x = 72 / z Select inputs to force each decision to execute both possible ways (T/F) ◦ Now two test cases are needed for coverage (a = 5, b = 4) (a = 4, b = 5) Passes Finds bug Copyright (c) Jamie Mitchell Consulting Inc. 8 4
  • 7. 4/19/2013 Condition Coverage Decisions may be arbitrarily complex if (a > b) then… if (A || B) && (C == D) || (!E) && (F) then… Condition testing requires that each atomic condition must be evaluated both true and false Note that condition coverage – by itself – may not be as strong as decision coverage if (a AND b) then (a = F, b = T (a = T, b = F F) F) Copyright (c) Jamie Mitchell Consulting Inc. 9 Decision / Condition Coverage A combination of Condition and Decision 1. Each atomic condition must be evaluated both ways AND 2. Decision coverage must be satisfied if (a AND b) then (a = F, b = T (a = T, b = F (a = T, b = T F) F) T) Is that enough coverage? Copyright (c) Jamie Mitchell Consulting Inc. 10 5
  • 8. 4/19/2013 Modified Condition / Decision Usually called MC/DC ◦ For each condition in the predicate, there is at least one test where the outcome is TRUE only because of that condition being TRUE ◦ For each condition in the predicate, there is at least one test where the outcome is FALSE only because of that condition being FALSE Usually results in N+1 test cases where N is number of conditions in predicate Required by some safety standards to ensure that enough testing has been done Ex: FAA DO/178B Level A (catastrophic) software Copyright (c) Jamie Mitchell Consulting Inc. 11 MC/DC Coverage (2) if ((a || b) && c) then … Decision/Condition can be achieved with (a = T, b = T, c = T) (a = F, b = F, c = F) T F Note that (b) never independently affects the outcome of the condition Copyright (c) Jamie Mitchell Consulting Inc. 12 6
  • 9. 4/19/2013 MC/DC Coverage (3) if ((a || b) && c) then … Following test set will achieve MC/DC coverage 1. 2. 3. 4. (a = T, (a = F, (a = F, (a = T, b = F, b = F, b = T, b = F, c = T) c = T) c = T) c = F) T F T F Copyright (c) Jamie Mitchell Consulting Inc. 13 Coverage Based on Loops Loops make testing …interesting… The number of possible paths may approach infinite depending on how many loops are executed Basic coverage criteria ◦ Test when no loops are made ◦ Test when a single loop is made ◦ Test when n loops are made (where n is either the expected max or a large number) Copyright (c) Jamie Mitchell Consulting Inc. 14 7
  • 10. 4/19/2013 Loops (2) This loop can calculate a factorial (n!) for (i = 1; i <= n; i++) f *= i; Use (n = 0) for zero loops Use (n = 1) for one time through Determining the max requires thought ◦ In this case, (f) gets very large ◦ Use (n = 12); 13 would cause an overflow Copyright (c) Jamie Mitchell Consulting Inc. 15 Nested Loops Nested loops are really hard to test Boris Beizer* had some advice 1. 2. 3. 4. 5. Start at the innermost loop, setting all outer loops to their minimum iteration setting Test boundaries for innermost loop while keeping outer loops at their minimum If you have done outermost loop goto 5. Else move one loop outward and test as in step 2 with all inner loops set to their typical values Continue outward until all loops done Test the boundaries for all loops simultaneously * Software Testing Techniques, 2nd Ed. by Boris Beizer Copyright (c) Jamie Mitchell Consulting Inc. 16 8
  • 11. 4/19/2013 Path Testing Full path testing in a non-trivial system is impossible ◦ The number of paths approaches infinite ◦ This is due to loops as seen previously We can identify independent, non-looping paths which cover all the edges and nodes of a control-flow graph ◦ These are called basis paths ◦ Testing the basis paths can guarantee decision (and statement) coverage ◦ McCabe cyclomatic complexity uses this method ◦ Tools are available for calculating this value Copyright (c) Jamie Mitchell Consulting Inc. 17 Cyclomatic Complexity Example Complexity = 3 Tests needed ◦ 1-2-6-7-8 ◦ 1-3-4-7-8 ◦ 1-3-5-8 Example from “A Complexity Measure” by Thomas McCabe, IEEE Transactions on SW Engineering, Vol. SE-2, No 4, December 1976 Copyright (c) Jamie Mitchell Consulting Inc. 18 9
  • 12. 4/19/2013 DataData-flow Analysis (1) Programs create, set, read, evaluate and destroy data The life cycle of data can be analyzed to find defects that control-flow techniques miss Some defect examples ◦ ◦ ◦ ◦ Incorrect assignment of a value Incorrect input statement Failure to define a variable before use Incorrect path taken due to incorrect value in a control predicate ◦ Use of a variable after it is destroyed or out of scope ◦ Redefinition of a variable before it can be used. Look for consecutive touches to each variable Copyright (c) Jamie Mitchell Consulting Inc. 19 DataData-flow Analysis (2) Dependent on the language used We look for anomalies in data life-cycle ◦ Not all anomalies are defects ◦ While this is nominally a static technique, it will not find all data defects (often data is manipulated or assigned dynamically) Sometimes called DUK testing ◦D ◦U ◦K Define Use Kill Copyright (c) Jamie Mitchell Consulting Inc. 20 10
  • 13. 4/19/2013 DataData-flow Testing Combinations (1) Anomaly Explanation 1. ~d first define Allowed 2. du define-use Allowed, normal case 3. dk define-kill Potential bug; data was never used 4. ~u first use Potential bug; data was used without definition. It may be a global variable, set outside the routine 5. ud use-define Allowed: data used and then re-defined 6. uk use-kill Allowed 7. ~k first kill Potential bug; data is killed before definition 8. ku kill-use Serious defect; data is used after being killed Copyright (c) Jamie Mitchell Consulting Inc. 21 DataData-flow Testing Combinations (2) Anomaly Explanation 9. kd kill-define Usually allowed. Data is killed and then redefined. Some theorists believe this should be disallowed 10. dd define-define Potential bug; double definition 11. uu use-use Allowed; normal case. Some do not bother testing this pair since no redefinition occurred 12. kk kill-kill Potential bug 13. d~ define last Potential bug; dead variable? May be a global variable which is used in other context 14. u~ use last Allowed. Variable was used in this routine but not killed off 15. k~ kill last Allowed; normal case Copyright (c) Jamie Mitchell Consulting Inc. 22 11
  • 14. 4/19/2013 Function to Test 1. public static double calculateBill (int Usage) { 2. double Bill = 0; 3. if(Usage > 0) { 4. Bill = 40; 5. 6. if(Usage > 100) { 7. if(Usage <= 200) { 8. Bill = Bill + (Usage - 100) * 0.5; 9. } 10. else { 11. Bill = Bill + 50 + (Usage - 200) * 0.1; 12. if(Bill >= 100) { 13. Bill = Bill * 0.9; 14. } 15. } 16. } 17. } 18. 19. return Bill; } Copyright (c) Jamie Mitchell Consulting Inc. 23 Variable DUK Patterns Usage data-flow information Bill data-flow information Pattern Explanation 1. ~d (1) normal case 1. ~d (2) Pattern normal case Explanation 2. du (1-3) normal case 2. dd (2-4) suspicious 3. uu (3-6)(6-7) (7-8)(7-11) normal case 3. du (2-18)(4-8) (4-11)(11-12) normal case 4. uk (6-19) (8-19)(11-19) normal case 4. ud (8-8)(11-11)(13-13) acceptable 5. uu (12-13)(12-18) normal case 5. k~ (19) normal case 6. uk (18-19) normal case 7. k~ (19) normal case Copyright (c) Jamie Mitchell Consulting Inc. 24 12
  • 15. 4/19/2013 Summary Many testers simply use black-box and experience-based techniques Some systems require far deeper testing This presentation barely touches the many advanced techniques that can be used in testing Learning these techniques can give you an advantage in your career Copyright (c) Jamie Mitchell Consulting Inc. 25 13