我正在寻找改进一个我相信当它的输入在多个工作线程之间共享时不是线程安全的包.根据TDD原则,我应该首先编写一些失败的测试,这些测试在评估问题时肯定会有用.
我意识到这并不是一件简单的事情,而且天真的多线程测试将是不确定的,因为操作系统将确定调度以及各种操作交错的确切顺序.我过去看过并使用过MultithreadedTC,这很有用.但是,在这种情况下,我事先知道现有实现的确切位置,从而能够完成一系列覆盖它的测试.
但是,如果你还没有确切知道问题是什么,那么是否有一种很好的方法来编写一个很有可能抛出任何潜在问题的测试?是否有其他人发现有用的图书馆?我是否正确地认为,从纯粹的角度来看,多线程测试用例应该与通常的单线程测试一样是相同的调用和断言,只适用于多个工作线程?
我们欢迎任何有关工具/最佳实践/理念的提议.