Model checking without a model
- 1 March 1998
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGSOFT Software Engineering Notes
- Vol. 23 (2) , 124-133
- https://doi.org/10.1145/271775.271800
Abstract
VeriSoft is a tool for systematically exploring the state spaces of systems composed of several concurrent processes executing arbitrary code written in full-fledged programming languages such as C or C++. The state space of a concurrent system is a directed graph that represents the combined behavior of all concurrent components in the system. By exploring its state space, VeriSoft can automatically detect coordination problems between the processes of a concurrent system.We report in this paper our analysis with VeriSoft of the "Heart-Beat Monitor" (HBM), a telephone switching application developed at Lucent Technologies. The HBM of a telephone switch determines the status of different elements connected to the switch by measuring propagation delays of messages transmitted via these elements. This information plays an important role in the routing of data in the switch, and can significantly impact switch performance.We discuss the steps of our analysis of the HBM using VeriSoft. Because no modeling of the HBM code is necessary with this tool, the total elapsed time before being able to run the first tests was on the order of a few hours, instead of several days or weeks that would have been needed for the (error-prone) modeling phase required with traditional model checkers or theorem provers.We then present the results of our analysis. Since VeriSoft automatically generates, executes and evaluates thousands of tests per minute and has complete control over nondeterminism, our analysis revealed HBM behavior that is virtually impossible to detect or test in a traditional lab-testing environment. Specifically, we discovered flaws in the existing documentation on this application and unexpected behaviors in the software itself. These results are being used as the basis for the redesign of the HBM software in the next commercial release of the switching software.This publication has 15 references indexed in Scilit:
- Structural specification-based testing with ADLPublished by Association for Computing Machinery (ACM) ,1996
- Oracles for checking temporal properties of concurrent systemsACM SIGSOFT Software Engineering Notes, 1994
- TAOS: Testing with Analysis and Oracle SupportPublished by Association for Computing Machinery (ACM) ,1994
- Non-concurrency analysisPublished by Association for Computing Machinery (ACM) ,1993
- The concurrency workbenchACM Transactions on Programming Languages and Systems, 1993
- A toolbox for the verification of LOTOS programsPublished by Association for Computing Machinery (ACM) ,1992
- Data flow analysis of concurrent systems that use the rendezvous model of synchronizationPublished by Association for Computing Machinery (ACM) ,1991
- Techniques for debugging parallel programs with flowback analysisACM Transactions on Programming Languages and Systems, 1991
- Automatic verification of finite-state concurrent systems using temporal logic specificationsACM Transactions on Programming Languages and Systems, 1986
- A general-purpose algorithm for analyzing concurrent programsCommunications of the ACM, 1983