Software testing is of critical importance for the success of software projects. Current inefficient testing methods often still take up half or more of a software project's budget. Automatic test data generation is the most promising way to lower the software testing cost. Manually creating testing data is expensive and...
How do you test a program when only a single user, with no expertise in software testing, is able to determine if the
program is performing correctly? Such programs are common today in the form of machine-learned classifiers. We consider the
problem of testing this common kind of machine-generated program...
Aggressive random testing tools (“fuzzers”) are impressively effective
at finding compiler bugs. For example, a single test-case
generator has resulted in more than 1,700 bugs reported for a single
JavaScript engine. However, fuzzers can be frustrating to use:
they indiscriminately and repeatedly find bugs that may not be severe
enough...