Тестирование на основе состояния (диаграммы состояний) и последовательности переходов - PullRequest
0 голосов
/ 24 декабря 2009

Я действительно застрял с некоторыми концепциями тестирования на основе состояния ...

Я пытаюсь вычислить некоторые проверочные последовательности, которые будут охватывать все переходы из каждого состояния, и у меня есть ответы, но я их не понимаю:

альтернативный текст http://www.gam3r.co.uk/1m.jpg

Теперь у меня есть ответы:

альтернативный текст http://www.gam3r.co.uk/2m.jpg

Я вообще не понимаю этого. Например, скажем, мы хотим проверить переход a / x от s1, разве мы не будем делать только ab? Поскольку мы уже находимся в s1, мы делаем a / x, чтобы проверить переход к s2, затем b, чтобы проверить, что мы находимся в предыдущем правом состоянии (s1)? Я не могу понять, почему это Аба или даже BB для S1 ...

Кто-нибудь может рассказать мне об этом?

Спасибо

1 Ответ

1 голос
/ 26 декабря 2009

В каждом из 4 состояний доступно 2 события, дающих 8 переходов, которые автор решил проверить в 8 отдельных тестовых последовательностях. Каждая последовательность (кроме последовательностей S1 - очевидно, начальное состояние машины - S1) должна привести машину в целевое состояние и затем выполнить либо событие a, либо событие b.

Выбранные им последовательности достаточны для каждого перехода. Однако они не уникальны и, как вы заметили, не минимальны.

Более очевидный выбор:

б аа аа ааа ааб ба бб

Я не понимаю цели автора в добавлении лишних переходов в конце каждой последовательности. Система представляет собой машину Мили - ее поведение однозначно определяется текущим состоянием и событием. Нет памяти о пути, ведущем к текущему состоянию; поэтому дополнительные переходы автора не дают дополнительного освещения и служат только для того, чтобы запутать.

Вы также правы, что вы можете покрыть все переходы более коротким набором путей через график. Однако я бы не хотел этого делать. Ясность важнее, чем оптимизация тестового кода.

...