2 comments

[ 3.1 ms ] story [ 14.9 ms ] thread
I find really impressive the contrast between the simplicity of the approach and its effectiveness.

* The idea is to generate tests by picking a random row in a database and by crafting random queries which are expected to return that row.

* Sure the details are more complex, but this idea is really effective. The authors found 121 bugs in SQLite, MySQL, and Post-greSQL.

This is even amazing that a table with a single column and 3 rows can be used to detect a bug on SQLite, a so widely used database.

Some similar tests are:

- fsx.c which was written by one of the BSD projects, and found bugs in all of the Unix-like filesystems at the time just by doing simple file operations, eerily similar to PQS

https://github.com/macosforge/fstools/blob/master/src/fsx/fs...

- MySQL's mysql-bench made MySQL the first Internet-ready (functionally-hardened) database, and found several serious bugs in the other common RDBMSes