使用 MultithreadedTC 测试并发应用程序

下载

https://code.google.com/archive/p/multithreadedtc/downloads

最新版本是 2007 年发布的,不过仍然可以使用它测试小型并发应用程序或者单独测试大型应用程序的部件。
尽管不能用它测试实际任务或者线程,但是可以使用它测试不同的执行顺序,从而检验是否会导致竞争条件或者死锁。

它基于一个内部时钟进行计时,该时钟可以控制不同线程的执行顺序,以测试该执行顺序是否会导致什么并发问题。

使用

首先,需要将两个库关联到项目中。

要使用 MultithreadedTC 库实施测试,要扩展 MultithreadedTestCase 类,该类扩展了 JUnit 库的 Assert 类。

可以实现如下方法。

例如,如果想要测试三个线程,就要在自己的类中实现三个方法。

waitForTick() 方法

MultithreadedTestCase 类提供了 waitForTick() 方法。

缺点

它仅对测试基本的并发代码有用,因此当你实施测试时,不能用它来测试真实的线程代码。

测试