Im having great difficulty thinking of a way to test the interesting parts of Undo. Even the Customer Acceptance Test language isnt strong enough to represent the typing of individual characters . Yet I have an idea for what the system should actually do to get the job done. Im going to take a bit of a risk. Ill implement parts of this idea, and Ill do them test-first. But Ill hold off a bit on writing the top-level programmer tests or customer tests until I know more. That means theres a chance this will all be wasted or that Ill get into too much debugging. With that awareness, Im hoping that Ill test enough to be sure that the code works. And of course, this whole idea is a bit experimental, with the possibility of turning out to be a bad idea. The sooner we find out, the better, so lets press on.