В каждом из 4 состояний доступно 2 события, дающих 8 переходов, которые автор решил проверить в 8 отдельных тестовых последовательностях. Каждая последовательность (кроме последовательностей S1 - очевидно, начальное состояние машины - S1) должна привести машину в целевое состояние и затем выполнить либо событие a, либо событие b.
Выбранные им последовательности достаточны для каждого перехода. Однако они не уникальны и, как вы заметили, не минимальны.
Более очевидный выбор:
б
аа аа
ааа ааб
ба бб
Я не понимаю цели автора в добавлении лишних переходов в конце каждой последовательности. Система представляет собой машину Мили - ее поведение однозначно определяется текущим состоянием и событием. Нет памяти о пути, ведущем к текущему состоянию; поэтому дополнительные переходы автора не дают дополнительного освещения и служат только для того, чтобы запутать.
Вы также правы, что вы можете покрыть все переходы более коротким набором путей через график. Однако я бы не хотел этого делать. Ясность важнее, чем оптимизация тестового кода.