首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单元测试、死锁和竞争条件

单元测试、死锁和竞争条件
EN

Stack Overflow用户
提问于 2008-10-06 23:21:03
回答 7查看 5.5K关注 0票数 11

对于如何为可能易受死锁和竞争条件影响的代码编写可重复的单元测试,有什么建议吗?

现在,我倾向于跳过单元测试,专注于压力测试。这样做的问题是,您可以运行5次压力测试,并看到5种不同的结果。

编辑:我知道这可能只是一个梦,但如果有一种方法可以控制单独的线程,使它们一次执行一条指令,那么我可能会有所收获。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-10-06 23:24:15

看看TypeMock赛车(测试版)

编辑:实际的Alpha

http://www.typemock.com/Typemock_software_development_tools.html

票数 3
EN

Stack Overflow用户

发布于 2008-10-06 23:27:40

通常可以通过使用诸如ManualResetEvent之类的东西来强制执行可预见的争用条件和死锁,以便在释放线程之前将每个线程置于预期状态--即让线程A拥有锁并等待信号……让线程B请求锁,等等。

然而,您通常可能会编写这样的测试来调查可疑的bug,以证明它何时被修复,以及它不会重新浮出水面。您通常会围绕竞争条件进行设计(但要尽可能实际地对其进行测试)。

票数 2
EN

Stack Overflow用户

发布于 2008-10-06 23:31:40

我不认为寻找竞争条件真的属于单元测试的范畴。或多或少根据定义,测试竞争条件的唯一方法是伪随机。除非您愿意努力正式证明锁定策略的正确性,否则必须进行一些压力测试。

您仍然需要编写单元测试,以验证算法的正确性,而不是锁定策略。

在对多线程代码进行压力测试时,您需要在以下条件下进行测试:每个线程有一个CPU,多个线程共享CPU,CPU比线程多(如果可能)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/176636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档