Моя установка следующая:
- Написание клиента WPF с использованием шаблона MVVM
- Набор модульных тестов
- Набор сценариев SpecFlow
При создании сценариев SpecFlow я сначала рисую диаграмму конечного автомата, чтобы увидеть все возможные варианты взаимодействия с пользователем и требования для перехода из одного состояния в другое. Затем я создаю список всех возможных сценариев.
Например:
- Пользователь нажимает «Да» -> «Загружает документ» -> «Удаляет документ» -> нажимает «Отправить».
- Пользователь нажимает Да -> Загружает документ -> кликает отправить
- Пользователь нажимает «Да» -> нажимает «Отправить».
Это позволяет убедиться, что мы тестируем все возможные сценарии и не упускаем ни одного. Однако это утомительный процесс, и он становится довольно проблематичным, если требования меняются.
Интересно, есть ли структура, которая могла бы создавать ваши сценарии из вашей конечной машины, поэтому, если шаг удаляется из конечной машины, он автоматически воссоздает ваши сценарии.