Есть система (типа scada), программирование которой сводится к рисованию схем алгоритмов из неких стандартных блочков.
Задача состоит в том, чтобы протестировать нарисованные алгоритмы на предмет их соответствия функциональным требованиям.
Понятие "код" не применимо ни к блочкам (они закрыты), ни к программе в целом. "Текст программы" вообще не фигурирует.
Каждый блочок сопровождается неким подобием таблицы истинности, описывающей что подавать и что, соотв., с него снимать. Задавать входные воздействия можно тоже только таблицами с перечнем входов и их значений.
То, как готовые схемы тестируются сейчас больше всего напоминает творчество художника: тестировщику приходится некоторое время медитировать на функциональные требования, после чего он широкими мазками начинает ваять тестовые таблицы. И каждый раз "с чистого листа" — алгоритмы могут хоть чуть-чуть, но все-же отличаться друг от друга.
Собственно вопрос. Действительно ли применяемый метод тестирования оптимален для таких "зажатых" условий?
Не будет ли более рациональным и менее ресурсоемким собрать библиотеку тестов для всех стандартных блочков с тем, чтобы затем просто комбинировать готовые тесты сообразно требованиям конкретных алгоритмов?
Например (максимально упрощенный), два стандартных блочка AND и OR. Выход одного подключен ко входу другого. Вместо того, чтобы писать тест для проверки таблицы истинности этой схемы вцелом, может быть будет лучше скомбинировать тесты AND'а и OR'а?
Второй подход видится сулящим большие леготы, как то: формализация процесса тестирования, уменьшение человеческого фактора, упрощение рефакторинга готовых тестов...
Что скажете? М.б. есть готовые инструменты, позволяющие комбинировать тестовые таблицы?
Спасибо.