Despite the recent improvements in automatic test case generation, handling complex data structures as test inputs is still an open problem. Search-based approaches can generate sequences of method calls that instantiate structured inputs to exercise a relevant portion of the code, but fall short in building inputs to execute program elements whose reachability is determined by the structural features of the input structures themselves. Symbolic execution techniques can effectively handle structured inputs, but do not identify the sequences of method calls that instantiate the input structures through legal interfaces. In this paper, we propose a new approach to automatically generate test cases for programs with complex data structures as inputs. We use symbolic execution to generate path conditions that characterise the dependencies between the program paths and the input structures, and convert the path conditions to optimisation problems that we solve with search-based techniques to produce sequences of method calls that instantiate those inputs. Our preliminary results show that the approach is indeed effective in generating test cases for programs with complex data structures as inputs, thus opening a promising research direction.

Braione, P., Denaro, G., Mattavelli, A., Pezze', M. (2017). Combining symbolic execution and search-based testing for programs with complex heap inputs. In Proceedings of 26th International Symposium on Software Testing and Analysis (pp.90-101). Association for Computing Machinery, Inc [10.1145/3092703.3092715].

Combining symbolic execution and search-based testing for programs with complex heap inputs

BRAIONE, PIETRO;DENARO, GIOVANNI;PEZZE', MAURO
2017

Abstract

Despite the recent improvements in automatic test case generation, handling complex data structures as test inputs is still an open problem. Search-based approaches can generate sequences of method calls that instantiate structured inputs to exercise a relevant portion of the code, but fall short in building inputs to execute program elements whose reachability is determined by the structural features of the input structures themselves. Symbolic execution techniques can effectively handle structured inputs, but do not identify the sequences of method calls that instantiate the input structures through legal interfaces. In this paper, we propose a new approach to automatically generate test cases for programs with complex data structures as inputs. We use symbolic execution to generate path conditions that characterise the dependencies between the program paths and the input structures, and convert the path conditions to optimisation problems that we solve with search-based techniques to produce sequences of method calls that instantiate those inputs. Our preliminary results show that the approach is indeed effective in generating test cases for programs with complex data structures as inputs, thus opening a promising research direction.
paper
Automatic test case generation; Symbolic execution; Search-based software engineering
English
ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) JUL 10-14
2017
Proceedings of 26th International Symposium on Software Testing and Analysis
9781450350761
2017
90
101
reserved
Braione, P., Denaro, G., Mattavelli, A., Pezze', M. (2017). Combining symbolic execution and search-based testing for programs with complex heap inputs. In Proceedings of 26th International Symposium on Software Testing and Analysis (pp.90-101). Association for Computing Machinery, Inc [10.1145/3092703.3092715].
File in questo prodotto:
File Dimensione Formato  
3092703.3092715.pdf

Solo gestori archivio

Tipologia di allegato: Publisher’s Version (Version of Record, VoR)
Dimensione 302.38 kB
Formato Adobe PDF
302.38 kB Adobe PDF   Visualizza/Apri   Richiedi una copia

I documenti in IRIS 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/10281/155095
Citazioni
  • Scopus 50
  • ???jsp.display-item.citation.isi??? 44
Social impact