PROGRESS IN SOFTWARE engineering often appears agonizingly slow. Yet when you look back and take stock, you can see that the software we develop today benefits from practices that would have been considered fanciful during the implementation of the system we might aim to replace. This is the case with software testing. A couple of decades ago, many parts of software were tested only manually or...