1 / 8

Key Concepts in Software Testing: Coverage, Verification, and Pragmatic Approaches

This summary covers essential concepts in software testing, building on knowledge from Chapter 1. It distinguishes between white-box and black-box testing, clarifying that testing aims to demonstrate that some executions fulfill specifications, while verification aims to show that all possible executions meet them. We explore coverage criteria, including CFG-based coverage, node/edge, path, and prime paths. Additionally, we discuss test case design through domain partitioning, combinatoric testing, and classification trees, highlighting practical techniques for effective test execution.

reia
Download Presentation

Key Concepts in Software Testing: Coverage, Verification, and Pragmatic Approaches

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Testing Wishnu Prasetya Email: wishnu@cs.uu.nl URL: www.cs.uu.nl/~wishnu

  2. Content • I assume you have read Chapter 1, so I will just give you a summary of the chapter: • Coverage • White box testng • Black box testing

  3. Testing vs Verification tax(income) { if(income  10000) return 0 ; if (income  20000) return 0.1 * income ; return 0.2 * income ; } • Verification : show that all possible executions satisfy the given specification. • Testing : show that at least few executions satisfy the specification. • Pragmatic: in between ?

  4. Testing, some basic concepts • White box testing  more information • You can analyze the program • You can instrument it • You can use it to define your adequacy criterion, etc. • Black box testing • how can we do it then? • More testing is better than less, but how to decide when it is reasonable to stop? • Coverage criterion.

  5. CFG-based coverage • Node or edge coverage • Path coverage • Prime paths • Linearly independent paths

  6. Black box testing • We still know the program’s input and output domains. • Investigate them, for deciding a coverage criterion. • Typical approaches: • Domain partitioning • Combinatoric testing

  7. Classification tree • Categories/classifications • Classes and leaf classes • Abstract and concrete test case • CTE tool

  8. Combinatoric tetsing • All-combinations suite, Each-class-once suite • Or use some expressions to specify the suite, e.g.: (Student Grade) + Course

More Related