This thesis is about the development of a testing tool that ensures seamless backward compatibility during the release of two different company software. Tests are a crucial element used to verify behaviour of a software after some changes in the code, but unfortunately there are a lot of possible tests that can be conducted and understanding which best fits our goals is one of the first issues. There are tests to ensure performance during heavy workload, security through vulnerability scanning, single-units' correctness and many more. But we need a tool to efficiently test the main functionalities of the two company software, possibly with ad hoc solutions for what our purposes are. Automated testing tools are designed to automate various aspects of the software development lifecycle. These tools are created to streamline, enhance, and expedite different stages of software development, maintenance, and deployment. Many tools exist and they are divided in groups depending on what the purpose of their test is. That's why we developed a system composed by both our software and open-source public projects to have a unique tool able to test big industrial software, without external costs. We used the third-party integration approach to design back end that was able to communicate with both the company software and with both the provided front end. The result is the project ABCC, a tool to efficiently assess backward compatibility throughout new releases of a software. Our tool's testing feature falls into the branch of functional testing, overseeing all the aspects of the functionalities that we wanted to test on the property software. Unlike existing solutions available online, our creation not only focuses on targeted compatibility testing but also leverages an integrated approach with minimal external dependencies. This amalgamation not only guarantees cost-effectiveness but also streamlines the intricate process of ensuring the enduring harmony of software evolution.

Questa tesi tratta dello sviluppo di uno strumento di testing che garantisce una compatibilità retroattiva senza soluzione di continuità durante il rilascio di due diverse applicazioni software aziendali. I test sono un elemento cruciale utilizzato per verificare il comportamento di un software dopo alcune modifiche nel codice, ma sfortunatamente esistono molti possibili test che possono essere condotti e comprendere quale si adatti meglio ai nostri obiettivi è uno dei primi problemi. Ci sono test per garantire le prestazioni durante carichi di lavoro pesanti, per la sicurezza attraverso la scansione delle vulnerabilità, per la correttezza delle singole unità e molti altri. Abbiamo però bisogno di uno strumento per testare efficacemente le principali funzionalità delle due applicazioni software aziendali, possibilmente con soluzioni ad hoc per i nostri scopi. Gli strumenti di testing automatizzati sono progettati per automatizzare vari aspetti del ciclo di sviluppo del software. Questi strumenti sono creati per semplificare, migliorare e accelerare diverse fasi dello sviluppo del software, della manutenzione e della distribuzione. Esistono molti strumenti e sono suddivisi in gruppi in base allo scopo del loro test. Ecco perché abbiamo sviluppato un sistema composto sia dal nostro software che da progetti pubblici open source per avere uno strumento unico in grado di testare software industriale di grandi dimensioni, senza costi esterni. Abbiamo utilizzato l'approccio di integrazione di terze parti per progettare il backend in grado di comunicare sia con il software aziendale che con il frontend fornito. Il risultato è il progetto ABCC, uno strumento per valutare efficacemente la compatibilità retroattiva durante i nuovi rilasci di un software. La funzione di testing del nostro strumento rientra nella categoria del testing funzionale, che supervisiona tutti gli aspetti delle funzionalità che volevamo testare nel software proprietario. A differenza delle soluzioni esistenti disponibili online, la nostra creazione non si concentra solo sul testing mirato della compatibilità, ma sfrutta anche un approccio integrato con poche dipendenze esterne. Questa fusione garantisce non solo la convenienza economica ma semplifica anche il complesso processo di garantire la duratura armonia dell'evoluzione del software.

ABCC - Automated Backward Compatibility Checker

Di SALVO, JOSEPH
2022/2023

Abstract

This thesis is about the development of a testing tool that ensures seamless backward compatibility during the release of two different company software. Tests are a crucial element used to verify behaviour of a software after some changes in the code, but unfortunately there are a lot of possible tests that can be conducted and understanding which best fits our goals is one of the first issues. There are tests to ensure performance during heavy workload, security through vulnerability scanning, single-units' correctness and many more. But we need a tool to efficiently test the main functionalities of the two company software, possibly with ad hoc solutions for what our purposes are. Automated testing tools are designed to automate various aspects of the software development lifecycle. These tools are created to streamline, enhance, and expedite different stages of software development, maintenance, and deployment. Many tools exist and they are divided in groups depending on what the purpose of their test is. That's why we developed a system composed by both our software and open-source public projects to have a unique tool able to test big industrial software, without external costs. We used the third-party integration approach to design back end that was able to communicate with both the company software and with both the provided front end. The result is the project ABCC, a tool to efficiently assess backward compatibility throughout new releases of a software. Our tool's testing feature falls into the branch of functional testing, overseeing all the aspects of the functionalities that we wanted to test on the property software. Unlike existing solutions available online, our creation not only focuses on targeted compatibility testing but also leverages an integrated approach with minimal external dependencies. This amalgamation not only guarantees cost-effectiveness but also streamlines the intricate process of ensuring the enduring harmony of software evolution.
ING - Scuola di Ingegneria Industriale e dell'Informazione
5-ott-2023
2022/2023
Questa tesi tratta dello sviluppo di uno strumento di testing che garantisce una compatibilità retroattiva senza soluzione di continuità durante il rilascio di due diverse applicazioni software aziendali. I test sono un elemento cruciale utilizzato per verificare il comportamento di un software dopo alcune modifiche nel codice, ma sfortunatamente esistono molti possibili test che possono essere condotti e comprendere quale si adatti meglio ai nostri obiettivi è uno dei primi problemi. Ci sono test per garantire le prestazioni durante carichi di lavoro pesanti, per la sicurezza attraverso la scansione delle vulnerabilità, per la correttezza delle singole unità e molti altri. Abbiamo però bisogno di uno strumento per testare efficacemente le principali funzionalità delle due applicazioni software aziendali, possibilmente con soluzioni ad hoc per i nostri scopi. Gli strumenti di testing automatizzati sono progettati per automatizzare vari aspetti del ciclo di sviluppo del software. Questi strumenti sono creati per semplificare, migliorare e accelerare diverse fasi dello sviluppo del software, della manutenzione e della distribuzione. Esistono molti strumenti e sono suddivisi in gruppi in base allo scopo del loro test. Ecco perché abbiamo sviluppato un sistema composto sia dal nostro software che da progetti pubblici open source per avere uno strumento unico in grado di testare software industriale di grandi dimensioni, senza costi esterni. Abbiamo utilizzato l'approccio di integrazione di terze parti per progettare il backend in grado di comunicare sia con il software aziendale che con il frontend fornito. Il risultato è il progetto ABCC, uno strumento per valutare efficacemente la compatibilità retroattiva durante i nuovi rilasci di un software. La funzione di testing del nostro strumento rientra nella categoria del testing funzionale, che supervisiona tutti gli aspetti delle funzionalità che volevamo testare nel software proprietario. A differenza delle soluzioni esistenti disponibili online, la nostra creazione non si concentra solo sul testing mirato della compatibilità, ma sfrutta anche un approccio integrato con poche dipendenze esterne. Questa fusione garantisce non solo la convenienza economica ma semplifica anche il complesso processo di garantire la duratura armonia dell'evoluzione del software.
File allegati
File Dimensione Formato  
2023_10_Di Salvo.pdf

accessibile in internet per tutti

Descrizione: Tesina
Dimensione 6.44 MB
Formato Adobe PDF
6.44 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/209761