SlideShare a Scribd company logo
1 of 12
Download to read offline
Software Te$ting
                    E 'HSHQGDEOH (PEHGGHG 6VWHPV
                                -LDQWDR 3DQ
                               )HE  
Required Reading:      Towards Target-Level Testing and Debugging Tools for Embedded Software
Fun Reading:           http://www.cnet.com/Content/Features/Dlife/Bugs/?dd
Best Tutorial:         Software-reliability-engineered testing practice; John D.Musa; Proceedings
                       of the 1997 ICSE, Pages 628 - 629
Authoritative Books:   The Art of Software Testing, Glenford J. Myers, 1979
                        Black-box Testing, Boris Beizer, 1995
                       The Complete Guide to Software Testing, Hetzel, William C., 1988
You Are Here
x   A lot of subtle relations to other topics
                                      SW RELIABILITY




                                                 VERIFICATION/
                                                  VALIDATION/
                                                 CERTIFICATION



                                 2
Introduction
x   Definitions of Software Testing
    • [1]: Testing is the process of executing a program or system with
      the intent of finding errors.
    • [3]: Testing is any activity aimed at evaluating an attribute or
      capability of a program or system and determining that it meets its
      required results.
x   Vocabulary  Concepts
    • Defects, bugs, faults[ANSI], errata[Intel]
    • Testing is more than debugging[BEIZER90]
x   Software testing is an        ……               $57
    • because we still can not make it a science
x   Software testing is everywhere
    • in every phase of software life cycle, whenever software changes
    • 50%+ time in debugging/testing
x   Software testing is not mature
                                     3
Why testing?
x   For Quality

    •bugs kill
        – in a computerized embedded world
    • Defect detection (find problems and get them fixed
      [KANER93])
        – Better early than late
           » Difficult to upgrade field software in embedded systems
    • To make quality visible [HETZEL88]
x   For Verification  Validation(VV):
    • show it works:
        – clean test/positive test
    • or it can handle exceptional situations:
        – dirty test/negative test
x   For Reliability Estimation [KANER93]
    • E.g. reliability growth testing
                                                 4
Why software testing is difficult -- principles
x   Software fails in different ways with physical systems
x   Imperfection of human nature(to handle complexity)
x   Cannot exterminate bugs
    • We cannot test a typical program completely
    • The Pesticide Paradox[BEIZER90]
        – Every method you use to prevent or find bugs leaves a residue of subtler bugs
          against which those methods are ineffectual.
        – Fixing the previous(easy) bugs will tend to increase software complexity --
          introducing new subtler bugs
    • The Complexity Barrier[BEIZER90]
        – Software complexity(and therefore that of bugs) grows to the limits of our ability to
          manage that complexity.




                                                5
Software Testing: Taxonomy
x   By purposes                           x   By scope
    • Correctness testing                     • implied in [BEIZER95]
        – Black-box                              –   Unit testing
        – White-box                              –   Component testing
    • Performance testing                        –   Integration testing
    • Reliability testing                        –   System testing
        – Robustness testing                  • or in [PERRY90]
           » Exception handling testing          –   Unit testing
           » Stress/load testing
                                                 –   String testing
    • Security testing                           –   System testing (α test)
x   By life cycle phase[PERRY95]                 –   Acceptance testing (β test)
    •   Requirements phase testing
    •   Design phase testing
    •   Program phase testing
    •   Evaluating test results
    •   Installation phase testing
    •   Acceptance testing
    •   Testing changes: maintenance
                                          6
Correctness Testing
x   Needs some type of oracles
x   Black-box testing/behavioral testing
    •   also: data-driven; input/output driven[1]; requirements-based[3]
    •   Test data are derived solely from the program structure[9]
    •   “Exhaustive input testing”[1]
    •   But, what about omissions/extras in spec?
x   White-box testing/structural testing
    • also: logic-driven[1]; design-based[3]
    • Application of test data derived from the specified functional
      requirements without regard to the final program structure[9]
    • “Exhaustive path testing”[1]
    • But, what about omissions/extras in code?
x   Other than bugs, we may find:
    • Features
    • Specification problems
    • Design philosophy (e.g. core dumps v.s. error return code)
                                      7
Correctness Testing Methods/Tools
x   Control-flow testing
    • Trace control-flow using control-flow graph; coverage
x   Loop testing
    • A heuristic technique; should be combined with other methods    Flow-
    • Applied when there is a loop in graph                           coverage
x   Data-flow testing                                                 testing
    • Trace data-flow using data-flow graph; coverage
x   Transaction-flow testing
    • Testing of on-line applications and batch-processing software
    • Has both control-flow and data-flow attributes
x   Domain testing
    • Software dominated by numerical processing
x   Syntax testing
    • Command-driven software and similar applications
x   Finite-state testing
    • Using finite-state machine model
    • motivated from hardware logic design
    • Excellent for testing menu-driven applications
                                          8
When to stop testing?




x   Trade-off between budget+time and quality
    • Part of acceptance testing
x   Stopping rules:
    • When reliability meets requirement
       – Statistical models
          » E.g. reliability growth models
       – Data gathering -- modeling --prediction
       – Not possible to calculate for ultra-dependable system
          » Because failure data is hard to accumulate
    • When out of resources: test case, money and/or time
                                             9
Testing is Controversial
x   Alternatives to testing
    • “human testing[MYERS79]”
        – inspections, walkthroughs, reviews
    • Engineering methods
        – Clean-room v.s. testing
    • Formal Verification v.s. Testing

x   Flames
    •   Traditional coverage-based testing is flawed.
    •   Testing can only prove the software is flawed.
    •   Inspection/review more effective than testing?
    •   “If we have good process, good quality, we don't need much
        testing”



                                          10
Conclusions
x   Complete testing is infeasible
    • Complexity problem
    • Equivalent to Turing halting problem
x   Software testing is immature
    • Crucial to software quality
x   Testing is more than debugging
    • For quality assurance, validation and reliability measurement
x   Rules of thumb
    • Efficiency  effectiveness
    • Automation
x   When to stop: need good metrics
    • Reliability
    • Time  budget



                                           11
List of References
x   [1][MYERS79] The art of software testing
x   [2][BEIZER95] Black-box Testing
x   [3][HETZEL88] The Complete Guide to Software Testing
x   [4][PHAM95] Software Reliability and Testing, pp29
x   [5][KANER93] Testing Computer Software
x   [6][PERRY95] Effective Methods for Software Testing, William
    Perry, 1995 QA76.76.T48P47X
x   [7][BEIZER90] Software Testing Techniques
x   [8]http://www.cs.jmu.edu/users/foxcj/cs555/Unit12/Testing/index.
    htm
x   [9][PERRY90] A standard for testing application software,
    William E. Perry, 1990


                                   12

More Related Content

What's hot

'Model Based Test Design' by Mattias Armholt
'Model Based Test Design' by Mattias Armholt'Model Based Test Design' by Mattias Armholt
'Model Based Test Design' by Mattias Armholt
TEST Huddle
 
Testing artifacts test cases
Testing artifacts   test casesTesting artifacts   test cases
Testing artifacts test cases
Petro Chernii
 
System testing
System testingSystem testing
System testing
Slideshare
 
Static analysis and reliability testing (CS 5032 2012)
Static analysis and reliability testing (CS 5032 2012)Static analysis and reliability testing (CS 5032 2012)
Static analysis and reliability testing (CS 5032 2012)
Ian Sommerville
 

What's hot (19)

Test case design
Test case designTest case design
Test case design
 
'Model Based Test Design' by Mattias Armholt
'Model Based Test Design' by Mattias Armholt'Model Based Test Design' by Mattias Armholt
'Model Based Test Design' by Mattias Armholt
 
ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6ISTQB / ISEB Foundation Exam Practice - 6
ISTQB / ISEB Foundation Exam Practice - 6
 
Testing Technique
Testing TechniqueTesting Technique
Testing Technique
 
Fundamental of testing
Fundamental of testingFundamental of testing
Fundamental of testing
 
Testing artifacts test cases
Testing artifacts   test casesTesting artifacts   test cases
Testing artifacts test cases
 
Software testing
Software testingSoftware testing
Software testing
 
ISTQB / ISEB Foundation Exam Practice - 4
ISTQB / ISEB Foundation Exam Practice - 4ISTQB / ISEB Foundation Exam Practice - 4
ISTQB / ISEB Foundation Exam Practice - 4
 
ISTQB Test level, Test type
ISTQB Test level, Test typeISTQB Test level, Test type
ISTQB Test level, Test type
 
Testing fundamentals
Testing fundamentalsTesting fundamentals
Testing fundamentals
 
System testing
System testingSystem testing
System testing
 
Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)Software Engineering (Testing Activities, Management, and Automation)
Software Engineering (Testing Activities, Management, and Automation)
 
11 software testing_strategy
11 software testing_strategy11 software testing_strategy
11 software testing_strategy
 
Software testing
Software testingSoftware testing
Software testing
 
Chapter 3 SOFTWARE TESTING PROCESS
Chapter 3 SOFTWARE TESTING PROCESSChapter 3 SOFTWARE TESTING PROCESS
Chapter 3 SOFTWARE TESTING PROCESS
 
Efficient And Effective Test Design
Efficient And Effective Test DesignEfficient And Effective Test Design
Efficient And Effective Test Design
 
Static analysis and reliability testing (CS 5032 2012)
Static analysis and reliability testing (CS 5032 2012)Static analysis and reliability testing (CS 5032 2012)
Static analysis and reliability testing (CS 5032 2012)
 
Software Testing Strategies
Software Testing StrategiesSoftware Testing Strategies
Software Testing Strategies
 
Software testing
Software testingSoftware testing
Software testing
 

Viewers also liked

Viewers also liked (20)

Advanced Testing and Debugging using the Developer Console webinar
Advanced Testing and Debugging using the Developer Console webinarAdvanced Testing and Debugging using the Developer Console webinar
Advanced Testing and Debugging using the Developer Console webinar
 
Nagios Conference 2011 - Larry Adams - 10 Years Of Cacti
Nagios Conference 2011 - Larry Adams - 10 Years Of CactiNagios Conference 2011 - Larry Adams - 10 Years Of Cacti
Nagios Conference 2011 - Larry Adams - 10 Years Of Cacti
 
Large Scale Cacti
Large Scale CactiLarge Scale Cacti
Large Scale Cacti
 
surya_resume2
surya_resume2surya_resume2
surya_resume2
 
Cacti
CactiCacti
Cacti
 
Software Testing & Debugging
Software Testing & DebuggingSoftware Testing & Debugging
Software Testing & Debugging
 
1 testing fundamentals
1 testing fundamentals1 testing fundamentals
1 testing fundamentals
 
Debugging
DebuggingDebugging
Debugging
 
Cacti overview
Cacti overviewCacti overview
Cacti overview
 
Introduction to White box testing
Introduction to White box testingIntroduction to White box testing
Introduction to White box testing
 
ISTQB foundation level - day 2
ISTQB foundation level - day 2ISTQB foundation level - day 2
ISTQB foundation level - day 2
 
Conference on Nagios: Reinhard Scheck on Cacti
Conference on Nagios: Reinhard Scheck on CactiConference on Nagios: Reinhard Scheck on Cacti
Conference on Nagios: Reinhard Scheck on Cacti
 
Black box & white-box testing technique
Black box & white-box testing techniqueBlack box & white-box testing technique
Black box & white-box testing technique
 
Black & White Box testing
Black & White Box testingBlack & White Box testing
Black & White Box testing
 
Black Box Testing
Black Box TestingBlack Box Testing
Black Box Testing
 
Image processing ppt
Image processing pptImage processing ppt
Image processing ppt
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar to Presentation

An overview to Software Testing
An overview to Software TestingAn overview to Software Testing
An overview to Software Testing
Atul Mishra
 
SW Verification presentation
SW Verification presentationSW Verification presentation
SW Verification presentation
Kiril Delovski
 
Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483
Chaitanya Kn
 

Similar to Presentation (20)

A Software Testing Intro
A Software Testing IntroA Software Testing Intro
A Software Testing Intro
 
testing strategies and tactics
 testing strategies and tactics testing strategies and tactics
testing strategies and tactics
 
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
Software Engineering (Software Quality Assurance & Testing: Supplementary Mat...
 
Software testing part
Software testing partSoftware testing part
Software testing part
 
Class9_SW_Testing_Strategies.pdf
Class9_SW_Testing_Strategies.pdfClass9_SW_Testing_Strategies.pdf
Class9_SW_Testing_Strategies.pdf
 
An overview to Software Testing
An overview to Software TestingAn overview to Software Testing
An overview to Software Testing
 
Software testing-and-analysis
Software testing-and-analysisSoftware testing-and-analysis
Software testing-and-analysis
 
SW Verification presentation
SW Verification presentationSW Verification presentation
SW Verification presentation
 
Software engineering Testing technique,test case,test suit design
Software engineering Testing technique,test case,test suit designSoftware engineering Testing technique,test case,test suit design
Software engineering Testing technique,test case,test suit design
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
Software engineering quality assurance and testing
Software engineering quality assurance and testingSoftware engineering quality assurance and testing
Software engineering quality assurance and testing
 
G53 qat09pdf6up
G53 qat09pdf6upG53 qat09pdf6up
G53 qat09pdf6up
 
Software-Testing-ppt.pptx
Software-Testing-ppt.pptxSoftware-Testing-ppt.pptx
Software-Testing-ppt.pptx
 
Software_Testing_ppt.pptx
Software_Testing_ppt.pptxSoftware_Testing_ppt.pptx
Software_Testing_ppt.pptx
 
software testing
 software testing software testing
software testing
 
testing.pptx
testing.pptxtesting.pptx
testing.pptx
 
Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483Black box-software-testing-douglas-hoffman2483
Black box-software-testing-douglas-hoffman2483
 
Testing Types
Testing TypesTesting Types
Testing Types
 
Testing
TestingTesting
Testing
 
Design testabilty
Design testabiltyDesign testabilty
Design testabilty
 

Recently uploaded

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 

Recently uploaded (20)

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Graduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - EnglishGraduate Outcomes Presentation Slides - English
Graduate Outcomes Presentation Slides - English
 

Presentation

  • 1. Software Te$ting E 'HSHQGDEOH (PEHGGHG 6VWHPV -LDQWDR 3DQ )HE Required Reading: Towards Target-Level Testing and Debugging Tools for Embedded Software Fun Reading: http://www.cnet.com/Content/Features/Dlife/Bugs/?dd Best Tutorial: Software-reliability-engineered testing practice; John D.Musa; Proceedings of the 1997 ICSE, Pages 628 - 629 Authoritative Books: The Art of Software Testing, Glenford J. Myers, 1979 Black-box Testing, Boris Beizer, 1995 The Complete Guide to Software Testing, Hetzel, William C., 1988
  • 2. You Are Here x A lot of subtle relations to other topics SW RELIABILITY VERIFICATION/ VALIDATION/ CERTIFICATION 2
  • 3. Introduction x Definitions of Software Testing • [1]: Testing is the process of executing a program or system with the intent of finding errors. • [3]: Testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results. x Vocabulary Concepts • Defects, bugs, faults[ANSI], errata[Intel] • Testing is more than debugging[BEIZER90] x Software testing is an …… $57 • because we still can not make it a science x Software testing is everywhere • in every phase of software life cycle, whenever software changes • 50%+ time in debugging/testing x Software testing is not mature 3
  • 4. Why testing? x For Quality •bugs kill – in a computerized embedded world • Defect detection (find problems and get them fixed [KANER93]) – Better early than late » Difficult to upgrade field software in embedded systems • To make quality visible [HETZEL88] x For Verification Validation(VV): • show it works: – clean test/positive test • or it can handle exceptional situations: – dirty test/negative test x For Reliability Estimation [KANER93] • E.g. reliability growth testing 4
  • 5. Why software testing is difficult -- principles x Software fails in different ways with physical systems x Imperfection of human nature(to handle complexity) x Cannot exterminate bugs • We cannot test a typical program completely • The Pesticide Paradox[BEIZER90] – Every method you use to prevent or find bugs leaves a residue of subtler bugs against which those methods are ineffectual. – Fixing the previous(easy) bugs will tend to increase software complexity -- introducing new subtler bugs • The Complexity Barrier[BEIZER90] – Software complexity(and therefore that of bugs) grows to the limits of our ability to manage that complexity. 5
  • 6. Software Testing: Taxonomy x By purposes x By scope • Correctness testing • implied in [BEIZER95] – Black-box – Unit testing – White-box – Component testing • Performance testing – Integration testing • Reliability testing – System testing – Robustness testing • or in [PERRY90] » Exception handling testing – Unit testing » Stress/load testing – String testing • Security testing – System testing (α test) x By life cycle phase[PERRY95] – Acceptance testing (β test) • Requirements phase testing • Design phase testing • Program phase testing • Evaluating test results • Installation phase testing • Acceptance testing • Testing changes: maintenance 6
  • 7. Correctness Testing x Needs some type of oracles x Black-box testing/behavioral testing • also: data-driven; input/output driven[1]; requirements-based[3] • Test data are derived solely from the program structure[9] • “Exhaustive input testing”[1] • But, what about omissions/extras in spec? x White-box testing/structural testing • also: logic-driven[1]; design-based[3] • Application of test data derived from the specified functional requirements without regard to the final program structure[9] • “Exhaustive path testing”[1] • But, what about omissions/extras in code? x Other than bugs, we may find: • Features • Specification problems • Design philosophy (e.g. core dumps v.s. error return code) 7
  • 8. Correctness Testing Methods/Tools x Control-flow testing • Trace control-flow using control-flow graph; coverage x Loop testing • A heuristic technique; should be combined with other methods Flow- • Applied when there is a loop in graph coverage x Data-flow testing testing • Trace data-flow using data-flow graph; coverage x Transaction-flow testing • Testing of on-line applications and batch-processing software • Has both control-flow and data-flow attributes x Domain testing • Software dominated by numerical processing x Syntax testing • Command-driven software and similar applications x Finite-state testing • Using finite-state machine model • motivated from hardware logic design • Excellent for testing menu-driven applications 8
  • 9. When to stop testing? x Trade-off between budget+time and quality • Part of acceptance testing x Stopping rules: • When reliability meets requirement – Statistical models » E.g. reliability growth models – Data gathering -- modeling --prediction – Not possible to calculate for ultra-dependable system » Because failure data is hard to accumulate • When out of resources: test case, money and/or time 9
  • 10. Testing is Controversial x Alternatives to testing • “human testing[MYERS79]” – inspections, walkthroughs, reviews • Engineering methods – Clean-room v.s. testing • Formal Verification v.s. Testing x Flames • Traditional coverage-based testing is flawed. • Testing can only prove the software is flawed. • Inspection/review more effective than testing? • “If we have good process, good quality, we don't need much testing” 10
  • 11. Conclusions x Complete testing is infeasible • Complexity problem • Equivalent to Turing halting problem x Software testing is immature • Crucial to software quality x Testing is more than debugging • For quality assurance, validation and reliability measurement x Rules of thumb • Efficiency effectiveness • Automation x When to stop: need good metrics • Reliability • Time budget 11
  • 12. List of References x [1][MYERS79] The art of software testing x [2][BEIZER95] Black-box Testing x [3][HETZEL88] The Complete Guide to Software Testing x [4][PHAM95] Software Reliability and Testing, pp29 x [5][KANER93] Testing Computer Software x [6][PERRY95] Effective Methods for Software Testing, William Perry, 1995 QA76.76.T48P47X x [7][BEIZER90] Software Testing Techniques x [8]http://www.cs.jmu.edu/users/foxcj/cs555/Unit12/Testing/index. htm x [9][PERRY90] A standard for testing application software, William E. Perry, 1990 12