Тестирование переходов состояний на примере

⚡ Умное резюме

Тестирование переходов состояний — это метод «черного ящика», который проверяет, как приложение переходит между состояниями при изменении входных условий. В этом руководстве объясняются четыре части диаграммы, разница между диаграммами состояний и таблицами, а также приводятся примеры работы с банкоматом и авторизацией для тестировщиков.

  • 🔄 Основная идея: Данный метод проверяет поведение системы в случае, когда один и тот же входной сигнал приводит к различным выходным сигналам в зависимости от предшествующих событий (система с конечным числом состояний).
  • 🧩 Четыре основных элемента: Каждая модель строится из состояний, переходов, событий и действий.
  • 🗺️ Диаграмма против таблицы: Диаграммы показывают допустимые переходы; таблицы выявляют недопустимые переходы.
  • 🏧 Практические примеры: Блокировка PIN-кода банкомата и вход в систему бронирования авиабилетов демонстрируют реальное покрытие сети.
  • 🤖 Поддержка ИИ: Инструменты искусственного интеллекта автоматически генерируют модели состояний на основе требований и отмечают отсутствующие или недопустимые переходы.

Государственное тестирование перехода — Штаты

Что такое тестирование перехода состояний?

Тестирование перехода состояния Это метод тестирования «черного ящика», при котором изменения входных условий вызывают изменения состояния или выходных данных в тестируемом приложении (AUT). Он помогает анализировать поведение приложения при различных входных условиях, а тестировщики могут задавать положительные и отрицательные входные значения, одновременно регистрируя поведение системы.

Он основан на модели, на которой построена система и тесты. Любая система, в которой на один и тот же входной сигнал вы получаете разный результат — в зависимости от того, что произошло раньше, — является конечно-состоятельной системой. Метод тестирования переходов состояний полезен там, где это необходимо. протестировать различные системные переходы.

Когда следует использовать тестирование переходов состояний

  • Когда тестировщик проверяет приложение на конечном наборе входных значений.
  • Когда тестировщик проверяет последовательность событий, происходящих в тестируемом приложении, это позволяет проверить поведение приложения при последовательности входных значений.
  • Когда тестируемая система зависит от событий или значений из прошлого.

Когда не следует полагаться на тестирование перехода состояний

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

Четыре части диаграммы перехода состояний

Модель государственного перехода включает четыре основных компонента, описанных ниже.

1) Состояния до которого может добраться программное обеспечение.

Государственное тестирование перехода — Штаты

2) Переход из одного состояния в другое.

Тестирование перехода между состояниями — Переход

3) События которые запускают переходный процесс, например, закрытие файла или снятие денег.

Тестирование на переход к новому состоянию — Мероприятия

4) Действия которые возникают в результате перехода, например, сообщение об ошибке или получение наличных денег.

Тестирование перехода между состояниями — Действия

Диаграмма переходов состояний против таблицы переходов состояний

Существует два основных способа представления или проектирования переходов состояний: диаграмма переходов состояний и таблица переходов состояний.

Аспект Диаграмма перехода состояний Таблица перехода состояний
Также называемый Диаграмма/график состояния Таблица состояний
Представление Boxes — состояния, стрелки — переходы. Сетка состояний (строки) и событий (столбцы)
Лучший для идентификации Допустимые переходы Недопустимые переходы
Каждая ячейка показывает - Состояние, достигнутое после события.

Как осуществить переход между состояниями (примеры)

Пример 1: Блокировка банкомата по PIN-коду

Рассмотрим функцию банкомата, в которой, если пользователь трижды вводит неверный пароль, учетная запись блокируется.

В этой системе, если пользователь вводит действительный пароль в любой из первых трех попыток, он успешно входит в систему. Если пользователь вводит неверный пароль в первую или вторую попытку, ему предлагается ввести его повторно. Наконец, если пользователь вводит неверный пароль в третий раз, учетная запись блокируется.

Диаграмма переходов состояний (Пример 1)

Диаграмма переходов состояний PIN-кода банкомата

На схеме показано, что при вводе правильного 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 Тестировщик должен эффективно изучить и понять систему. На него нельзя полагаться всегда — например, он не подходит для систем, которые не являются конечными или последовательными.
Это позволяет тестировщику убедиться в том, что все условия учтены, и результаты зафиксированы. Требуется определить все возможные состояния. Это работает для небольших систем, но перестаёт работать для больших из-за экспоненциального роста числа состояний.

Часто задаваемые вопросы (FAQ)

Тестирование переходов между состояниями — это метод «черного ящика», который проверяет, как система переходит между состояниями при изменении входных условий. Он подходит для систем с конечным числом состояний, где один и тот же вход может приводить к различным выходным результатам в зависимости от предшествующих событий.

Четыре составляющие — это состояния (условия, в которых может находиться программное обеспечение), переходы (перемещение между состояниями), события (триггеры, вызывающие переход) и действия (результаты перехода, такие как сообщение или вывод).

Диаграмма переходов состояний использует прямоугольники и стрелки и лучше всего подходит для определения допустимых переходов. Таблица состояний перечисляет состояния относительно событий в сетке и лучше всего подходит для выявления недопустимых переходов.

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

Тестирование с нулевым количеством переключений проверяет каждый допустимый переход один раз. Тестирование с одним переключением проверяет каждую пару последовательных переходов. Более высокое покрытие по количеству переключений выявляет больше дефектов, связанных с последовательностью, но требует больше тестовых случаев.

Это метод «черного ящика». Тестовые примеры формируются на основе ожидаемого внешнего поведения состояний и переходов, без необходимости знания внутреннего исходного кода приложения.

Инструменты искусственного интеллекта анализируют требования и автоматически строят модели состояний, а затем генерируют тестовые примеры, охватывающие допустимые пути и переходы между реберами. Это сокращает трудозатраты на ручное моделирование и улучшает охват сложных последовательностей.

Да. Искусственный интеллект может анализировать модель состояний и отмечать отсутствующие, недостижимые или недопустимые переходы, сравнивая их с ожидаемыми моделями поведения.ping Тестировщики выявляют пробелы, которые часто остаются незамеченными при ручной проверке таблиц.

Подведем итог этой публикации следующим образом: