-
Levels of Fuzzing
Differential Testing for Software is one of my favorite papers about software testing: it is one of the few pre-delta-debugging papers to describe automated test-case reduction and it contains many pieces of wisdom about software testing in general and random testing in particular. One of them outlines a hierarchy of test case generation strategies: For…
-
Guidelines for Research on Finding Bugs
There’s a lot of research being done on finding bugs in software systems. I do some of it myself. Finding bugs is attractive because it is a deep problem, because it’s probably useful work, and because — at least for some people — finding bugs is highly entertaining. This piece contains a few thoughts about…
-
Are Compilers Getting More or Less Reliable?
Earlier this summer, Miod Vallat of the OpenBSD project posted some thoughts about compiler reliability. His thesis is that in the good old days of GCC 2.5 through 2.7, the compiler pretty much just worked and you could trust it to emit correct code. Subsequently, the level of code churn in GCC increased for several…
-
Jay
Jay Lepreau died five years ago today; I wanted to share a few thoughts about him. In spring 2000 I had a year of school left. Sarah had graduated and gotten several job offers; Utah was one of them. This seemed like a bit of an odd choice for us except that Jay flew me…
-
Great Salt Lake Desert Road Trip
A few weeks ago, Matthew Flatt and I took a short road trip to the area west of the Great Salt Lake. We arrived at the Bonneville Salt Flats before dawn. Unexpectedly, there were plenty of people out on the playa; it turned out to be “Speed Week” where drivers from all over the world…
-
Counting to 4 Billion Really Fast
Before teaching today I wrote a silly program to make sure that the bitwise complement of any 32-bit value is equal to one less than the two’s complement negation of that value: When the program terminated without any perceptible delay, I figured there was a bug, but nope: the code is good. It turns out…
-
FizzBuzz Bugs
It is said that an overwhelming majority of applicants for some programming jobs fail the FizzBuzz test. As part of a simple warmup exercise, I asked my computer systems class (a required course for CS majors, usually taken in the 3rd year) to implement FizzBuzz in C. The problem statement was, I think, the standard…
-
Do Not Just Run a Few More Reps
It’s frustrating when an experiment reveals an almost, but not quite, statistically significant effect. When this happens, the overwhelming temptation is to run a few more repetitions in order to see if the result creeps into significance. Intuitively, more data should provide more reliable experimental results. This is not necessarily the case. Let’s look at…
-
A Few Good Books
I haven’t been getting a ton of reading done this summer, but here are a few books that you might find interesting or fun. The Psychopath Test I’m sort of emphatically not a fan of those lightweight nonfiction books we’ve been seeing a lot of in the past few years that would have made (and…
-
According to Googer
This post is all Eddie’s fault. Things that are exquisitely fortuitous her sudden and unexpected departure with a drunken Hanes waving a gun timing positioning several kinds of parameters of the universe that they chose sh** to describe this newest of Beetoven’s competitors that Phaidon, the British publisher, is issuing new editions of Ungerer classics,…