7

我们在这里有很多RPG程序,并且我们做了很多自动化测试,但是我们还没有把这两者结合起来。有没有很好的方法可以对RPG程序或其他ILE程序进行自动化测试?在RPG(或其他ILE语言)中进行自动化测试

我知道一个名为RPGUnit的项目,但它已经是2007年的最后一次更新。不过,它似乎仍然在使用,因为RPG Next Gen目前正在将其包括在内。

你有什么经验?还有其他的东西,我错过了,就像谷歌无法找到的一些伟大的软件工具?

我对单元测试以及整个项目的集成测试感兴趣。欢迎与jenkins等工具集成的任何内容。如果它涉及IBM的Rational Developer或System i Navigator,那也没关系。

我们正处于为RPG开发过程创建新测试计划的早期阶段,我不希望它从一开始就走向错误的方向。

+2

也许更大的问题是......你有单元测试_architecture_吗?这种语言似乎积极鼓励编写程序的方式,使封装困难(即包含从数据库访问到屏幕输出的所有内容的程序在一个文件中)。 –

+0

@ X-Zero如果你选择这样做,你可以有seper – WarrenT

+0

@x-zero ILE模块化可以给封装,甚至是不同的languaged,所有绑定到一个程序 – WarrenT

回答

4

您可能已经知道主题“测试”的广泛程度。 IBM有一款名为Rational Function Tester的产品(我没有使用它)http://www-01.ibm.com/software/awdtools/tester/functional/我自己使用RPGUnit。不,它最近没有更新过,但它仍然具有用于测试子程序所需的所有部分,就像测试Java方法一样。

坦率地说,这是很容易的部分。困难的部分是创建一个测试数据库并保持足够的时间来代表生产数据库。罗丹有一些数据库工具,但我没有为这些预算,所以我滚动自己或多或少手动。我在CL程序中使用许多SQL语句来提取生产数据,以便保持参考完整性。然后,我使用更多的SQL来添加我的特殊测试用例 - 这些关系不存在于生产数据中,但需要进行测试。然后我将测试数据库的完整副本作为参考点。然后我运行我的测试用例,它将更新测试数据库。我已经编写了一个本地生成的CMPPFM实用程序,它将允许我将参考数据库与现在修改的测试数据库进行比较。这将显示更改,但仍需要大量手动操作才能查看比较结果,以确保正确的行得到正确的更新。我还没有花费额外的时间来自动化。有一点需要注意的是,有一些你不关心的列,比如更改时间戳。

+0

感谢迄今的见解。所以RPGUnit是有用的,这是很好听的部分。从它的功能列表中,Functional Tester没有任何RPG或ILE功能,它只有“其他部分”来组织测试(我不认为我们会为此部分购买东西)。 – kratenko

+0

因为这是一个很好的答案,它看起来不会看到我会得到更多的东西,我不妨接受它... – kratenko

4

我们与RPGUNIT合作,发现它是一个很好的工作基地,但最终扩展了很多以配合我们的变更管理系统和我们的工作方式。我写了关于我们在这里尝试的东西:http://www.littlebluemonkey.com/blog/my-rpg-unit-test-journey

+0

感谢您让我们参与您的旅程。看起来你成功地做到了!一旦我们决定花时间进行真正的RPG测试,这将会很有帮助。 – kratenko