Наша команда готова провести модульное тестирование нового кода, написанного в рамках работающего проекта, расширяющего существующую огромную систему Oracle.
Система написана исключительно на PL / SQL, состоит из тысяч таблиц, сотен пакетов хранимых процедур, в основном получающих данные из таблиц и / или вставляющих / обновляющих другие данные.
Наше расширение не исключение. Большинство функций возвращают данные из довольно сложной инструкции SELECT по множеству взаимно связанных таблиц (с небольшой добавленной логикой перед их возвратом) или выполняют преобразование из одной сложной структуры данных в другую (сложную по-другому).
Как лучше всего провести модульное тестирование такого кода?
Для существующей кодовой базы нет модульных тестов. Что еще хуже, только пакеты, триггеры и представления контролируются исходным кодом, структуры таблиц (включая «изменение таблицы» и необходимые преобразования данных развертываются через канал, отличный от контроля версий). Это невозможно изменить в рамках нашего проекта.
Поддержание набора данных тестирования кажется невозможным, поскольку новый код развертывается в производственной среде еженедельно, обычно без предварительного уведомления, часто меняя структуру данных (добавьте столбец здесь, удалите один там).
Буду рад любым предложениям или ссылкам, которые могут нам помочь. Некоторые члены команды, как правило, устают выяснять, с чего начать, поскольку наш опыт работы с модульным тестированием не распространяется на устаревшие системы с интенсивным использованием данных PL / SQL (только на те проекты Java, которые «из книги»).