Software Testing
Key concepts in software testing, focusing on coverage, verification, and pragmatic approaches. It differentiates between white box and black box testing, discussing various testing methods and criteria, including CFG-based coverage and combinatoric testing. The speaker emphasizes the importance of understanding input and output domains and introduces tools like classification trees for effective testing strategies.
Software Testing
E N D
Presentation Transcript
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