有没有一个开源工具可以自动为遗留代码生成测试用例?

2024-06-30 08:56:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近无意中发现了这篇(过时的)文章:

http://imranontech.com/2007/01/04/unit-testing-the-final-frontier-legacy-code/

据说作者编写了一个perl脚本来自动生成测试用例。 他的策略是这样的(引用):

  1. 读我给它的头文件。在
  2. 提取功能原型。在
  3. 给了我它找到的函数列表,让我选择 我想为它们创建单元测试。在
  4. 然后它创建了一个dbx (Solaris调试器)脚本,每次 已调用所选函数,保存传递给 然后继续,直到函数返回该点为止 将保存返回值。

  5. 在dbx下运行可执行文件 脚本,以及我将应用程序用作 我想很多正常的案子 仔细阅读有问题的代码,尤其是我认为 它会击中我想要创建单元测试的函数中的边缘情况 因为。

  6. 然后perl脚本执行所有的示例运行,并将其剥离 复制,然后自动生成包含单元测试的C文件 对于每个示例(即传入输入数据并验证 返回值与示例run中相同)Compiled/Linked/Ran 单元测试和丢弃失败的单元测试(即 导致函数非确定性行为的输入)

我有很多Python和Fortran语言的各种遗留代码。这篇文章来自2007年。在当前的单元测试框架中是否有类似的实现?在

我该怎么写这样的剧本呢?在


Tags: the函数代码脚本comhttp示例文章
1条回答
网友
1楼 · 发布于 2024-06-30 08:56:56

很像C。另外,我认为,依赖于操作系统(Solaris调试器)?我认为你应该看看“录制/捕获和回放”工具,尽管不知何故我认为“生成”部分从未真正发挥过作用。在

Python's testing tools taxonomy将是一个很好的起点。我认为您要么使用Selenium或Dogtail来记录应用程序。这个链接将带您进入Web测试工具这一部分,但也可以查看其他部分:模糊测试是一种类似于Golden Master的技术,它有时可能有助于遗留应用程序,是一种“记录/回放”技术。Feathers称这种测试为“特征化”测试,因为它们描述了遗留系统的行为。在

你引用的文章中有一个很好的观点:

Have a look at your own source code repository and see which functions/classes have had the most bugfix checkins applied, 80% of bugfixes tend to be made to about 20% of the code. There’s sound logic behind this – often that 20% of the code is poorly written with dozens or hundreds of “special case” hacks.

这是我真正开始的地方。你把这些零件弄清楚了吗?分类法中的简单Git/SVB日志使用脚本和覆盖工具一节可以很方便地使用它。在

不幸的是,不仅如此,我也帮不了你——我的Python经验有限,而且Fortran也不存在。在

相关问题 更多 >