Ответ
Тестирование на основе таблицы состояний и переходов (State Transition Testing) — это техника тестирования черного ящика, которая проверяет поведение системы при различных событиях и ее переходы между допустимыми состояниями.
Ключевые концепции:
- Состояние (State): Условие или режим работы системы в определенный момент (например,
Дверь: "Закрыта",Пользователь: "Заблокирован"). - Переход (Transition): Изменение состояния в результате какого-либо события или входных данных.
- Событие (Trigger): Действие, которое инициирует переход (например,
нажать_кнопку,ввести_пароль).
Пример для системы входа:
Состояния: Вход не выполнен, Вход выполнен, Заблокирован.
События: Ввести верный пароль, Ввести неверный пароль, Выйти.
| Таблица переходов (State Transition Table): | Текущее состояние | Событие | Новое состояние |
|---|---|---|---|
| Вход не выполнен | Ввести верный пароль | Вход выполнен | |
| Вход не выполнен | Ввести неверный пароль (1-й раз) | Вход не выполнен | |
| Вход не выполнен | Ввести неверный пароль (3-й раз подряд) | Заблокирован | |
| Вход выполнен | Выйти | Вход не выполнен | |
| Заблокирован | (любое событие) | Заблокирован (остается) |
Как тестировать?
- Определите все возможные состояния системы.
- Определите события, которые вызывают переходы.
- Постройте диаграмму или таблицу переходов.
- Спроектируйте тест-кейсы для проверки:
- Всех валидных переходов.
- Невалидных переходов (например, попытка выйти, не войдя в систему).
- Граничных условий (например, 3 неверные попытки пароля).
Применение: Эта техника особенно эффективна для тестирования протоколов, бизнес-процессов, автоматов и любого ПО с четко выраженными состояниями.