Course Organization Course Software Testing & Verification 2014/15 Wishnu Prasetya Learning Goals • Know a selected set of basic concepts, theories, and techniques of Software Testing and Software Verification They represent two complementary approaches towards software correctness : pragmatism vs completeness. • Able to apply some of these theories and techniques in real problems. 2 What can you expect in this course? • Foundation: – A quite technical foundation of software testing – A mathematical-based foundation of software verification • background in set theory and predicate logic is needed! • Project & assignments 3 Site & Materials • www.cs.uu.nl/docs/vakken/pc • Paul Ammann and Jeff Offutt, Introduction to Software Testing, Cambridge University Press, Cambridge, UK, ISBN 0-52188-038-1, 2008. • Lecture Notes (see the website), for the program verification part. 4 Project & assignment • Testing Project, in 2 iterations – work in teams of 2-3 – Iter-1 : development, unit testing, white box testing, testability – iter-2 : development, system testing, black/gray box testing – each phase is closed by a demonstration • Proving program correctness, in 2 iterations • Home works (4x) 5 Grading • In total 6 components: project (2 iterations), proof (2 iterations), 2x exams • raw = 0.95 * ( 0.3 * average project + 0.2 * average proof + 0.5 * average exams ) + max. 0.5pt from home work • final = if average exams >= 3.5 then raw else capped at 5.4 • resit ... as in the OER (4.0 grade < 5.5) 6 What did we learn 7 Learning goal for testing Know a selected set of basic concepts, theories, and techniques of software testing White box testing • control flow based testing • testing complex predicates • data flow-based testing Able to apply some of these theories and techniques in real problems. yes, projects on unit testing and system testing Black box testing • partition-based testing • model-based testing integration testing OO testing Generating complex strings 8