Тест-кейсы, чек-листы и баг-репорты
На прошлых лекциях мы разобрали, что такое тестирование и как придумывать тесты (классы эквивалентности, граничные значения). Но мало просто «придумать» — нужно оформить свои проверки так, чтобы их поняли коллеги, разработчики и заказчик.
Сегодня мы разберём три главных документа тестировщика: тест-кейс, чек-лист и баг-репорт.
План лекции
Сегодня мы разберём три документа, которые сопровождают тестирование.
- 1 Зачем документировать тестирование
- 2 Тест-кейс: структура и поля
- 3 Хороший и плохой тест-кейс
- 4 Чек-лист: когда он нужен
- 5 Отличие чек-листа от тест-кейса
- 6 Баг-репорт: структура и поля
- 7 Хороший и плохой баг-репорт
- 8 Приоритет и серьёзность дефекта
- 9 Жизненный цикл бага
- 10 Типичные ошибки
- 11 Итоги и практика
Зачем документировать тестирование
Многие новички думают: «Зачем писать какие-то бумажки? Я и так помню, что нужно проверить». Но это работает только для маленьких учебных проектов.
Вы не забудете, что именно нужно проверить.
Коллега сможет выполнить ваши тесты без вас.
Тесты можно выполнять снова и снова после изменений в коде.
Руководство видит, что именно было проверено.
Тест-кейс: структура
Тест-кейс (test case) — это описание проверки: что подаём на вход, что ожидаем получить и при каких условиях.
Пример тест-кейса
Вот как выглядит правильно оформленный тест-кейс.
Хороший и плохой тест-кейс
Давайте сравним два тест-кейса для одной и той же проверки.
«Проверить сложение».
Непонятно: какие числа? что ожидается? как выполнять?
«Ввести 3, нажать +, ввести 5, нажать =. Ожидается 8».
Всё понятно: что делать и что ожидать.
1. Что делаем? (шаги)
2. Что ожидаем? (ожидаемый результат)
3. Как понять, что прошло? (критерий успеха)
Чек-лист: что это
Чек-лист (checklist) — это список проверок без подробных шагов. Он короче тест-кейса, но менее детальный.
Баг-репорт: структура
Баг-репорт (bug report) — это документ, в котором тестировщик описывает найденный дефект так, чтобы программист мог его воспроизвести и исправить.
Пример баг-репорта
Вот как выглядит правильно оформленный баг-репорт.
Хороший и плохой баг-репорт
Сравним два баг-репорта для одной и той же ошибки.
«Калькулятор не работает».
Непонятно: что именно не работает? как повторить? что ожидалось?
«При делении 5 на 0 программа показывает 0 вместо ошибки».
Всё понятно: что делали, что ожидали, что получили.
1. Что делали? (шаги)
2. Что ожидали? (ожидаемый результат)
3. Что получили? (фактический результат)
Приоритет и серьёзность
В баг-репорте часто указывают два параметра: серьёзность (severity) и приоритет (priority). Это не одно и то же.
Жизненный цикл бага
Баг — это не статичная запись. У него есть свой «жизненный цикл».
Типичные ошибки новичков
Без конкретики. Непонятно, что именно не работает и как это повторить.
Разработчик не может повторить ошибку.
Непонятно, что должно было быть.
Один баг — одна запись. Иначе сложно отслеживать.
«Ужасная программа» — не описание бага. Только факты: что сделали, что ожидали, что получили.
Практическое задание
Примените полученные знания на практике.
Задание 1
Напишите тест-кейс для функции «деление двух чисел» (с проверкой деления на ноль).
Задание 2
Составьте чек-лист из 5 пунктов для проверки формы ввода пароля.
Задание 3
Оформите баг-репорт для ошибки: «При вводе буквы вместо числа программа падает с ошибкой».
Шпаргалка
Сохраните этот слайд — здесь все основные понятия лекции.
Итоги лекции
Подведём итоги. Вот что вы теперь знаете.
- ✅ Тест-кейс — подробное описание проверки с шагами и ожидаемым результатом.
- ✅ Чек-лист — краткий список проверок без деталей.
- ✅ Баг-репорт — описание дефекта с шагами воспроизведения.
- ✅ Серьёзность и приоритет — разные параметры.
- ✅ Жизненный цикл бага: New → Assigned → Fixed → Verified → Closed.
- ✅ Хороший баг-репорт отвечает на три вопроса: что делали, что ожидали, что получили.
Домашнее задание
Задания для самостоятельной работы. Первые два обязательны, остальные — для оценки «отлично».
- Напишите 3 тест-кейса для функции «проверка пароля» (длина от 8 до 20 символов).
- Составьте чек-лист из 10 пунктов для проверки формы регистрации.
- Оформите баг-репорт для ошибки «При вводе email без символа @ программа не выдаёт ошибку».
- Найдите в интернете пример реального баг-репорта и сравните его со своим.
- Объясните своими словами, чем отличается серьёзность от приоритета.
Что дальше?
В этом блоке по тестированию у нас ещё несколько материалов.
- Практика 2: модульное тестирование на Python и C++.
- Лекция 4: покрытие кода и метрики (MC/DC).
- Практика 3: интеграционное тестирование.
Спасибо за внимание!
📋
Хороший тестировщик — это ещё и хороший писатель
Умение чётко описать проблему — половина её решения. Тест-кейсы, чек-листы и баг-репорты — ваш главный инструмент.