Skip to main content
CODE 121621
ACADEMIC YEAR 2026/2027
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INFO-01/A
LANGUAGE English
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester

OVERVIEW

The teaching unit introduces the fundamentals of software quality and testing practices, with particular attention to test automation, integration into modern software development processes, and security aspects. Students will acquire both theoretical knowledge and practical skills in manual and automated testing techniques, using state-of-the-art tools and frameworks. Software quality is a central element in ensuring reliability, performance, and end-user satisfaction.

AIMS AND CONTENT

LEARNING OUTCOMES

The teaching unit aims to provide students with a solid understanding of the fundamentals of software quality and test automation, and to familiarize them with manual and automated tools used to support testing practices.
Students will be able to:
(a) understand the fundamental principles of software quality and their role in modern software engineering;
(b) design and apply systematic testing strategies;
(c) develop and maintain automated test suites using standard tools and frameworks;
(d) apply practices supporting continuous integration;
(e) evaluate software systems with respect to quality attributes such as performance, reliability, security, modularity, and usability.

AIMS AND LEARNING OUTCOMES

Students will learn the fundamentals of testing software systems, with particular attention to the use of automated testing tools. Students will analyse the multiple dimensions of the problem and learn methodologies, approaches, and techniques for verifying the quality of complex software systems.


By the end of the teaching unit, students will be able to:
• Understand the fundamental principles of software quality
• Design and apply systematic testing strategies
• Develop and maintain automated tests, also using AI
• Integrate testing into development processes
• Evaluate software systems with respect to quality attributes such as performance, reliability, security, and usability

PREREQUISITES

  • Basic knowledge of programming and scripting (Java, Python, Node, Bash)
  • Fundamentals of software engineering

TEACHING METHODS

The teaching unit combines the presentation of theoretical concepts with practical exercises. It is dialogue-oriented and based on a practical approach. Students will be assigned mandatory tasks that must be completed during the course.

Students who hold valid certificates relating to Specific Learning Difficulties (SLD), disabilities or other educational needs are invited to contact the lecturer and the school’s disability liaison officer at the start of the course to agree on any teaching arrangements which, whilst respecting the course objectives, take into account individual learning styles. 

The contact details for the university’s disability liaison officer are available at the following link: https://unige.it/commissioni/comitatoperlinclusionedeglistudenticondisabilita. 

 

SYLLABUS/CONTENT

The teaching unit is organized into thematic modules covering the whole process of software quality assessment, from the definition of quality attributes to test design and automation, their integration into development processes, security testing, usability, and the use of AI to support testing activities.


Fundamentals of software quality and testing: basic concepts of software quality, quality attributes, functional and security testing, essential testing techniques, manual and automated testing, and the role of testing in the development lifecycle.
Testing strategies and test automation: systematic test design, data-driven testing, end-to-end testing, testing levels, good automation practices, tools for unit testing, and main automation approaches, including capture/replay and programmable tests.
Web testing, UI automation, and AI for testing: testing of web applications, automation of functional tests on user interfaces, use of Selenium IDE and Selenium WebDriver, cross-browser testing, and use of AI for test generation, maintenance, and execution support.
Integration into development processes, Continuous Integration and Continuous Deployment: integration of testing into software development processes, automation of test execution, use of Continuous Integration and Continuous Deployment pipelines, and monitoring of quality during system evolution.
Security testing and automated tools: fundamentals of cybersecurity, the HTTP protocol, client-side vulnerabilities, command injection, Denial of Service attacks, and the use of automated tools for security testing, including Burp Suite, wpscan, and sqlmap.
Quality assessment: construction of test suites including unit, end-to-end, and security tests; analysis of quality attributes such as performance, reliability, security, and usability; and production of testing reports

RECOMMENDED READING/BIBLIOGRAPHY

  • Web Application Security: Exploitation and Countermeasures for Modern Web Applications
    by Andrew Hoffman
  • Web Security Academy - https://portswigger.net/web-security/learning-path
  • Hands-On Selenium WebDriver with Java by Boni Garcia

TEACHERS AND EXAM BOARD

Exam Board

ENRICO CAMBIASO (President)

FILIPPO RICCA (President)

LESSONS

LESSONS START

https://easyacademy.unige.it/portalestudenti/index.php?view=easycourse&_lang=it&include=corso

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

The objective of the verification procedure is to quantify, for each student, the level of achievement of the educational objectives. The verification procedure consists of evaluating certain guided laboratories and a written test.

EXAMINATION

The exam consists of the following activities:

·       Laboratory activities

·       Written test

Laboratory activities

The course includes laboratory activities to be carried out. For some of these activities, the submission of the work done will be required and evaluated. For others, students' participation will simply be monitored. Alternative activities to be submitted via AulaWeb will be proposed for those (e.g., working students) who are unable to attend laboratory activities.

Written test

The written test will consist of multiple-choice questions. The questions will be both theoretical and practical and will focus on the topics/tools covered in class. During the lessons, some examples of possible questions and exercises for each topic will be discussed so that the type of test is clear at the end of the course.

Guidelines for students with certified Specific Learning Disorders, disabilities, or other special educational needs are available at https://corsi.unige.it/en/corsi/11964/studenti-disabilita-dsa

ASSESSMENT METHODS

The laboratory activities aim to assess the understanding of the proposed tools and techniques. The written test has the dual objective of verifying the knowledge of the fundamental aspects of the discipline and assessing the students' participation in the guided laboratories.

FURTHER INFORMATION

Students with valid certifications for Specific Learning Disorders (SLD) may request accommodations for exams at least 7 days prior to the exam date by filling out the “accommodation request form” (available via online services at https://modulionline.unige.it/richiesta-adattamenti# no-back), which will be automatically forwarded by the system to the instructor in charge of the course and to the faculty liaison for students with disabilities and SLDs in their School/Department.