Training and Research

PhD Programme Courses/classes

This page shows the PhD course's training activities for the academic year 2024/2025. Further activities will be added during the year. Please check regularly for updates!

Instructions for teachers: lesson management

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

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.

Scheduled Lessons

When Classroom Teacher topics
Monday 27 January 2025
13:30 - 16:30
Duration: 3:00 AM
Ca' Vignal 1 - C [90 - terra] Mariano Ceccato Introduzione al Corso. Esecuzione concreta simbolica per la generazione automatizzata di casi di test
Wednesday 05 February 2025
13:00 - 16:30
Duration: 3:30 AM
Ca' Vignal 1 - B [89 - terra] Mariano Ceccato Formulazione del problema della generazione automatizzata di casi di test come problema di ottimizzazione. Approcci basati su euristiche di ricerca. Algoritmi genetici.
Wednesday 12 February 2025
13:00 - 16:30
Duration: 3:30 AM
Ca' Vignal 1 - C [90 - terra] Mariano Ceccato Generazione automatizzata di casi di test per applicazioni web. Approccio bloack box, approccio white box, oracolo generic.
Wednesday 19 February 2025
13:00 - 16:00
Duration: 3:00 AM
Ca' Vignal 1 - C [90 - terra] Mariano Ceccato Generazione automatizzata di casi di test per smart contracts.
Wednesday 26 February 2025
13:00 - 16:00
Duration: 3:00 AM
Ca' Vignal 1 - C [90 - terra] Mariano Ceccato Difetti e vulnerabilità in smartphone apps. Generazione automatizzata di casi di test per smartphone apps.