Systematic Testing of Software with Structurally Complex Inputs

Modern software pervasively uses structurally complex data, for example web-traversal code operates on graphs that encode web pages, and IDEs manipulate program representations such as abstract syntax trees. The standard approach to generating test suites for such software, manual generation of the inputs in the suite, is tedious and error-prone. This talk presents a new approach that automates the generation of suites with structurally complex test inputs. Our approach is based on test abstractions which provide a high-level description of desired test suites. Developers do not need to manually write large suites of individual tests but instead write test abstractions from which tools automatically generate individual tests.