作者
Vilas Jagannath, Milos Gligoric, Dongyun Jin, Qingzhou Luo, Grigore Rosu, Darko Marinov
发表日期
2011/9/9
图书
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
页码范围
223-233
简介
Multithreaded code is notoriously hard to develop and test. A multithreaded test exercises the code under test with two or more threads. Each test execution follows some schedule/interleaving of the multiple threads, and different schedules can give different results. Developers often want to enforce a particular schedule for test execution, and to do so, they use time delays (Thread.sleep in Java). Unfortunately, this approach can produce false positives or negatives, and can result in unnecessarily long testing time.
This paper presents IMUnit, a novel approach to specifying and executing schedules for multithreaded tests. We introduce a new language that allows explicit specification of schedules as orderings on events encountered during test execution. We present a tool that automatically instruments the code to control test execution to follow the specified schedule, and a tool that helps developers migrate their …
引用总数
20102011201220132014201520162017201820192020202120222910996536541
学术搜索中的文章
V Jagannath, M Gligoric, D Jin, Q Luo, G Rosu… - Proceedings of the 19th ACM SIGSOFT symposium …, 2011