0

我想知道是否有任何工具可以根据方法的前置条件和后置条件(以及类不变量)自动生成单元测试。

准确地说,假设我们给定了方法的前置条件和后置条件(可能还有类不变量),并且我们希望基于该信息生成单元测试。为此,我正在寻找一种实用的工具。

我知道 Korat 和 TestWizard。您能否再列举一些技术/工具?

PS:编程语言,或者我们指定方法契约使用的语言,并不那么重要。我只是想了解技术。

谢谢你。

4

2 回答 2

0

Randoop 就是这样做的。它的手册告诉你如何指定前置条件和后置条件。

在评论中,您区分了“生成”和“引导”;我不确定您的确切意思,但您可能会将 Randoop 视为使用规范作为指导。

于 2019-02-03T18:15:05.967 回答
0

该领域的一项研究活动于 2005-2011 年在 ETH 进行,以制作“基于合约的随机测试工具”,即AutoTest。它是为Eiffel开发的,其中前置条件、后置条件和类不变量是语言的一部分。该工具使用它们作为规范来自动生成测试。该工具与 EiffelStudio 开发环境集成,在该环境中它使用合同进行 3 种测试:

  • 手册 - 由开发人员编写测试的一种很好的“老派”方法;
  • 提取——一旦出现合同违规,该工具就可以生成相应的测试用例;
  • 生成- 该工具通过确保在进入例程时满足前提条件和类不变量并检查返回时没有失败,特别是没有违反后条件或类不变量,来自动合成新测试。
于 2019-02-03T18:22:29.700 回答