Содержание
-
- Краткое резюме
- История и основные понятия тестирования
- Ключевые понятия: тестирование, качество, QA и QC
- Модели разработки и тестирование
- Объекты и виды тестирования
- Методы тестирования по доступу к системе
- Статическое и динамическое тестирование
- Альфа- и бета-тестирование
- Артефакты тестирования: чек-листы и тест-кейсы
- Техники дизайна тестов
- Баги, баг-репорты и работа с дефектами
- Отчёты о тестировании
- Итог
Краткое резюме
- Тестирование — это процесс проверки соответствия реального и ожидаемого поведения ПО с целью выявления дефектов.
- История тестирования развивалась от отладки и исчерпывающего тестирования в 50–60-х к современным методологиям обеспечения качества и agile-подходам.
- Основные понятия: обеспечение качества (QA), контроль качества (QC), тестирование.
- Методологии разработки и их влияние на процесс тестирования: водопадная, V-образная, инкрементальная, спиральная, agile (скрам).
- Виды тестирования: функциональное и нефункциональное, ручное и автоматизированное, различные уровни (модульное, интеграционное, системное, приемочное).
- Методы тестирования по доступу к внутренностям системы: черный, белый и серый ящик.
- Статическое тестирование — анализ требований и документации без запуска кода, динамическое — с запуском.
- Альфа- и бета-тестирование – этапы проверки продукта с привлечением ограниченной и широкой аудитории.
- Классификация объектов тестирования: код, софт, прототипы, документация, hardware.
- Виды тестирования по объектам и целям: позитивное и негативное (проверка корректной и некорректной работы).
- Тестовые артефакты: чек-листы (простые, гибкие, визуальные), тест-кейсы (подробные, с шагами и ожидаемыми результатами).
- Техники дизайна тестов: классы эквивалентности, граничные значения, попарное тестирование, таблицы принятия решений, сценарное тестирование, предугадывание ошибок.
- Процесс работы с дефектами: обнаружение, локализация, баг-репорты с обязательными атрибутами (шаги воспроизведения, актуальный и ожидаемый результат, критичность).
- Жизненный цикл дефектов и типичные проблемы при работе с баг-репортами.
- Значимость отчетов о тестировании для контроля качества, коммуникации в команде и личного развития.
История и основные понятия тестирования
Тестирование зародилось в 1950–60-х годах с появлением первых компьютеров и программ. Изначально это была отладка — проверка исправности кода через попытки исправить ошибки. Позже появилась концепция исчерпывающего тестирования — проверка всех возможных сценариев, однако было доказано, что исчерпывающее тестирование невозможно.
В 70-х годах изменился подход: сначала тестировщики пытались доказать, что программа работает (позитивное тестирование), затем осознали необходимость поиска ошибок (негативное тестирование).
В 80-х сформировалась теория тестирования и концепция обеспечения качества (QA), включающая не только тестирование, но и предупреждение дефектов — например, через грамотное написание требований. Обеспечение качества охватывает весь жизненный цикл продукта.
В 90-х и далее развивалась автоматизация тестирования. С появлением Agile-методологий и практик, например Scrum (скрам), тестирование стало интегрированной частью разработки, ориентированной на обратную связь клиента и гибкие процессы.
«Качественный продукт — это продукт, который удовлетворяет клиента, а не просто соответствует требованиям.» 📈
Ключевые понятия: тестирование, качество, QA и QC
- Обеспечение качества (QA) — комплекс мероприятий по предотвращению дефектов на всех стадиях разработки. Задача — сделать процесс разработки лучше, чтобы дефектов было меньше.
- Контроль качества (QC) — проверка качества самого продукта, зачастую через процесс тестирования.
- Тестирование — проверка соответствия реального поведения ПО ожиданиям, поиск отличий (дефектов).
Тестировщик в junior-уровне, как правило, занимается именно тестированием и контролем качества, а задачи обеспечения качества лежат на менеджерах или QA-инженерах с более высоким уровнем ответственности.
Модели разработки и тестирование
Водопадная модель
Последовательные этапы: проектирование → разработка → тестирование → эксплуатация. Тестирование проводится после разработки и не предусматривает возврат на предыдущие этапы без значительных усилий.
V-образная модель
Вариант водопада с соответствием этапов проектирования с этапами тестирования: модульное, интеграционное, системное, приемочное тестирование. Позволяет выявлять ошибки на более ранних этапах за счет параллелей.
Инкрементальная и итеративная модели
Проекты разбиваются на части (инкременты), которые разрабатываются, тестируются и выпускаются поочередно. Позволяют гибко и быстро предоставлять функционал с постепенным расширением.
Спиральная модель
Комбинация итераций, анализа рисков и постепенного расширения продукта, проходящая циклы планирования, анализа, разработки, тестирования. Не очень популярна в промышленности из-за сложности.
Agile/Scrum
Гибкая методология с короткими итерациями (спринтами), непрерывным тестированием и обратной связью. В команде есть роли Scrum-мастер, продукт-оунер, разработчики и тестировщики. Важны встречи (планирование, ежедневные стендапы, ретроспектива) и управление задачами в backlog и спринтах.
«В Scrum команда должна «быть свиньями», полностью вовлечёнными в процесс.» 🐷
Объекты и виды тестирования
Какие объекты тестировать?
- Код (модульные тесты)
- Программное обеспечение (приложения, сервисы)
- Прототипы (сырые ранние версии)
- Документация (требования, пользовательские руководства)
- Hardware (железо и взаимодействие с ПО)
Виды тестирования по объектам
- Функциональное — проверка функционала продукта, входит GUI и безопасность как часть функционала.
- Нефункциональное — производительность, безопасность данных, юзабилити, совместимость, установка и др.
- Позитивное тестирование — проверка ожидаемого, правильного поведения.
- Негативное тестирование — проверка, как система ведет себя на ошибочные, неожиданные данные.
По уровню
- Модульное (unit testing)
- Интеграционное
- Системное
- Приемочное (UAT)
Методы тестирования по доступу к системе
- Черный ящик: Тестирование с позиции пользователя, без знания внутренней структуры.
- Белый ящик: Тестирование с полным доступом к коду, архитектуре, алгоритмам.
- Серый ящик: Частичный доступ к внутренним данным, например, к базе данных, технической документации.
Статическое и динамическое тестирование
- Статическое тестирование — проверка документов, требований, дизайна, архитектуры без запуска ПО.
- Динамическое тестирование — тестирование при запуске приложения, проверка реального поведения.
Альфа- и бета-тестирование
- Альфа-тестирование — внутреннее тестирование, когда продукт почти готов, ошибки все еще есть.
- Бета-тестирование — открытое или закрытое тестирование выбранной аудиторией. Позволяет получить реальную обратную связь и проверить продукт в изначальных условиях.
Артефакты тестирования: чек-листы и тест-кейсы
Чек-листы
- Набор идей проверок без точных шагов.
- Быстро создаются и гибко используют.
- Проблемы: могут выполняться по-разному разными тестировщиками, что влияет на качество, редко содержат тестовые данные.
Тест-кейсы
- Детальное описание проверки с шагами, предпосылками, входными данными и ожидаемыми результатами.
- Требуют больше времени на подготовку.
- Используются для детального повторяемого тестирования.
Техники дизайна тестов
- Классы эквивалентности — разбивают данные на группы с ожидаемым одинаковым поведением, чтобы сократить количество проверок.
- Граничные значения — акцент на проверке значений по краям диапазонов.
- Парное тестирование — тестирование всех комбинаций пар параметров, чтобы сократить количество тестов и при этом выявить большинство ошибок.
- Таблицы принятия решений — позволяют визуализировать варианты условий и соответствующих действий.
- Сценарное тестирование — построение тестов на основе пользовательских сценариев.
- Предугадывание ошибок — использование опыта для проверки узких мест, где чаще возникают ошибки.
Баги, баг-репорты и работа с дефектами
- Дефект (баг) — несоответствие реального поведения ПО заявленным требованиям.
- Кто заводит баги? Тестировщики, разработчики, поддержка, заказчики и даже пользователи.
- Где заводят: специальные баг-трекеры (JIRA, YouTrack, Excel).
- Локализация дефекта — определение причины, воспроизводимости, влияния, окружения.
- Жизненный цикл бага: создание → назначение → исправление → проверка → закрытие/отклонение.
- Основные атрибуты баг-репорта:
- Заголовок (что, где, при каких условиях)
- Шаги воспроизведения
- Ожидаемый и актуальный результат
- Severity (критичность) и Priority (приоритет)
- Окружение (браузер, ОС, устройство)
- Скриншоты, видео (по необходимости)
- Severity делится на: blocker, critical, major, minor, trivial.
- Priority — очередность исправления: высокий, нормальный, низкий.
«Хороший баг-репорт — это такой, который позволяет без лишних вопросов повторить проблему и понять её важность.» 🐞
Отчёты о тестировании
- Отчёт — документ, отражающий текущее состояние качества продукта и проведённых тестах.
- Помогает команде и менеджерам принимать решения.
- Стандартная структура отчёта:
- Описание команды тестировщиков и ролей
- Краткое описание процесса тестирования, методов и инструментов
- Информация о тестируемых билдах
- Статистика по дефектам (по критичности, по новизне)
- Рекомендации (готовность продукта, предстоящие шаги)
- Расписание и затраты времени
- Отчёты важны для личной аналитики и развития, а также для прозрачности работы команды.
- В отчёте не следует включать планы на будущее — только факты.
Итог
Данный курс систематизирует важнейшие аспекты теории тестирования — от основ определения и истории до практического применения техник и артефактов. Благодаря пониманию методологий разработки, видов и методов тестирования, а также правильному оформлению баг-репортов и отчетов, тестировщик сможет эффективно находить дефекты и влиять на качество продукта.