Software Testing

2019-2020

Course Objective

After 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
manner.
5. Identify possible discrepancies between software testing as taught
in an academic context and software testing as it happens in real IT
companies.

Course Content

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 (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
planned.
Topics: boundary value analysis, equivalence partitioning, combinatorial
testing, model based testing, control-flow testing, data-flow testing,
mutation testing, regression testing, inspections, automated testing,
system
testing, hazard analysis.

Teaching Methods

Lectures, compulsory homework assignments and a mini-project.

Method of Assessment

Compulsory 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 Requirements

Programming skills in Java, C++ or Python

Literature

A. Mathur, Foundations of software testing, Addison-Wesley Professional;
2 edition (February 13, 2014), 2014, *ISBN: * 978-8131794760

Target Audience

mCS, mAI

Additional Information

All material is available in Canvas.

General Information

Course Code X_400439
Credits 6 EC
Period P5
Course Level 400
Language of Tuition English
Faculty Faculty of Science
Course Coordinator dr. N. Silvis-Cividjian
Examiner dr. N. Silvis-Cividjian
Teaching Staff dr. N. Silvis-Cividjian

Practical Information

You need to register for this course yourself

Last-minute registration is available for this course.

Teaching Methods Lecture, Practical
Target audiences

This course is also available as: