A permanent collection of six

Real bugs, with the working out left in.

Six defects from real project work, with the names taken off. Each one is here as an object you can handle: break it, watch the fix land, then read why it happened and what stops it coming back.

  • Software rarely goes straight from broken to fixed. Three of the six exhibits here have a middle state — a fix that was shipped, was correct, and was not the end of it.
  • The first fix can introduce a second, subtler problem. Locking the page behind a drawer worked. It also made closing the drawer take a 1.5-second scenic route back to where you were.
  • A passing test is not the same as a working system. One of these cases had unit tests that stayed green through the entire life of the bug, because they called the method once and the app called it twice.

Featured exhibit

The collection

How to visit

Three minutes per room

Switch the state

Every case has a Broken / Fixed switch, and three of them have a First fix in between. The object in the case really is running that version of the code.

Break it yourself

Scroll the phone, fail the requests, press Enter twice. Nothing here is a recording, and nothing runs code you type.

Then read the label

The explanation, the reproduction and the regression test are underneath, each linked to the file in this repository that holds it.