Что такое тестирование на основе таблицы состояний и переходов (STLS)?

«Что такое тестирование на основе таблицы состояний и переходов (STLS)?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Тестирование на основе таблицы состояний и переходов (State Transition Testing) — это техника тестирования черного ящика, которая проверяет поведение системы при различных событиях и ее переходы между допустимыми состояниями.

Ключевые концепции:

  • Состояние (State): Условие или режим работы системы в определенный момент (например, Дверь: "Закрыта", Пользователь: "Заблокирован").
  • Переход (Transition): Изменение состояния в результате какого-либо события или входных данных.
  • Событие (Trigger): Действие, которое инициирует переход (например, нажать_кнопку, ввести_пароль).

Пример для системы входа:

Состояния: Вход не выполнен, Вход выполнен, Заблокирован. События: Ввести верный пароль, Ввести неверный пароль, Выйти.

Таблица переходов (State Transition Table): Текущее состояние Событие Новое состояние
Вход не выполнен Ввести верный пароль Вход выполнен
Вход не выполнен Ввести неверный пароль (1-й раз) Вход не выполнен
Вход не выполнен Ввести неверный пароль (3-й раз подряд) Заблокирован
Вход выполнен Выйти Вход не выполнен
Заблокирован (любое событие) Заблокирован (остается)

Как тестировать?

  1. Определите все возможные состояния системы.
  2. Определите события, которые вызывают переходы.
  3. Постройте диаграмму или таблицу переходов.
  4. Спроектируйте тест-кейсы для проверки:
    • Всех валидных переходов.
    • Невалидных переходов (например, попытка выйти, не войдя в систему).
    • Граничных условий (например, 3 неверные попытки пароля).

Применение: Эта техника особенно эффективна для тестирования протоколов, бизнес-процессов, автоматов и любого ПО с четко выраженными состояниями.