12 тестов обеспечат по одному проходу одного цикла за тест. Как мне кажется, для этой задачи можно, скажем так, совместить в один тест проходы более чем по одному циклу, что и делает последний тест. Почему так сделала — здесь, по-моему, важно именно сохранять состояния, эту проверку и реализовывает последний тест, остальные — добавляют покрытие путей, т.е. в этом примере — возможность отменить операцию на каждом шаге.
Не знаю, насколько понятно объяснила, к тому же, это мое понимание, которое может не совпадать с правильным. :)
Все переходы на отмену делала из Changed-состояний. Исключение — Setup Type, там разруливала двумя ветками на два выбора, но для перехода на отмену это неважно.
В контексте этой статьи — можно автоматизировать поиск путей в графе по заданному типу покрытия, полагаю (на счет конкретных инструментов, решающих эту задачу, не подскажу, но думаю, можно обойтись произвольным языком программирования: реализаций разных алгоритмов поиска чего бы то ни было в графе, должно быть, масса). А имея пути, можно автоматизировать прохождение по визарду по каждому из них. Поскольку речь о десктоп-приложении, то, полагаю, понадобится что-то вроде TestComplete.
Слабое vs. сильное: в слабом формируют минимальное количество тестов, содержащих каждый параметр хотя бы один раз, в сильном тесты должны содержать все возможные комбинации параметров, т.е. это исчерпывающее множество тестов. Их количество может быть достаточно большим: произведение количества возможных значений каждого из параметров. Т.е. при добавлении еще одного значения в какой-то параметр количество слабых тестов увеличивается на 1, а сильных — на произведение количества возможных значений всех остальных параметров.
Нормальное vs. надежное: в нормальном комбинировании в тестах не участвуют невалидные значения, в надежном — участвуют. :)
Как выбирать, что из этого Вам необходимо:
1. Только happy flows, дымовое тестирование: слабое нормальное.
2. Все happy flows: сильное нормальное.
3. Для каждого параметра применили классы эквивалентности и выбрали конкретные значения, на которых будут тестировать. Набор тестов, который содержит каждое из значений хотя бы один раз: слабое надежное. При проектировании PICT обычно добавляю условие про не больше одного негативного в тесте. Это может несколько увеличить набор, но зато при прохождении убережет от выяснения, что же за значение вызвало ошибку, если таковая находится.
4. Для каждого параметра применили классы эквивалентности и выбрали конкретные значения, на которых будут тестировать, или значения параметров заданы жестко и немногочисленны. Исчерпывающее тестирование — сильное и надежное комбинирование.
Граф — абстракция, которая может применяться в разных случаях. В контексте тестирования я применяю для проверок состояний и переходов, например, для сущности. В контексте программирования, вероятно, пригодится для покрытия тестами графа потока управления. Но я в первую очередь тестировщик, который немного увлекается статистикой и R, а не программист. :)
Вторая
Не знаю, насколько понятно объяснила, к тому же, это мое понимание, которое может не совпадать с правильным. :)
Нормальное vs. надежное: в нормальном комбинировании в тестах не участвуют невалидные значения, в надежном — участвуют. :)
Как выбирать, что из этого Вам необходимо:
1. Только happy flows, дымовое тестирование: слабое нормальное.
2. Все happy flows: сильное нормальное.
3. Для каждого параметра применили классы эквивалентности и выбрали конкретные значения, на которых будут тестировать. Набор тестов, который содержит каждое из значений хотя бы один раз: слабое надежное. При проектировании PICT обычно добавляю условие про не больше одного негативного в тесте. Это может несколько увеличить набор, но зато при прохождении убережет от выяснения, что же за значение вызвало ошибку, если таковая находится.
4. Для каждого параметра применили классы эквивалентности и выбрали конкретные значения, на которых будут тестировать, или значения параметров заданы жестко и немногочисленны. Исчерпывающее тестирование — сильное и надежное комбинирование.
Надеюсь, не запутала. :)
Да, вдохновляюсь Coursera, в процессе прохождения data science specialization. Там тоже один из курсов посвящен визуализации (и не только).