Автоматическое тестирование в RPG (или других языках ILE)

У нас здесь довольно много RPG-программ, и мы проводим большое количество автоматических тестирований, но мы не очень хороши в объединении этих двух. Существуют ли хорошие способы автоматизированного тестирования программ RPG или любых других программ ILE?

Мне известен проект с именем RPGUnit, но последний раз он обновлялся в 2007 году. Однако, похоже, он все еще используется, поскольку в настоящее время RPG Next Gen вносит некоторые изменения, включая его.

Что вы испытываете с ними? Есть ли что-то еще, чего мне не хватает, например, какой-то замечательный инструмент программного обеспечения, который Google не может найти?

Я заинтересован в модульном тестировании, а также в комплексном тестировании завершенных проектов. Все, что интегрируется с такими инструментами, как Дженкинс, приветствуется. Если это касается IBM Rational Developer или System i Navigator, то это тоже нормально.

Мы находимся на ранней стадии создания новых планов тестирования для нашего процесса разработки RPG, и я не хочу, чтобы с самого начала идти в неправильном направлении.

2 ответа

Решение

Вы, наверное, уже знаете, насколько широким может быть предмет "тестирование". У IBM есть продукт под названием Rational Function Tester (я не использовал его) http://www-01.ibm.com/software/awdtools/tester/functional/ Я сам использую RPGUnit. Нет, он не обновлялся в последнее время, но в нем все еще есть все части, необходимые для тестирования подпроцедур так же, как и для тестирования методов Java.

Честно говоря, это самая легкая часть. Сложной частью является создание тестовой базы данных и поддержание ее достаточно актуальной, чтобы она была репрезентативной для рабочей базы данных. У Родена есть кое-какие инструменты для работы с базами данных, но у меня нет на них бюджета, поэтому я делаю свои более или менее вручную. Я использую много операторов SQL в программе CL для извлечения производственных данных, чтобы я мог поддерживать ссылочную целостность. Затем я использую еще несколько SQL, чтобы добавить свои исключительные тестовые случаи - те отношения, которых нет в производственных данных, но которые нужно проверить. Затем я делаю полную копию тестовой базы данных в качестве ориентира. Затем я запускаю свои тесты, которые обновят тестовую базу данных. Я написал домашнюю утилиту CMPPFM, которая позволит мне сравнивать эталонную базу данных с измененной тестовой базой данных. Это покажет изменения, но ему все еще нужно много ручного труда, чтобы просмотреть сравнения, чтобы убедиться, что правильные строки получили правильные обновления. Я не потратил лишних усилий, чтобы автоматизировать это. Одно большое предостережение: есть некоторые столбцы, которые вам не нужны, например, отметка времени изменения.

Мы пошли с RPGUNIT и сочли его хорошей базой для работы, но в итоге расширили его, чтобы связать его с нашей системой управления изменениями и с тем, как мы работаем. Я написал о том, что мы попробовали здесь: http://www.littlebluemonkey.com/blog/my-rpg-unit-test-journey

Другие вопросы по тегам