Training and Research

PhD Programme Courses/classes

Non monotonic reasoning

Credits: 3

Language: English

Teacher:  Matteo Cristani

Sustainable Embodied Mechanical Intelligence

Credits: 3

Language: English

Teacher:  Giovanni Gerardo Muscolo

Brain Computer Interfaces

Credits: 3

Language: English

Teacher:  Silvia Francesca Storti

A practical interdisciplinary PhD course on exploratory data analysis

Credits: 4

Language: English

Teacher:  Prof. Vincenzo Bonnici (Università di Parma)

Multimodal Learning and Applications

Credits: 5

Language: English

Teacher:  Cigdem Beyan

Introduction to Blockchain

Credits: 3

Language: English

Teacher:  Sara Migliorini

Autonomous Agents and Multi-Agent Systems

Credits: 5

Language: English

Teacher:  Alessandro Farinelli

Cyber-physical systems security

Credits: 3

Language: English/Italian

Teacher:  Massimo Merro

Foundations of quantum languages

Credits: 3

Language: English

Teacher:  Margherita Zorzi

Advanced Data Structures for Textual Data

Credits: 3

Language: English

Teacher:  Zsuzsanna Liptak

AI and explainable models

Credits: 5

Language: English

Teacher:  Gloria Menegaz, Lorenza Brusini

Automated Software Testing

Credits: 4

Language: English

Teacher:  Mariano Ceccato

Elements of Machine Teaching: Theory and Appl.

Credits: 3

Language: English

Teacher:  Ferdinando Cicalese

Introduction to Quantum Machine Learning

Credits: 4

Language: English

Teacher:  Alessandra Di Pierro

Laboratory of quantum information in classical wave-optics analogy

Credits: 3

Language: English

Teacher:  Claudia Daffara

Credits

4

Language

English

Class attendance

Free Choice

Location

VERONA

Learning objectives

Software testing is a cornerstone activity in software development, conducted to identify defects by checking the program execution across several testing scenarios. Considering that manually writing test cases for all the important scenarios might be quite time consuming and expensive, several research approaches have been proposed to automate the generation of test cases that (i) assess many features of the software under development and (ii) are likely to reveal defects.
This PhD course will cover the foundational techniques proposed in literature to automatically write test cases, including those based on symbolic execution, concrete-symbolic execution and evolutionary algorithms. Subsequently, more recent approaches will be covered, that have been elaborated and proposed to automatically write test cases for diverse application domains, such as for web application, Android apps, blockchain smart-contracts and REST APIs.
The course will also include practical hands-on activities, where participants are supposed to develop a small project to implement one of the presented approaches to automatically write test cases for a domain of their interest. The exam consists in presenting this project at the end of the course.

Prerequisites and basic notions

Basic knowledge of programming, especially in Java

Program

The course program includes the following topics:
- Foundations and terminology of software testing
- Automated generation of test cases: Concrete symbolic execution, Search based, Genetic algorithms
- Automated generation of test cases for different domains: Web application, Smartphone apps, Blockchain smart contracts, REST APIs.
- Tools to support automated generation of test cases

Bibliography

Visualizza la bibliografia con Leganto, strumento che il Sistema Bibliotecario mette a disposizione per recuperare i testi in programma d'esame in modo semplice e innovativo.

Didactic methods

Frontal lectures, practical laboratory and discussions.

Learning assessment procedures

Project at the end of the course.

Students with disabilities or specific learning disorders (SLD), who intend to request the adaptation of the exam, must follow the instructions given HERE

Assessment

Clarity, quality and completeness of the project.

Criteria for the composition of the final grade

Project evaluation.

Sustainable Development Goals - SDGs

This initiative contributes to the achievement of the Sustainable Development Goals of the UN Agenda 2030. More information on sustainability