Software Test


Automated Test Generation

This course provides an understanding of automating software testing using program analysis with the goal of intelligently and algorithmically creating tests. The course covers search-based test generation, combinatorial and random testing while highlighting the challenges associated with the use of automatic test generation. You will learn: Understand algorithmic test generation techniques and their use in developer testing and continuous integration. Understand how to automatically generate test cases with assertions. Have a working knowledge and experience in static and dynamic generation of tests. Have an overview knowledge in search-based testing and the use of machine learning for test generation.

Model-based development: Theory and practice (MBD-TP)

The aim of this course is to provide participants with the principles behind model-driven development of software systems and the application of such a methodology in practice. Modelling is an effective solution to reduce problem complexity and, as a consequence, to enhance time-to-market and properties of the final product.

Quality assurance - Catching bugs by formal verification

The aim of the course is to introduce the participants into methods and tools for verifying systems that need to react to external stimuli. The methods use system models with precise formal semantics and will span model-checking as well as deductive verification. A set of simple examples as well as real-world applications will be used throughout the course to illustrate the methods and their tool support. The objective of the course is to understand the underpinning theories of formal verification, and learn how to apply tool support in order to verify system models.

Quality assurance - Model based testing in practice

This course deals with model-based testing, a class of technologies shown to be effective and efficient in assessing the quality and correctness of large software systems. Throughout the course the participants will learn how to design and use model-based testing tools, how to create realistic models and how to use these models to automate the testing process in their organisation.