Worst-case execution time testing amounts to constructing a test case triggering the worst-case execution time of a program, and has many important applications to identify, debug and fix performance bottlenecks and security holes of programs. We propose a novel technique for worst-case execution time testing combining symbolic execution and evolutionary algorithms, which we call 'Evolutionary Symbolic Execution', that (i) considers the set of the feasible program paths as the search space, (ii) embraces the execution cost of the program paths as the fitness function to pursue the worst path, (iii) exploits symbolic execution with random path selection to collect an initial set of feasible program paths, (iv) incrementally evolves by steering symbolic execution to traverse new program paths that comply with execution conditions combined and refined from the currently collected program paths, and (v) periodically applies local optimizations to the worst currently identified program path to speed up the identification of the worst path. We report on a set of initial experiments indicating that our technique succeeds in generating good worst-case execution time test cases for programs with which existing approaches cannot cope.

Aquino, A., Denaro, G., Salza, P. (2018). Worst-Case Execution Time Testing via Evolutionary Symbolic Execution. In Proceedings - International Symposium on Software Reliability Engineering, ISSRE (pp.76-87). IEEE Computer Society [10.1109/ISSRE.2018.00019].

Worst-Case Execution Time Testing via Evolutionary Symbolic Execution

Denaro, Giovanni;
2018

Abstract

Worst-case execution time testing amounts to constructing a test case triggering the worst-case execution time of a program, and has many important applications to identify, debug and fix performance bottlenecks and security holes of programs. We propose a novel technique for worst-case execution time testing combining symbolic execution and evolutionary algorithms, which we call 'Evolutionary Symbolic Execution', that (i) considers the set of the feasible program paths as the search space, (ii) embraces the execution cost of the program paths as the fitness function to pursue the worst path, (iii) exploits symbolic execution with random path selection to collect an initial set of feasible program paths, (iv) incrementally evolves by steering symbolic execution to traverse new program paths that comply with execution conditions combined and refined from the currently collected program paths, and (v) periodically applies local optimizations to the worst currently identified program path to speed up the identification of the worst path. We report on a set of initial experiments indicating that our technique succeeds in generating good worst-case execution time test cases for programs with which existing approaches cannot cope.
paper
Symbolic Execution, Worst-Case Execution Time, Genetic Algorithms, Software Engineering; Software; Safety, Risk, Reliability and Quality
English
IEEE International Symposium on Software Reliability Engineering, ISSRE 2018
2018
Proceedings - International Symposium on Software Reliability Engineering, ISSRE
9781538683217
2018
2018
76
87
8539071
reserved
Aquino, A., Denaro, G., Salza, P. (2018). Worst-Case Execution Time Testing via Evolutionary Symbolic Execution. In Proceedings - International Symposium on Software Reliability Engineering, ISSRE (pp.76-87). IEEE Computer Society [10.1109/ISSRE.2018.00019].
File in questo prodotto:
File Dimensione Formato  
08539071.pdf

Solo gestori archivio

Tipologia di allegato: Publisher’s Version (Version of Record, VoR)
Dimensione 224.31 kB
Formato Adobe PDF
224.31 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/220026
Citazioni
  • Scopus 4
  • ???jsp.display-item.citation.isi??? 4
Social impact