Тестирование переходов состояний на примере
⚡ Умное резюме
Тестирование переходов состояний — это метод «черного ящика», который проверяет, как приложение переходит между состояниями при изменении входных условий. В этом руководстве объясняются четыре части диаграммы, разница между диаграммами состояний и таблицами, а также приводятся примеры работы с банкоматом и авторизацией для тестировщиков.
Что такое тестирование перехода состояний?
Тестирование перехода состояния Это метод тестирования «черного ящика», при котором изменения входных условий вызывают изменения состояния или выходных данных в тестируемом приложении (AUT). Он помогает анализировать поведение приложения при различных входных условиях, а тестировщики могут задавать положительные и отрицательные входные значения, одновременно регистрируя поведение системы.
Он основан на модели, на которой построена система и тесты. Любая система, в которой на один и тот же входной сигнал вы получаете разный результат — в зависимости от того, что произошло раньше, — является конечно-состоятельной системой. Метод тестирования переходов состояний полезен там, где это необходимо. протестировать различные системные переходы.
Когда следует использовать тестирование переходов состояний
- Когда тестировщик проверяет приложение на конечном наборе входных значений.
- Когда тестировщик проверяет последовательность событий, происходящих в тестируемом приложении, это позволяет проверить поведение приложения при последовательности входных значений.
- Когда тестируемая система зависит от событий или значений из прошлого.
Когда не следует полагаться на тестирование перехода состояний
- Когда тестирование не проводится для последовательных входных комбинаций.
- Когда тестирование направлено на различные функции, например, в рамках исследовательского тестирования.
Четыре части диаграммы перехода состояний
Модель государственного перехода включает четыре основных компонента, описанных ниже.
1) Состояния до которого может добраться программное обеспечение.
2) Переход из одного состояния в другое.
3) События которые запускают переходный процесс, например, закрытие файла или снятие денег.
4) Действия которые возникают в результате перехода, например, сообщение об ошибке или получение наличных денег.
Диаграмма переходов состояний против таблицы переходов состояний
Существует два основных способа представления или проектирования переходов состояний: диаграмма переходов состояний и таблица переходов состояний.
| Аспект | Диаграмма перехода состояний | Таблица перехода состояний |
|---|---|---|
| Также называемый | Диаграмма/график состояния | Таблица состояний |
| Представление | Boxes — состояния, стрелки — переходы. | Сетка состояний (строки) и событий (столбцы) |
| Лучший для идентификации | Допустимые переходы | Недопустимые переходы |
| Каждая ячейка показывает | - | Состояние, достигнутое после события. |
Как осуществить переход между состояниями (примеры)
Пример 1: Блокировка банкомата по PIN-коду
Рассмотрим функцию банкомата, в которой, если пользователь трижды вводит неверный пароль, учетная запись блокируется.
В этой системе, если пользователь вводит действительный пароль в любой из первых трех попыток, он успешно входит в систему. Если пользователь вводит неверный пароль в первую или вторую попытку, ему предлагается ввести его повторно. Наконец, если пользователь вводит неверный пароль в третий раз, учетная запись блокируется.
Диаграмма переходов состояний (Пример 1)
На схеме показано, что при вводе правильного PIN-кода пользователь переходит в состояние «Доступ предоставлен». При вводе неверного пароля пользователь переходит к следующей попытке, а при третьей попытке — к состоянию «Учетная запись заблокирована».
Таблица переходов состояний (Пример 1)
| Область | Правильный PIN-код | Неправильный PIN-код |
|---|---|---|
| С1) Пуск | S5 | S2 |
| S2) 1-я попытка | S5 | S3 |
| S3) 2-я попытка | S5 | S4 |
| S4) 3-я попытка | S5 | S6 |
| S5) Доступ предоставлен | – | – |
| S6) Учетная запись заблокирована | – | – |
В таблице показано, что при вводе пользователем правильного PIN-кода состояние переходит в S5 (Доступ предоставлен). Если пользователь вводит неверный пароль, он переходит в следующее состояние, а после третьей неверной попытки — в состояние «Учетная запись заблокирована».
Пример 2: Вход в систему бронирования авиабилетов
На экране входа в систему бронирования авиабилетов необходимо ввести правильное имя агента и пароль для доступа к системе. заявка на бронирование авиабилетов.
Граф перехода состояний
Приложение допускает три попытки ввода пароля; если пользователь введёт неверный пароль на четвёртой попытке, система автоматически закроет приложение.
Граф состояний помогает определить допустимые переходы для проверки. Проверка как с правильным, так и с неправильным паролем обязательна, и для тестовые сценарииМожно проверить каждую из двух попыток входа в систему: вторую, третью или четвертую. Для определения недопустимых переходов системы можно использовать таблицу состояний.
В таблице состояний слева перечислены все допустимые состояния, а вверху — события, которые их вызывают. Каждая ячейка показывает, в какое состояние переходит система при возникновении события. Например, в состоянии S1 правильный пароль переводит вас в состояние S6 (Доступ предоставлен); неправильный пароль с первой попытки переводит вас в состояние S3 (Вторая попытка). Аналогичным образом можно определить все остальные состояния.
При использовании этого метода выделяются два недопустимых состояния. Предположим, вы находитесь в состоянии S6 (уже авторизованы) и открываете еще один экземпляр системы бронирования авиабилетов, вводя пароли для того же агента. Необходимо протестировать реакцию системы на подобный сценарий.
Преимущества и недостатки метода государственного перехода
| Преимущества | Недостатки |
|---|---|
| Предоставляет графическое или табличное представление поведения системы, включая информацию о её работе.ping Тестировщик должен эффективно изучить и понять систему. | На него нельзя полагаться всегда — например, он не подходит для систем, которые не являются конечными или последовательными. |
| Это позволяет тестировщику убедиться в том, что все условия учтены, и результаты зафиксированы. | Требуется определить все возможные состояния. Это работает для небольших систем, но перестаёт работать для больших из-за экспоненциального роста числа состояний. |






