图书馆多久更换一次?图书馆是否需要像程序一样进行回归测试?

时间:2017-04-20 16:30:32

标签: testing junit regression-testing randoop

我在IEEE发表的一篇研究论文中读到这篇论文,该论文称图书馆不经常改变,因此不需要进行大量的回归测试。我希望有人验证声明。 此外,它说Randoop早期是在图书馆开发和评估的。有人可以验证吗?

1 个答案:

答案 0 :(得分:0)

  

[论文]说,Randoop早期是在图书馆开发和评估的。

这不仅适用于Randoop,还适用于其他测试生成工具,如ARTOO,Check'n'Crash,EvoSuite,GRT,QuickCheck等。

该论文是“扩大自动化测试生成:自动为程序生成可维护的回归单元测试”(ASE 2011)。它的问题陈述是测试生成工具经常应用于库,它比程序更容易处理。它的贡献是展示如何将测试生成工具(Randoop)扩展到程序。

将Randoop应用于图书馆的早期论文的一个例子是“反馈导向的随机测试生成”(ICSE 2007)。它报告发现了许多重要的,以前未知的错误。

  

我在IEEE发表的一篇研究论文中读到这篇论文,该论文表示图书馆不经常改变,因此不需要进行大量的回归测试。

论文说库“不需要太多的回归测试”。它实际上说,“图书馆不太可能需要回归测试套件。图书馆很少改变,图书馆可能已经有一些测试。”重点是Randoop工具生成测试,对于没有测试的组件,更需要这样的工具。作为一般规则,图书馆通常已经有一个人工编写的测试套件。该库也由使用它的每个程序执行。相比之下,许多程序存在没有测试套件,或者其测试套件省略了程序行为的大部分内容。这些组件更需要测试生成。

这是第5点附近的6个理由列表的结尾,以激励将Randoop扩展到程序。评论在这种情况下是有意义的,但不是在脱离背景或错误引用时。该列表以

开头
  

Randoop最初的目标是检测数据结构库库中的现有错误,例如JDK java.util。相反,我们希望扩展Randoop,以便为复杂的工业软件系统生成可维护的回归测试。

     

数据结构库往往更容易让工具以多种方式处理。 ...

回到您的一个问题,每个软件组件 - 无论是程序还是库 - 都需要在更改时运行回归测试套件。运行测试可以确保您的更改没有破坏其功能。如果您从未更改过组件,那么您不需要回归测试套件。

有些图书馆永远不会改变(因为政策,或者因为没有必要改变它们),而其他图书馆也在不断更新。