1. Evidence Based Software Testability Measurement
- Author
-
Guglielmo, L, DENARO, GIOVANNI, BONIZZONI, PAOLA, GUGLIELMO, LUCA, Guglielmo, L, DENARO, GIOVANNI, BONIZZONI, PAOLA, and GUGLIELMO, LUCA
- Abstract
Il test del software è un’attività chiave del ciclo di vita del software che richiede tempo e risorse per essere efficace. Uno degli aspetti fondamentali che influenza il costo delle attività di test e conseguentemente la loro efficacia nel rivelare i possibili difetti è la testabilità del software. La testabilità esprime quanto sia facile o difficile testare un artefatto software. La disponibilità delle stime sulla testabilità di un software e dei suoi artefatti può aiutare gli analisti nell’anticipare i costi dell’attività di test. Molti studi a riguardo sono stati svolti dal 1990 in poi. I primi studi si sono focalizzati principalmente nel fornire una definizione appropriata di testabilità del software, mentre i successivi hanno prestato maggiore attenzione ad individuare modi per rendere il software più testabile e per misurare la testabilità in maniera affidabile. Il nostro lavoro di ricerca si focalizza principalmente su quest’ultimo aspetto. L’attività di ricerca sui metodi per misurare la testabilità del software ha l’obiettivo principale di valutare la testabilità dei componenti del software al fine di migliorarne la testabilità e valutare l’impegno necessario durante l’attività di test. Gli approcci proposti allo stato dell’arte per misurare la testabilità possono essere categorizzati in: stima della testabilità ottenuta analizzando la sensibilità ai difetti e stima della testabilità ottenuta dall’analisi della struttura del codice. L’analisi della sensibilità ai difetti è stata molto popolare negli anni ’90, ma la ricerca in merito è progressivamente scemata a favore degli approcci che utilizzano le metriche statiche del software (che rappresentano le caratteristiche di design) per effettuare una stima della testabilità. Questi approcci hanno alcune limitazioni intrinseche, menzionate negli studi stessi, come l’essere costosi, oppure derivare le stime di testabilità in modo indiretto focalizzandosi sulle caratteristiche di desig, Software testing is a key activity of the software life-cycle that requires time and resources to be effective. One of the key aspects that influences the cost of the testing activities and ultimately the effectiveness of those activities for revealing the possible faults is software testability. Software testability expresses how difficult or easy it is to test a software artifact. The availability of estimates on the testability of the software under test and the components therein can support test analysts in anticipating the cost of testing, tuning the test plans, or pinpointing components that should undergo refactoring before testing. Several studies have been performed since the 1990 on the topic; the first ones focused more on giving an appropriate definition for software testability, while later ones focused on making software more testable and finding ways to measure software testability reliably. It is on this last aspect that we focused for this research work. Research on measuring software testability has the main objective of evaluating the testability of software components with the final goal of improving their testability, and better estimate the effort need in the testing phase. The current approaches proposed for estimating testability can mostly be categorized in: estimating testability by analyzing the fault-sensitivity of a software and estimating testability by analyzing the structure of the code of a software. Analyzing fault-sensitivity was really popular in the 90s, but the research on it has progressively dwindled in favor of the approach of using static software metrics, as representatives to the design characteristic of a software, to estimate the testability of the software. These approaches have some intrinsic limitations, admittedly highlighted in the studies, such as being costly or focusing on design characteristics that estimate testability only indirectly. In this research work we introduce a new technique for estimating software
- Published
- 2023