arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1409.0982cs.SE
收藏

驯服并发:在测试多线程软件时控制并发行为

Taming the Concurrency: Controlling Concurrent Behavior while Testing Multithreaded Software

Evgeny Vainer, Amiram Yehudai

摘要:

开发多线程软件是一项极具挑战性的任务,即使对于有经验的程序员也是如此。挑战不会在代码编写完成后结束。还有其他与开发过程相关的任务在多线程环境中变得异常困难。一个很好的例子是为并发数据结构创建单元测试。除了所需的测试逻辑之外,这样的测试还包含大量的同步代码,这使得它很难理解和维护。在我们的工作中,我们提出了一种新的方法来指定和执行多线程测试的时间表。它允许显式指定某些单元测试所需的线程调度,并在测试执行期间强制执行,从而使开发人员能够构建确定性和可重复的单元测试。这一目标是通过组合每个现代运行时/IDE中可用的一些基本工具来实现的,并且不需要专用的运行时环境、新的规约语言或测试修改下的代码。

英文摘要:

Developing multithreaded software is an extremely challenging task, even for experienced programmers. The challenge does not end after the code is written. There are other tasks associated with a development process that become exceptionally hard in a multithreaded environment. A good example of this is creating unit tests for concurrent data structures. In addition to the desired test logic, such a test contains plenty of synchronization code that makes it hard to understand and maintain. In our work we propose a novel approach for specifying and executing schedules for multithreaded tests. It allows explicit specification of desired thread scheduling for some unit test and enforces it during the test execution, giving the developer an ability to construct deterministic and repeatable unit tests. This goal is achieved by combining a few basic tools available in every modern runtime/IDE and does not require dedicated runtime environment, new specification language or code under test modifications.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑