Debugging is the other hard part of programming, and it's made much harder when your only means of reproducing the bug is large and complicated. Often the easiest way to get to the bottom of the problem is to take your large, complicated, example and gradually replace it with a smaller, simpler, one that more clearly demonstrates the problem. That's called test-case reduction, and it's pretty boring to do by hand, so we have automatic tools called test-case reducers to do it for us.

Unfortunately, outside of a few specialised areas, most people aren't using them. In this talk, David will aim to fix that, by giving you an overview of what test-case reducers do, how they work, and some of the interesting problems that come up when using them.

THIS TALK IN THREE WORDS

Testing

Debugging

Tools

OBJECTIVES

After listening to this talk you will be able to use off the shelf test-case reducers to simplify your debugging, and should understand how they work well enough that you could start to write your own if none of the off-the-shelf ones work for your problem domain.

TARGET AUDIENCE

The talk should be accessible to everyone but will be most useful to those with a particular interest in software testing and tooling.