STORM: Static Unit Checking of Concurrent Programs

ICSE 2010 screenshot

Abstract

Concurrency is inherent in today's software. Unexpected interactions between concurrently executing threads often cause subtle bugs in concurrent programs. Such bugs are hard to discover using traditional testing techniques since they require executing a program on a particular unit test (i.e. input) through a particular thread interleaving. A promising solution to this problem is static program analysis since it can simultaneously check a concurrent program on all inputs as well as through all possible thread interleavings. This paper describes a scalable, automatic, and precise approach to static unit checking of concurrent programs implemented in a tool called STORM. STORM has been applied on a number of real-world Windows device drivers, and the tool found a previously undiscovered concurrency bug in a driver from Microsoft's Driver Development Kit.

Citation

Zvonimir Rakamaric
STORM: Static Unit Checking of Concurrent Programs
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE) - Volume 2, 519--520, doi:10.1145/1810295.1810460, 2010.
 Silver Medal Winner in the ACM Student Research Competition

BibTeX

@inproceedings{2010_icse_r,
  title = {STORM: Static Unit Checking of Concurrent Programs},
  author = {Zvonimir Rakamaric},
  booktitle = {Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE) - Volume 2},
  publisher = {ACM},
  pages = {519--520},
  doi = {10.1145/1810295.1810460},
  note = {ACM Student Research Competition},
  year = {2010}
}

Acknowledgements

This is a joint work with Alan J. Hu, Shuvendu Lahiri, and Shaz Qadeer. It was supported by a Microsoft Research Graduate Fellowship.