2

我有一个应用程序,它从队列中接收一个对象,对其进行转换并将其发布到一个主题上。它是一个消息驱动的 bean (spring) 消息侦听器容器,具有相当数量的内部 bean。

最近在 prod 盒上发生了一些奇怪的活动。我们想检查这是否是并发问题。这很棒,但不是我以前做过的事情。

我的方法是在应用程序中抽取大量消息。编写一个软件来听它的发布主题。使用这些并通过类似于 Junit 测试的方式处理它们,该测试将对象属性与预期结果进行比较。

我已经在上面添加了一些关于问题的范围,但基本上市场上是否有任何应用程序可以插入到我的代码或我的 IDE 中,这将使我能够做到这一点。我认为这有点超出了 JUNIT 的能力

4

1 回答 1

1

对于这种类型的练习,我会推荐JavaPathfinder (JPF) 。

JPF本质上是一个 JVM,它以各种可能的方式模拟代码的执行——例如模拟字节码指令的所有可能的交错。JPF 的工作原理是model checker探索应用程序可以进入的一组可能状态,并根据预定义的规则(例如 、 等)评估deadlock free它们non-null

当应用程序变得过于复杂时,模型检查器通常会失败,但 JPF 能够在不遍历整个状态空间的情况下执行应用程序,并且通常能够很快达到问题状态。试着看看那个。

于 2012-12-21T05:34:11.480 回答