The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.03 - May/June (2011 vol.28)
pp: 75-83
Thomas Ball , Microsoft Research
Sebastian Burckhardt , Microsoft Research
Peli de Halleux , Microsoft Research
Madan Musuvathi , Microsoft Research
Shaz Qadeer , Microsoft Research
ABSTRACT
Developing concurrent software is hard. Testing concurrent software is harder. Although sequential program testing has many useful concepts, techniques, and tools (for example, assertions, unit testing, test-driven development, code coverage, and test generation tools), the testing workbench for concurrent programs is comparatively quite bare. Chess is a new testing tool for concurrent multithreaded programs. It repeatedly executes a multithreaded program, while guaranteeing predictable and deterministic scheduling and progressively exploring more schedules to uncover errors quickly.
INDEX TERMS
Chess, sequential program, concurrency, threads scheduling, testing, nondeterminism, software
CITATION
Thomas Ball, Sebastian Burckhardt, Peli de Halleux, Madan Musuvathi, Shaz Qadeer, "Predictable and Progressive Testing of Multithreaded Code", IEEE Software, vol.28, no. 3, pp. 75-83, May/June 2011, doi:10.1109/MS.2010.64
REFERENCES
1. H. Sutter and J. Larus, "Software and the Concurrency Revolution," Queue, vol. 3, no. 7, 2005, pp. 54–62.
2. M. Musuvathi et al., "Finding and Reproducing Heisenbugs in Concurrent Programs," Proc. 8th Usenix Symp. Operating System Design and Implementation (OSDI 08), Usenix Assoc., 2008, pp. 267–280.
3. P. Godefroid, Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem, Springer, 1996.
4. M. Musuvathi and S. Qadeer, "Iterative Context Bounding for Systematic Testing of Multithreaded Programs," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI 07), ACM Press, 2007, pp. 446–455.
5. J.-D. Choi et al., "Efficient and Precise Datarace Detection for Multithreaded Object-Oriented Programs," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI 02), ACM Press, 2002, pp. 258–269.
6. M. Musuvathi and S. Qadeer, "Fair Stateless Model Checking," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI 08), ACM Press, 2008, pp. 362–371.
7. P. Joshi et al., "A Randomized Dynamic Program Analysis Technique for Detecting Real Deadlocks," Proc. ACM SIGPLAN Conf. Programming Language Design and Implementation (PLDI 09), ACM Press, 2009, pp. 110–120.
8. D.L. Dill et al., "Protocol Verification as a Hardware Design Aid," Proc. IEEE Int'l Conf. Computer Design: VLSI in Computers and Processors (ICCD 92), IEEE CS Press, 1992, pp. 522–525.
27 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool