Course ObjectiveAfter completing this course, the students will be able to:
1. Appropriately use terms specific to the testing process.
2. Analyze a software-related failure or accident and report on it.
3. Given a software requirements specification (SRS), can design and
implement a comprehensive testing plan and produce testing documentation
according to modern software engineering standards.
4. Practice software testing in a professional, responsible and ethic
5. Identify possible discrepancies between software testing as taught
in an academic context and software testing as it happens in real IT
Course ContentTesting 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 (standalone or embedded in a smart system).
This course teaches students how to test software in the broad context
of systems engineering. It provides an introduction to software testing
with an emphasis on technical activities like test generation,
selection, execution and assessment and on non-functional requirements
such as safety. The course tries to answer a few questions, such as:
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-intensive system?
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,
testing, hazard analysis.
Teaching MethodsLectures, compulsory homework assignments and a mini-project.
Method of AssessmentCompulsory practical assignments (FAIL and SYS), a mini-project (PROJ)
and a written exam (EXAM). The final grade is calculated as: FINAL
GRADE= 0,6*PRAC+0,4*EXAM, where PRAC= FAIL*0,2 + SYS*0,3 + PROJ*0,5. A
pass requires both components to be >=5.5. It is possible to resit the
exam, but not the homework assignments.
Entry RequirementsProgramming skills in Java, C++ or Python
LiteratureA. Mathur, Foundations of software testing, Addison-Wesley Professional;
2 edition (February 13, 2014), 2014, *ISBN: * 978-8131794760
Target AudiencemCS, mAI
Additional InformationAll material is available in Canvas.
|Language of Tuition||English|
|Faculty||Faculty of Science|
|Course Coordinator||dr. N. Silvis-Cividjian|
|Examiner||dr. N. Silvis-Cividjian|
dr. N. Silvis-Cividjian
You need to register for this course yourself
Last-minute registration is available for this course.
|Teaching Methods||Lecture, Practical|
This course is also available as: