Добрый день. Такой вопрос:
У меня есть два компонента (Raspbry + система управления питанием), которые между собой взаимодействуют как конечные автоматы.
Я бы хотел чтобы в комплексе эти две вещи работали максимально "правильно".
У меня есть
1. цепочки переходов состояний заданные мной, которые приводят к "хорошим" состояниям.
2. цепочки переходов состояний заданные мной, которые приводят к "плохим" состояниям. но они известны и я готов с ними жить.
Я подумал что я могу использовать FsCheck для того чтобы найти хитрые комбинации событий в системе, которые я не жду и которые приведут к нежелательному дя меня результату.
Пока у меня не получается придумать разумные инварианты. Как я понимаю в терминологии FsCheck это Property. Потому я решил начать с простого и задать вопросы
1. FsCheck это разумный выбор для подобной задачи?
2. Есть ли какие то рекомендации как формировать инварианты для конечных автоматов?