Browse Prior Art Database

Parallelizing tests with pessimistic speculative execution

IP.com Disclosure Number: IPCOM000257593D
Publication Date: 2019-Feb-22

Publishing Venue

The IP.com Prior Art Database

Abstract

Fuzzy testing or fuzzing is a technique for finding software vulnerabilities. Fuzzing works by feeding quasi-random, auto-generated input sequences to a target program and searching for failures. Fuzzers find inputs that trigger bugs; however, understanding those bugs is easier when extraneous data is removed to the extent possible. Extraneous data is removed by bisection, which is typically a serial procedure, e.g., doesn't advance without knowing the result of the previous step. This makes test case optimization slow, sometimes taking hours to complete while CPU cores sit idle. This disclosure describes techniques that parallelize the bisection procedure, e.g., by speculatively executing test cases steps ahead of the current position of the bisection procedure. Test results often become known by the time the bisection procedure reaches a certain step, which substantially accelerates testing. KEYWORDS ● fuzzy testing ● test-case minimization ● delta debugging ● pessimistic execution ● speculative execution ● multi-threaded testing ● distributed testing ● bisection