Why Fuzz Test?
The method is simple—as its definition implies—yet it allows for a variety of elegant solutions to a number of challenging problems that testers and programmers face when developing office software.
One of the most daunting problems facing office software is interoperability with other programs, especially similar office programs. Indeed, the top three commands on the Microsoft Office list—paste, save, and copy—illustrate the importance of being able to use data in other programs and documents. Although rather simple, these basic functions allow for a multitude of operations that users will expect the program to handle gracefully. One of the great things about fuzzing is that it can help simulate a number of these scenarios in an automated manner, making it easier to handle the countless possibilities that interoperability allows for.
There are millions of office documents in dozens of modern and obsolete formats, many of which your program will be expected to support. In some cases you might be able to find documentation about specific file formats, but these references can have their own inaccuracies and omissions. You could also try to keep all the various programs around for testing, but this solution would quickly become unwieldy as you tried to manage all of the hardware, operating systems, and licenses that would be required to run the hundreds of programs that can interact with your software. Fuzz testing offers an elegant and simple ...