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
Automated Software Testing (2023/2024)
Teacher
Referent
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
Didactic methods
Frontal lectures, practical laboratory and discussions.
Learning assessment procedures
Project at the end of the course.
Assessment
Clarity, quality and completeness of the project.
Criteria for the composition of the final grade
Project evaluation.
