Pepelen
Тестирование ПО: профессия QA с нуля

Lesson

Урок 3. Переходы состояний и (обзорно) покрытие операторов/ветвей

Проектировать проверки по диаграмме переходов состояний и понимать идею покрытия операторов и ветвей.

1 / 6

Переходы состояний и покрытие кода

Автоматы состояний и белый ящик

Многие системы можно описать как конечный автомат: набор состояний, события, которые вызывают переходы между ними. Тестирование переходов состояний строится на диаграмме: рисуем состояния (например, «Вышел из системы», «Авторизован», «Заблокирован»), события (ввод верных данных, ввод неверных данных, нажатие «Выйти») и стрелки-переходы. Валидные переходы — те, что предусмотрены системой: ввод верного пароля переводит пользователя из «Вышел из системы» в «Авторизован». Невалидные переходы — попытки перейти туда, куда система перехода не предусматривает: попытка вернуться в «Авторизован» из «Заблокирован» напрямую, без разблокировки администратором. Тестировщик проверяет и те, и другие, чтобы убедиться: система реагирует правильно и не позволяет лишних переходов. Обзорно о белом ящике. Когда у тестировщика есть доступ к коду, он может применять метрики покрытия. Покрытие операторов (statement coverage) — каждая строка кода выполнена хотя бы раз. Покрытие ветвей (branch coverage) — каждая ветка условия if прошла хотя бы по истинному и по ложному пути. Покрытие ветвей строже: если в коде есть if без else, одного теста недостаточно — нужны минимум два, чтобы условие выполнилось и не выполнилось. На этом курсе мы не пишем код, но понимать разницу важно для общения с разработчиками и чтения отчётов о покрытии.
Lesson notes
Автоматы состояний и белый ящик
Многие системы можно описать как конечный автомат: набор состояний, события, которые вызывают переходы между ними. Тестирование переходов состояний строится на диаграмме: рисуем состояния (например, «Вышел из системы», «Авторизован», «Заблокирован»), события (ввод верных данных, ввод неверных данных, нажатие «Выйти») и стрелки-переходы. Валидные переходы — те, что предусмотрены системой: ввод верного пароля переводит пользователя из «Вышел из системы» в «Авторизован». Невалидные переходы — попытки перейти туда, куда система перехода не предусматривает: попытка вернуться в «Авторизован» из «Заблокирован» напрямую, без разблокировки администратором. Тестировщик проверяет и те, и другие, чтобы убедиться: система реагирует правильно и не позволяет лишних переходов. Обзорно о белом ящике. Когда у тестировщика есть доступ к коду, он может применять метрики покрытия. Покрытие операторов (statement coverage) — каждая строка кода выполнена хотя бы раз. Покрытие ветвей (branch coverage) — каждая ветка условия if прошла хотя бы по истинному и по ложному пути. Покрытие ветвей строже: если в коде есть if без else, одного теста недостаточно — нужны минимум два, чтобы условие выполнилось и не выполнилось. На этом курсе мы не пишем код, но понимать разницу важно для общения с разработчиками и чтения отчётов о покрытии.
Урок 3. Переходы состояний и (обзорно) покрытие операторов/ветвей — Тестирование ПО: профессия QA с нуля