Singularity: Pattern fuzzing for worst case complexity

J Wei, J Chen, Y Feng, K Ferles, I Dillig�- …�of the 2018 26th ACM Joint�…, 2018 - dl.acm.org
Proceedings of the 2018 26th ACM Joint Meeting on European Software�…, 2018dl.acm.org
We describe a new blackbox complexity testing technique for determining the worst-case
asymptotic complexity of a given application. The key idea is to look for an input pattern—
rather than a concrete input—that maximizes the asymptotic resource usage of the target
program. Because input patterns can be described concisely as programs in a restricted
language, our method transforms the complexity testing problem to optimal program
synthesis. In particular, we express these input patterns using a new model of computation�…
We describe a new blackbox complexity testing technique for determining the worst-case asymptotic complexity of a given application. The key idea is to look for an input pattern —rather than a concrete input— that maximizes the asymptotic resource usage of the target program. Because input patterns can be described concisely as programs in a restricted language, our method transforms the complexity testing problem to optimal program synthesis. In particular, we express these input patterns using a new model of computation called Recurrent Computation Graph (RCG) and solve the optimal synthesis problem by developing a genetic programming algorithm that operates on RCGs. We have implemented the proposed ideas in a tool called Singularityand evaluate it on a diverse set of benchmarks. Our evaluation shows that Singularitycan effectively discover the worst-case complexity of various algorithms and that it is more scalable compared to existing state-of-the-art techniques. Furthermore, our experiments also corroborate that Singularitycan discover previously unknown performance bugs and availability vulnerabilities in real-world applications such as Google Guava and JGraphT.
ACM Digital Library
Showing the best result for this search. See all results