80 likes | 216 Views
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.
E N D
Software Testing Wishnu Prasetya Email: wishnu@cs.uu.nl URL: www.cs.uu.nl/~wishnu
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
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 ?
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.
CFG-based coverage • Node or edge coverage • Path coverage • Prime paths • Linearly independent paths
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
Classification tree • Categories/classifications • Classes and leaf classes • Abstract and concrete test case • CTE tool
Combinatoric tetsing • All-combinations suite, Each-class-once suite • Or use some expressions to specify the suite, e.g.: (Student Grade) + Course