Я тестирую довольно сложную систему, которая работает в соответствии с некоторыми бизнес-правилами (написанными как полуформальный текст).
Цель состоит в том, чтобы создать контрольные примеры, охватывающие как можно больше состояний системы. Я хочу автоматизировать эту задачу следующим образом:
1) Формализовать бизнес-правила в Drools
2) Затем используйте некоторый механизм для создания списка всех возможных ситуаций (которые необходимо протестировать)
Например, у меня есть следующий пакет бизнес-правил с двумя правилами (это только пример, реальные бизнес-правила намного сложнее):
global List outErrorCodes;
global Boolean condition1;
global Boolean condition2;
global Boolean condition3;
rule "01"
when
eval( condition3 == false);
then
outErrorCodes.add("ERROR_CODE1");
end
rule "02"
when
eval((condition1 == true) && (condition2 == true));
then
outErrorCodes.add("ERROR_CODE2");
end
условие1, условие2 и условие3 являются входами.
outErrorCode - это вывод.
То есть условие 1, условие 2 и условие 3 описывают определенную ситуацию, а outErrorCode описывает ожидаемое поведение системы в этой конкретной ситуации.
Я хочу создать механизм, который автоматически создает список всех возможных кортежей (условие 1, условие 2, условие 3, outErrorCodes), основываясь на логике в правилах. Каждый кортеж представляет состояние системы.
Эти кортежи будут затем использоваться в качестве основы для создания реальных тестовых случаев.
Возможно ли это с Drools? Если так - как?
Большое спасибо заранее
Дмитрий