Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automated testing in RPG (or other ILE languages)

we have quite a lot of RPG-programs here, and we do a lot of automated testing, but we are not very good yet in combining those two. Are there good ways to do automated testing on RPG programs -- or on any other ILE programs for that matter?

I am aware of a project named RPGUnit, but that has it's last update in 2007. However, it seems it is still used, since RPG Next Gen is currently putting some work in including it.

What's you experience with those? Is there something else, that I am missing, like some great sofware tool google fails to find?

I'm interested in unit testing as well as integration testing of complete projects. Anything that integrates with tools like jenkins is welcome. If it involves IBM's Rational Developer or System i Navigator, that's okay, too.

We are in an early phase of creating new testing plans for our RPG development process, and I don't want it, to head in the wrong direction right from the start.

like image 599
kratenko Avatar asked Jun 20 '12 10:06

kratenko


People also ask

Which language is used for automation testing?

Python or java for test automation probably the best language you must learn in the subsequent year and improve your existing skills. Python is preferable as it has large libraries for helping the developers to perform the right actions without the need for writing new codes for every task.

What is RPG testing?

A retrograde pyelogram (RPG) is an imaging test that uses contrast dye in your urinary tract to take a better X-ray image of your urinary system. Your urinary system includes your kidneys, bladder, and everything that's connected to them.

Can game testing be automated?

Benefits of Automated Game TestingWith the automated test, testers can reach and test certain levels of the game which can consume a lot of manual effort and time. In some cases, there might be some scenarios or conditions due to which they might fail to achieve using their manual efforts.


1 Answers

You probably already know how broad a subject 'testing' can be. IBM have a product called Rational Function Tester (I haven't used it) http://www-01.ibm.com/software/awdtools/tester/functional/ I myself use RPGUnit. No, it hasn't been updated recently but it still has all the pieces needed for testing subprocedures in the same way one would test Java methods.

Frankly, that's the easy part. The hard part is creating a test database and keeping it current enough to be representative of the production database. Rodin have some database tooling but I haven't the budget for those, so I roll my own more or less by hand. I use many SQL statements in a CL program to extract production data so I can maintain referential integrity. Then I use some more SQL to add my exceptional test cases - those relationships which aren't present in the production data but need to be tested for. Then I make a complete copy of the test database as a reference point. Then I run my test cases, which will update the test database. I've written a home grown CMPPFM utility that will allow me to compare the reference database against the now modified test database. This will show changes, but it still needs a lot of manual labour to review the comparisons to ensure that the proper rows got the proper updates. I haven't gone the extra mile to automate that yet. One big caveat is there are some columns you don't care about, like a change timestamp.

like image 79
Buck Calabro Avatar answered Nov 13 '22 23:11

Buck Calabro