Automatically identifying sufficient object builders from Module APIs

"Various approaches to software analysis (e.g. test input generation, software model checking) require engineers to (manually) identify a subset of a module’s methods in order to drive the analysis. Given a module to be analyzed, engineers typically select a subset of its methods to be conside...

Descripción completa

Guardado en:
Detalles Bibliográficos
Autores principales: Ponzio, Pablo, Bengolea, Valeria, Politano, Mariano, Aguirre, Nazareno, Frías, Marcelo
Formato: Ponencias en Congresos acceptedVersion
Lenguaje:Inglés
Publicado: 2020
Materias:
Acceso en línea:http://ri.itba.edu.ar/handle/123456789/1919
Aporte de:
id I32-R138-123456789-1919
record_format dspace
spelling I32-R138-123456789-19192022-12-07T14:13:40Z Automatically identifying sufficient object builders from Module APIs Ponzio, Pablo Bengolea, Valeria Politano, Mariano Aguirre, Nazareno Frías, Marcelo INTERFACES DE PROGRAMACION DE APLICACIONES INGENIERIA DE SOFTWARE ALGORITMOS EVOLUTIVOS VERIFICACION DE SOFTWARE "Various approaches to software analysis (e.g. test input generation, software model checking) require engineers to (manually) identify a subset of a module’s methods in order to drive the analysis. Given a module to be analyzed, engineers typically select a subset of its methods to be considered as object builders to define a so-called driver, that will be used to automatically build objects for analysis, e.g., combining them non-deterministically, randomly, etc. This requires a careful inspection of the module and its API, since both the relative exhaustiveness of the analysis (leaving important methods out may systematically avoid generating different objects), as well as its efficiency (the different bounded combinations of methods grows exponentially as the number of methods increases), are affected by the selection. We propose an approach for automatically selecting a set of builders from a module’s API, based on an evolutionary algorithm that favors sets of methods whose combinations lead to producing larger sets of objects. The algorithm also takes into account other characteristics of these sets of methods, trying to prioritize the selection of methods with less and simpler parameters. As the implementation of this evolutionary mechanism requires in principle handling and comparing large sets of objects, and this grows very quickly both in terms of space and running times, we employ an abstraction of sets of objects, called field extensions, that involves using the field values of the objects in the set instead of the actual objects, and enables us to effectively implement our mechanism. An experimental assessment on a benchmark of stateful classes shows that our approach can automatically identify sets of builders that are sufficient (can be used to create any instance of the module) and minimal (do not contain superfluous methods), in a reasonable time." 2020-03-26T18:26:51Z 2020-03-26T18:26:51Z 2019 Ponencias en Congresos info:eu-repo/semantics/acceptedVersion 978-3030-16-721-9 0302-9743 http://ri.itba.edu.ar/handle/123456789/1919 en info:eu-repo/semantics/altIdentfier/doi/10.1007/978-3-030-16722-6_25 application/pdf
institution Instituto Tecnológico de Buenos Aires (ITBA)
institution_str I-32
repository_str R-138
collection Repositorio Institucional Instituto Tecnológico de Buenos Aires (ITBA)
language Inglés
topic INTERFACES DE PROGRAMACION DE APLICACIONES
INGENIERIA DE SOFTWARE
ALGORITMOS EVOLUTIVOS
VERIFICACION DE SOFTWARE
spellingShingle INTERFACES DE PROGRAMACION DE APLICACIONES
INGENIERIA DE SOFTWARE
ALGORITMOS EVOLUTIVOS
VERIFICACION DE SOFTWARE
Ponzio, Pablo
Bengolea, Valeria
Politano, Mariano
Aguirre, Nazareno
Frías, Marcelo
Automatically identifying sufficient object builders from Module APIs
topic_facet INTERFACES DE PROGRAMACION DE APLICACIONES
INGENIERIA DE SOFTWARE
ALGORITMOS EVOLUTIVOS
VERIFICACION DE SOFTWARE
description "Various approaches to software analysis (e.g. test input generation, software model checking) require engineers to (manually) identify a subset of a module’s methods in order to drive the analysis. Given a module to be analyzed, engineers typically select a subset of its methods to be considered as object builders to define a so-called driver, that will be used to automatically build objects for analysis, e.g., combining them non-deterministically, randomly, etc. This requires a careful inspection of the module and its API, since both the relative exhaustiveness of the analysis (leaving important methods out may systematically avoid generating different objects), as well as its efficiency (the different bounded combinations of methods grows exponentially as the number of methods increases), are affected by the selection. We propose an approach for automatically selecting a set of builders from a module’s API, based on an evolutionary algorithm that favors sets of methods whose combinations lead to producing larger sets of objects. The algorithm also takes into account other characteristics of these sets of methods, trying to prioritize the selection of methods with less and simpler parameters. As the implementation of this evolutionary mechanism requires in principle handling and comparing large sets of objects, and this grows very quickly both in terms of space and running times, we employ an abstraction of sets of objects, called field extensions, that involves using the field values of the objects in the set instead of the actual objects, and enables us to effectively implement our mechanism. An experimental assessment on a benchmark of stateful classes shows that our approach can automatically identify sets of builders that are sufficient (can be used to create any instance of the module) and minimal (do not contain superfluous methods), in a reasonable time."
format Ponencias en Congresos
acceptedVersion
author Ponzio, Pablo
Bengolea, Valeria
Politano, Mariano
Aguirre, Nazareno
Frías, Marcelo
author_facet Ponzio, Pablo
Bengolea, Valeria
Politano, Mariano
Aguirre, Nazareno
Frías, Marcelo
author_sort Ponzio, Pablo
title Automatically identifying sufficient object builders from Module APIs
title_short Automatically identifying sufficient object builders from Module APIs
title_full Automatically identifying sufficient object builders from Module APIs
title_fullStr Automatically identifying sufficient object builders from Module APIs
title_full_unstemmed Automatically identifying sufficient object builders from Module APIs
title_sort automatically identifying sufficient object builders from module apis
publishDate 2020
url http://ri.itba.edu.ar/handle/123456789/1919
work_keys_str_mv AT ponziopablo automaticallyidentifyingsufficientobjectbuildersfrommoduleapis
AT bengoleavaleria automaticallyidentifyingsufficientobjectbuildersfrommoduleapis
AT politanomariano automaticallyidentifyingsufficientobjectbuildersfrommoduleapis
AT aguirrenazareno automaticallyidentifyingsufficientobjectbuildersfrommoduleapis
AT friasmarcelo automaticallyidentifyingsufficientobjectbuildersfrommoduleapis
_version_ 1765660870481805312