- Familiarization with basic terminology in software testing.
- Familiarization with techniques and tools used for test generation,
execution and adequacy measument.
- Familiarization with software testing literature in a specific area
by independent reading of selected research publications.
Testing is a method to improve software quality. Realistically,
software testing is a trade-off between budget, time and quality. It is
impossible to test everything so choices have to be made. Students
learn how to make these choices and systematically test a software
product based only on its requirements or when the code is also
This course provides an introduction to software testing with an
emphasis on technical activities like test generation, selection,
execution and assessment. The course tries to answer a few
questions like: How to design test cases? When to automate testing? When
to stop testing? What to
test when a new version of the product is ready? How to test a safety
critical software? How to predict how many faults are in a program?
A few guest lectures showing examples of testing in industry are also
Topics: boundary value analysis, equivalence partitioning, combinatorial
testing, model based
testing, control-flow testing, data-flow testing, mutation
testing, regression testing, inspections, automated testing.
Form of tuition
Lectures and compulsory homework assignments.
Type of assessment
Compulsory practical assignments and written exam. The final grade is
calculated as: FINAL GRADE= 0,6*PRAC+0,4*EXAM. A pass requires both
components to be >=5.5. It is possible to resit the exam, but not the
A. Mathur, Foundations of software testing, Addison-Wesley Professional;
2 edition (February 13, 2014), 2014, *ISBN: * 978-8131794760
Recommended background knowledge
Programming skills in Java or Python
All material is available in Canvas.