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].
|Citazione:||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].|
|Carattere della pubblicazione:||Scientifica|
|Presenza di un coautore afferente ad Istituzioni straniere:||Si|
|Titolo:||Worst-Case Execution Time Testing via Evolutionary Symbolic Execution|
|Autori:||Aquino, A; Denaro, G; Salza, P|
|Data di pubblicazione:||2018|
|Nome del convegno:||IEEE International Symposium on Software Reliability Engineering, ISSRE 2018|
|Digital Object Identifier (DOI):||http://dx.doi.org/10.1109/ISSRE.2018.00019|
|Appare nelle tipologie:||02 - Intervento a convegno|