SlideShare a Scribd company logo
3
Most read
5
Most read
9
Most read
Software Testing and Quality Assurance
            Theory and Practice
                 Chapter 2
         Theory of Program Testing




                                         1
Outline of the Chapter
•   Basic Concepts in Testing Theory
•   Theory of Goodenough and Gerhart
•   Theory of Weyuker and Ostrand
•   Theory of Gourlay
•   Adequacy of Testing
•   Limitations of Testing
•   Summary




                                              2
Basic Concepts in Testing Theory
•   Testing theory puts emphasis on
     – Detecting defects through program execution
     – Designing test cases from different sources: requirement specification, source
       code, and input and output domains of programs
     – Selecting a subset of tests cases from the entire input domain
     – Effectiveness of test selection strategies
     – Test oracles used during testing
     – Prioritizing the execution of test cases
     – Adequacy analysis of test cases




                                                                                        3
Theory of Goodenough and Gerhart
•   Fundamental Concepts
     – Let P be a program, and D be its input domain. Let T ⊆ D. P(d) is the result of
       executing P with input d.




            Figure 2.1: Executing a program with a subset of the input domain.
     – OK(d): Represents the acceptability of P(d). OK(d) = true iff P(d) is
       acceptable.
     – SUCCESSFUL(T): T is a successful test iff ∀t ∈ T, OK(t).
     – Ideal Test: T is an ideal test if OK(t), ∀t ∈ T => OK(d), ∀d ∈ D.



                                                                                         4
Theory of Goodenough and Gerhart
•   Fundamental Concepts (Contd.)
     – Reliable Criterion: A test selection criterion C is reliable iff either every test
       selected by C is successful, or no test selected is successful.
     – Valid Criterion: A test selection criterion C is valid iff whenever P is incorrect,
       C selects at least one test set T which is not successful for P.
     – Let C denote a set of test predicates. If d ∈ D satisfies test predicate c ∈ C,
       then c(d) is said to be true.
     – COMPLETE(T, C) ≡ (∀c ∈ C)(∃t ∈ T) c(t) ∧ (∀t ∈ T)(∃c ∈ C) c(t)


•   Fundamental Theorem
     – (∃T ⊆ D) (COMPLETE(T,C) ∧ RELIABLE(C) ∧ VALID(C) ∧ SUCCESSFUL(T))
                 => (∀d ∈ D) OK(d)




                                                                                             5
Theory of Goodenough and Gerhart
•   Program faults occur due to our
     – inadequate understanding of all conditions that a program must deal with.
     – failure to realize that certain combinations of conditions require special care.
•   Kinds of program faults
     – Logic fault
         • Requirement fault
         • Design fault
         • Construction fault
     – Performance fault
     – Missing control-flow paths
     – Inappropriate path selection
     – Inappropriate or missing action
•   Test predicate: It is a description of conditions and combinations of
    conditions relevant to correct operation of the program.

                                                                                          6
Theory of Goodenough and Gerhart
•   Conditions for Reliability of a set of test predicates C
     – Every branching condition must be represented by a condition in C.
     – Every potential termination condition must be represented in C.
     – Every condition relevant to the correct operation of the program must be
       represented in C.

•   Drawbacks of the Theory
     – Difficulty in assessing the reliability and validity of a criterion.
     – The concepts of reliability and validity are defined w.r.t. to a program. The
       goodness of a test should be independent of individual programs.
     – Neither reliability nor validity is preserved throughout the debugging process.




                                                                                         7
Theory of Weyuker and Ostrand
•   d ∈ D, the input domain of program P and T ⊆ D.
•   OK(P, d) = true iff P(d) is acceptable.
•   SUCC(P, T): T is a successful test for P iff forall ∀t ∈ T, OK(P, t).
•   Uniformly valid criterion: Criterion C is uniformly valid iff
     – (∀P) [ (∃d ∈ D)(¬OK(P,d)) => (∃T ⊆ D) (C(T) ∧ ¬SUCC(P, T)) ].
•   Uniformly reliable criterion: Criterion C is uniformly reliable iff
     (∀P) (∀T1, ∀T2 ⊆ D) [ (C(T1) ∧ C(T2)) => (SUCC(P, T1) <==> SUCC(P,T2)) ].
•   Uniformly Ideal Test Selection
     – A uniformly ideal test selection criterion for a given specification is both
       uniformly valid and uniformly reliable.
•   A subdomain S is a subset of D.
     – Criterion C is revealing for a subdomain S if whenever S contains an input
       which is processed incorrectly, then every test set which satisfies C is
       unsuccessful.
         • REVEALING(C, S) iff
                               (∃d ∈ S) (¬OK(d)) => (∀T ⊆ S)(C(T) => ¬SUCC(T)) .

                                                                                      8
Theory of Gourlay
•   The theory establishes a relationship between three sets of entities
     – specifications, programs and tests.
•   Notation
               – P: The set of all programs (p ∈ P ⊆ P)
               – S: The set of all specifications (s ∈ S ⊆ S)
               – T: The set of all tests (t ∈ T ⊆ T)
               – “p ok(t) s” means the result of testing p with t is judged to be acceptable by s.
               – “p ok(T) s” means “p ok(t) s,” ∀t ∈ T.
               – “p corr s” means p is correct w.r.t. s.
•   A testing system is a collection < P, S, T, corr, ok>, where corr
    ⊆ P x S and ok ⊆ T x P x S, and ∀p∀s∀t(p corr s => p ok(t) s).
•   A test method is a function M: P x S →T
     – Program dependent: T = M(P)
     – Specification dependent: T = M(S)
     – Expectation dependent

                                                                                                     9
Theory of Gourlay
•   Power of test methods: Let M and N be two test methods.
     – For M to be at least as good as N, we want the following to occur:
         • Whenever N finds an error, so does M.
         • (FM and FN are sets of faults discovered by test sets produced by test
           methods M and N, respectively.)
         • (TM and TN are test sets produced by test methods M and N, respectively.)
     – Two cases: (a) TN ⊆ TM and (b) TM and TN overlap




                                                                                       10
Adequacy of Testing
•   Reality: New test cases, in addition to the planned test cases, are
    designed while performing testing. Let the test set be T.

•   If a test set T does not reveal any more faults, we face a dilemma:
     – P is fault-free. OR
     – T is not good enough to reveal (more) faults.
      Need for evaluating the adequacy (i.e. goodness) of T.

•   Some ad hoc stopping criteria
     – Allocated time for testing is over.
     – It is time to release the product.
     – Test cases no more reveal faults.




                                                                          11
Adequacy of Testing




Figure 2.4: Context of applying test adequacy.

                                                 12
Adequacy of Testing
•   Two practical methods for evaluating test adequacy
     – Fault seeding
     – Program mutation
•   Fault seeding
     – Implant a certain number (say, X) of known faults in P, and test P with T.
     – If k% of the X faults are revealed, T has revealed k% of the unknown faults.
     – (More in Chapter 13)
•   Program mutation
     – A mutation of P is obtained by making a small change to P.
     – Some mutations are faulty, whereas the others are equivalent to P.
     – T is said to be adequate if it causes every faulty mutations to produce
       unexpected results.
     – (More in Chapter 3)



                                                                                      13
Limitations of Testing
•   Dijkstra’s famous observation
     – Testing can reveal the presence of faults, but not their absence.
•   Faults are detected by running P with a small test set T, where |T| <<
    |D|, where |.| denotes the “size-of” function and “<<“ denoted “much
    smaller.”
     – Testing with a small test set raises the concern of testing efficacy.
     – Testing with a small test set is less expensive.
•   The result of each test must be verified with a test oracle.
     – Verifying a program output is not a trivial task.
     – There are non-testable programs. A program is non-testable if
         • There is no test oracle for the program.
         • It is too difficult to determine the correct output.




                                                                               14
Summary
•   Theory of Goodenough and Gerhart
         • Ideal test, Test selection criteria, Program faults, Test predicates
•   Theory of Weyuker and Ostrand
         • Uniformly ideal test selection
         • Revealing subdomain
•   Theory of Gourlay
         • Testing system
         • Power of test methods (“at least as good as” relation)
•   Adequacy of Testing
         • Need for evaluating adequacy
         • Methods for evaluating adequacy: fault seeding and program mutation
•   Limitations of Testing
         • Testing is performed with a test set T, s.t. |T| << |D|.
         • Dijkstra’s observation
         • Test oracle problem
                                                                                  15

More Related Content

What's hot (20)

PPTX
Software Quality Models Presentation.pptx
syedadamiya
 
PPT
Agile QA presentation
Carl Bruiners
 
PPTX
Software testing ppt
Heritage Institute Of Tech,India
 
PPT
Software metrics
Aadarsh Sharma
 
DOCX
Spm unit 2
Naga Dinesh
 
PPT
Software Quality Assurance
Sachithra Gayan
 
PDF
Project Evaluation and Estimation in Software Development
Prof Ansari
 
PPT
Unit 8
anuragmbst
 
PPTX
SPM_UNIT-1(1).pptx
Sushant895574
 
PPTX
Software Project Management (SPM)
RubySaud
 
PPTX
Ch 4 components of the sqa system
Kittitouch Suteeca
 
PPTX
Requirements validation - requirements engineering
Ra'Fat Al-Msie'deen
 
PPT
Software Testing Strategies
NayyabMirTahir
 
PPT
Managing contracts
tumetr1
 
PPTX
Lect4 software economics
meena466141
 
PPT
Lecture 12 requirements modeling - (system analysis)
IIUI
 
PDF
Software testing methods, levels and types
Confiz
 
PDF
Formal methods 4 - Z notation
Vlad Patryshev
 
PPTX
Software Project Management (monitoring and control)
IsrarDewan
 
PPTX
Software Measurement and Metrics.pptx
ubaidullah75790
 
Software Quality Models Presentation.pptx
syedadamiya
 
Agile QA presentation
Carl Bruiners
 
Software testing ppt
Heritage Institute Of Tech,India
 
Software metrics
Aadarsh Sharma
 
Spm unit 2
Naga Dinesh
 
Software Quality Assurance
Sachithra Gayan
 
Project Evaluation and Estimation in Software Development
Prof Ansari
 
Unit 8
anuragmbst
 
SPM_UNIT-1(1).pptx
Sushant895574
 
Software Project Management (SPM)
RubySaud
 
Ch 4 components of the sqa system
Kittitouch Suteeca
 
Requirements validation - requirements engineering
Ra'Fat Al-Msie'deen
 
Software Testing Strategies
NayyabMirTahir
 
Managing contracts
tumetr1
 
Lect4 software economics
meena466141
 
Lecture 12 requirements modeling - (system analysis)
IIUI
 
Software testing methods, levels and types
Confiz
 
Formal methods 4 - Z notation
Vlad Patryshev
 
Software Project Management (monitoring and control)
IsrarDewan
 
Software Measurement and Metrics.pptx
ubaidullah75790
 

Viewers also liked (9)

PPT
Ch1 preliminaries
Ronak Patel
 
PPS
Ch5
Ronak Patel
 
PPS
Ch3
Ronak Patel
 
PPS
Ch2
Ronak Patel
 
PPS
Ch6
Ronak Patel
 
PPS
Ch7
Ronak Patel
 
PPS
Ch1
Ronak Patel
 
PPS
Ch3
Ronak Patel
 
PPS
Ch4
Ronak Patel
 
Ad

Similar to Ch2 theory (20)

PPT
testing(2).pptjjsieieo2i33kejjskskosowwiwk
mhuzaifasultan8
 
PPT
AutoTest.ppt
PrashanthJanakiraman
 
PPT
AutoTest.ppt
Rohit846825
 
PPT
AutoTest.ppt
CHANDUKAYALA
 
PPT
AutoTest for software engineering for automated testing
VishnuVardhan909561
 
PPT
Automation testing basics and tools presentation
areebjafriv
 
PPTX
Testing part 2 bb
Ravi Prakash
 
PPT
Testing Fundamentals
Kiran Kumar
 
PPS
Lesson 2....PPT 1
bhushan Nehete
 
PDF
Reliability growth models
Roy Antony Arnold G
 
DOCX
Software engg unit 4
Vivek Kumar Sinha
 
PPT
Testing foundations
Neha Singh
 
PPT
Testing
nazeer pasha
 
DOCX
A PRACTITIONER'S GUIDE TO SOFTWARE TEST DESIGN [Summary]
Khizra Sammad
 
PPT
&lt;p>Software Testing&lt;/p>
Atul Mishra
 
PPT
An overview to Software Testing
Atul Mishra
 
DOC
Question ISTQB foundation 3
Jenny Nguyen
 
DOC
Ôn tập kiến thức ISTQB
Jenny Nguyen
 
PDF
Test design techniques
Gregory Solovey
 
PPTX
SE%200-Testing%20(2).pptx
200723KarthikeyanD
 
testing(2).pptjjsieieo2i33kejjskskosowwiwk
mhuzaifasultan8
 
AutoTest.ppt
PrashanthJanakiraman
 
AutoTest.ppt
Rohit846825
 
AutoTest.ppt
CHANDUKAYALA
 
AutoTest for software engineering for automated testing
VishnuVardhan909561
 
Automation testing basics and tools presentation
areebjafriv
 
Testing part 2 bb
Ravi Prakash
 
Testing Fundamentals
Kiran Kumar
 
Lesson 2....PPT 1
bhushan Nehete
 
Reliability growth models
Roy Antony Arnold G
 
Software engg unit 4
Vivek Kumar Sinha
 
Testing foundations
Neha Singh
 
Testing
nazeer pasha
 
A PRACTITIONER'S GUIDE TO SOFTWARE TEST DESIGN [Summary]
Khizra Sammad
 
&lt;p>Software Testing&lt;/p>
Atul Mishra
 
An overview to Software Testing
Atul Mishra
 
Question ISTQB foundation 3
Jenny Nguyen
 
Ôn tập kiến thức ISTQB
Jenny Nguyen
 
Test design techniques
Gregory Solovey
 
SE%200-Testing%20(2).pptx
200723KarthikeyanD
 
Ad

Recently uploaded (20)

PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PPTX
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
Q2 FY26 Tableau User Group Leader Quarterly Call
lward7
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
Biography of Daniel Podor.pdf
Daniel Podor
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 

Ch2 theory

  • 1. Software Testing and Quality Assurance Theory and Practice Chapter 2 Theory of Program Testing 1
  • 2. Outline of the Chapter • Basic Concepts in Testing Theory • Theory of Goodenough and Gerhart • Theory of Weyuker and Ostrand • Theory of Gourlay • Adequacy of Testing • Limitations of Testing • Summary 2
  • 3. Basic Concepts in Testing Theory • Testing theory puts emphasis on – Detecting defects through program execution – Designing test cases from different sources: requirement specification, source code, and input and output domains of programs – Selecting a subset of tests cases from the entire input domain – Effectiveness of test selection strategies – Test oracles used during testing – Prioritizing the execution of test cases – Adequacy analysis of test cases 3
  • 4. Theory of Goodenough and Gerhart • Fundamental Concepts – Let P be a program, and D be its input domain. Let T ⊆ D. P(d) is the result of executing P with input d. Figure 2.1: Executing a program with a subset of the input domain. – OK(d): Represents the acceptability of P(d). OK(d) = true iff P(d) is acceptable. – SUCCESSFUL(T): T is a successful test iff ∀t ∈ T, OK(t). – Ideal Test: T is an ideal test if OK(t), ∀t ∈ T => OK(d), ∀d ∈ D. 4
  • 5. Theory of Goodenough and Gerhart • Fundamental Concepts (Contd.) – Reliable Criterion: A test selection criterion C is reliable iff either every test selected by C is successful, or no test selected is successful. – Valid Criterion: A test selection criterion C is valid iff whenever P is incorrect, C selects at least one test set T which is not successful for P. – Let C denote a set of test predicates. If d ∈ D satisfies test predicate c ∈ C, then c(d) is said to be true. – COMPLETE(T, C) ≡ (∀c ∈ C)(∃t ∈ T) c(t) ∧ (∀t ∈ T)(∃c ∈ C) c(t) • Fundamental Theorem – (∃T ⊆ D) (COMPLETE(T,C) ∧ RELIABLE(C) ∧ VALID(C) ∧ SUCCESSFUL(T)) => (∀d ∈ D) OK(d) 5
  • 6. Theory of Goodenough and Gerhart • Program faults occur due to our – inadequate understanding of all conditions that a program must deal with. – failure to realize that certain combinations of conditions require special care. • Kinds of program faults – Logic fault • Requirement fault • Design fault • Construction fault – Performance fault – Missing control-flow paths – Inappropriate path selection – Inappropriate or missing action • Test predicate: It is a description of conditions and combinations of conditions relevant to correct operation of the program. 6
  • 7. Theory of Goodenough and Gerhart • Conditions for Reliability of a set of test predicates C – Every branching condition must be represented by a condition in C. – Every potential termination condition must be represented in C. – Every condition relevant to the correct operation of the program must be represented in C. • Drawbacks of the Theory – Difficulty in assessing the reliability and validity of a criterion. – The concepts of reliability and validity are defined w.r.t. to a program. The goodness of a test should be independent of individual programs. – Neither reliability nor validity is preserved throughout the debugging process. 7
  • 8. Theory of Weyuker and Ostrand • d ∈ D, the input domain of program P and T ⊆ D. • OK(P, d) = true iff P(d) is acceptable. • SUCC(P, T): T is a successful test for P iff forall ∀t ∈ T, OK(P, t). • Uniformly valid criterion: Criterion C is uniformly valid iff – (∀P) [ (∃d ∈ D)(¬OK(P,d)) => (∃T ⊆ D) (C(T) ∧ ¬SUCC(P, T)) ]. • Uniformly reliable criterion: Criterion C is uniformly reliable iff (∀P) (∀T1, ∀T2 ⊆ D) [ (C(T1) ∧ C(T2)) => (SUCC(P, T1) <==> SUCC(P,T2)) ]. • Uniformly Ideal Test Selection – A uniformly ideal test selection criterion for a given specification is both uniformly valid and uniformly reliable. • A subdomain S is a subset of D. – Criterion C is revealing for a subdomain S if whenever S contains an input which is processed incorrectly, then every test set which satisfies C is unsuccessful. • REVEALING(C, S) iff (∃d ∈ S) (¬OK(d)) => (∀T ⊆ S)(C(T) => ¬SUCC(T)) . 8
  • 9. Theory of Gourlay • The theory establishes a relationship between three sets of entities – specifications, programs and tests. • Notation – P: The set of all programs (p ∈ P ⊆ P) – S: The set of all specifications (s ∈ S ⊆ S) – T: The set of all tests (t ∈ T ⊆ T) – “p ok(t) s” means the result of testing p with t is judged to be acceptable by s. – “p ok(T) s” means “p ok(t) s,” ∀t ∈ T. – “p corr s” means p is correct w.r.t. s. • A testing system is a collection < P, S, T, corr, ok>, where corr ⊆ P x S and ok ⊆ T x P x S, and ∀p∀s∀t(p corr s => p ok(t) s). • A test method is a function M: P x S →T – Program dependent: T = M(P) – Specification dependent: T = M(S) – Expectation dependent 9
  • 10. Theory of Gourlay • Power of test methods: Let M and N be two test methods. – For M to be at least as good as N, we want the following to occur: • Whenever N finds an error, so does M. • (FM and FN are sets of faults discovered by test sets produced by test methods M and N, respectively.) • (TM and TN are test sets produced by test methods M and N, respectively.) – Two cases: (a) TN ⊆ TM and (b) TM and TN overlap 10
  • 11. Adequacy of Testing • Reality: New test cases, in addition to the planned test cases, are designed while performing testing. Let the test set be T. • If a test set T does not reveal any more faults, we face a dilemma: – P is fault-free. OR – T is not good enough to reveal (more) faults.  Need for evaluating the adequacy (i.e. goodness) of T. • Some ad hoc stopping criteria – Allocated time for testing is over. – It is time to release the product. – Test cases no more reveal faults. 11
  • 12. Adequacy of Testing Figure 2.4: Context of applying test adequacy. 12
  • 13. Adequacy of Testing • Two practical methods for evaluating test adequacy – Fault seeding – Program mutation • Fault seeding – Implant a certain number (say, X) of known faults in P, and test P with T. – If k% of the X faults are revealed, T has revealed k% of the unknown faults. – (More in Chapter 13) • Program mutation – A mutation of P is obtained by making a small change to P. – Some mutations are faulty, whereas the others are equivalent to P. – T is said to be adequate if it causes every faulty mutations to produce unexpected results. – (More in Chapter 3) 13
  • 14. Limitations of Testing • Dijkstra’s famous observation – Testing can reveal the presence of faults, but not their absence. • Faults are detected by running P with a small test set T, where |T| << |D|, where |.| denotes the “size-of” function and “<<“ denoted “much smaller.” – Testing with a small test set raises the concern of testing efficacy. – Testing with a small test set is less expensive. • The result of each test must be verified with a test oracle. – Verifying a program output is not a trivial task. – There are non-testable programs. A program is non-testable if • There is no test oracle for the program. • It is too difficult to determine the correct output. 14
  • 15. Summary • Theory of Goodenough and Gerhart • Ideal test, Test selection criteria, Program faults, Test predicates • Theory of Weyuker and Ostrand • Uniformly ideal test selection • Revealing subdomain • Theory of Gourlay • Testing system • Power of test methods (“at least as good as” relation) • Adequacy of Testing • Need for evaluating adequacy • Methods for evaluating adequacy: fault seeding and program mutation • Limitations of Testing • Testing is performed with a test set T, s.t. |T| << |D|. • Dijkstra’s observation • Test oracle problem 15

Editor's Notes

  • #2: Handouts ------------------------------------------------------------------ ------------------------------------------------------------------ ------------------------------------------------------------------- --------------------------------------------------------------------
  • #3: Handouts
  • #4: Handouts
  • #5: Handouts
  • #6: Handouts
  • #7: Handouts
  • #8: Handouts
  • #9: Handouts
  • #10: Handouts
  • #11: Handouts
  • #12: Handouts
  • #13: Handouts
  • #14: Handouts
  • #15: Handouts
  • #16: Handouts