Testing, Verification and Validation (6 ECTS)

The purpose of this course is to understand the role of testing, verification and validation in the design and analysis of systems, and to provide an advanced background on related methods and tools.

The course introduces the basis concepts of formal modelling and specification techniques that can be used for verification and validation: model checking, theorem proving, static analysis and abstract interpretation.

The course also presents the fundamentals of software testing. It provides an understanding of testing problems, and covers the major test design techniques. Emphasis is put on the need for rigorous, semi-automated approaches.


Suggested readings:

T. Kropf: Introduction to Formal Hardware Verification, Springer, 1999.

B. Berard, et al.: System and Software Verification – Model-Checking Techniques and Tools, Springer, 2001.

C. Hankin, F. Nielson, H. R. Nielson: Principles of Program Analysis, Springer, 1999.

A. V. Aho, M. S. Lam, R. Sethi, J. D. Ullman: Compilers: Principles, Techniques, and Tools, Addison-Wesley, 2006.

P. Cousot, R. Cousot: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints, POPL77, pages 238–252, Los Angeles, California, 1977.

P. Cousot, R. Cousot: Systematic Design of Program Analysis Frameworks, POPL79, pages 269–282, San Antonio, Texas, 1979.

B. Beizer: Software Testing Techniques, Van Nostrand Reinhold, 1990 (2nd edition)

R. D. Craig, S. P. Jaskiel: Systematic Software Testing, Artech House, 2002

A. Robinson, A. Voronkov (eds.): Handbook of Automated Reasoning, Volume I, North Holland, 2001

ReSIST Courseware (right click and select "Save as" to download)  

Courseware examples and locations where taught:

Line of teaching

View this course in the RKBExplorer

Back to MSc Curriculum.