Cooperative Bug Isolation
Efforts to understand and predict the behavior of software date back to the earliest days of computer programming,over half a century ago. In the intervening decades, the need for effective methods of understanding software has only increased; so- ware has spread to become the underpinning of much of modern society, and the potentially disastrous consequences of broken or poorly understood software have become all too apparent. Ben Liblit’s work reconsiders two common assumptions about how we should analyze software and it arrives at some striking new results. Inprinciple,understandingsoftware is not such a hardproblem. Certainlya c- puter scientist studying programs appears to be in a much stronger position than, say, a biologist trying to understand a living organism or an economist trying to understand the behavior of markets, because the biologist and the economist must rely on indirect observation of the basic processes they wish to understand. A c- puterscientist, however,starts with a complete,precise descriptionof the behaviorof software—the program itself! Of course, the story turns out not to be so straightf- ward, because despite having a perfect description, programs are suf ciently c- plex that it is usually dif cult or even impossible to answer many simple questions about them.
Reconsiders two common assumptions about how software should be analyzed Arrives at some striking new results Presents an algorithm for isolating multiple bugs from sparsely sampled data taken from many thousands of program executions