Video Thumbnail

Тестировщик с нуля за 6 часов / QA / Тестирование по полный курс

Лёша Маршал06:02:22
https://www.youtube.com/watch?v=3kgdKE7ndvI

Содержание

Краткое резюме

  • Тестирование — это процесс проверки соответствия реального и ожидаемого поведения ПО с целью выявления дефектов.
  • История тестирования развивалась от отладки и исчерпывающего тестирования в 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)

Методы тестирования по доступу к системе

  • Черный ящик: Тестирование с позиции пользователя, без знания внутренней структуры.
  • Белый ящик: Тестирование с полным доступом к коду, архитектуре, алгоритмам.
  • Серый ящик: Частичный доступ к внутренним данным, например, к базе данных, технической документации.

Статическое и динамическое тестирование

  • Статическое тестирование — проверка документов, требований, дизайна, архитектуры без запуска ПО.
  • Динамическое тестирование — тестирование при запуске приложения, проверка реального поведения.

Альфа- и бета-тестирование

  • Альфа-тестирование — внутреннее тестирование, когда продукт почти готов, ошибки все еще есть.
  • Бета-тестирование — открытое или закрытое тестирование выбранной аудиторией. Позволяет получить реальную обратную связь и проверить продукт в изначальных условиях.

Артефакты тестирования: чек-листы и тест-кейсы

Чек-листы

  • Набор идей проверок без точных шагов.
  • Быстро создаются и гибко используют.
  • Проблемы: могут выполняться по-разному разными тестировщиками, что влияет на качество, редко содержат тестовые данные.

Тест-кейсы

  • Детальное описание проверки с шагами, предпосылками, входными данными и ожидаемыми результатами.
  • Требуют больше времени на подготовку.
  • Используются для детального повторяемого тестирования.

Техники дизайна тестов

  1. Классы эквивалентности — разбивают данные на группы с ожидаемым одинаковым поведением, чтобы сократить количество проверок.
  2. Граничные значения — акцент на проверке значений по краям диапазонов.
  3. Парное тестирование — тестирование всех комбинаций пар параметров, чтобы сократить количество тестов и при этом выявить большинство ошибок.
  4. Таблицы принятия решений — позволяют визуализировать варианты условий и соответствующих действий.
  5. Сценарное тестирование — построение тестов на основе пользовательских сценариев.
  6. Предугадывание ошибок — использование опыта для проверки узких мест, где чаще возникают ошибки.

Баги, баг-репорты и работа с дефектами

  • Дефект (баг) — несоответствие реального поведения ПО заявленным требованиям.
  • Кто заводит баги? Тестировщики, разработчики, поддержка, заказчики и даже пользователи.
  • Где заводят: специальные баг-трекеры (JIRA, YouTrack, Excel).
  • Локализация дефекта — определение причины, воспроизводимости, влияния, окружения.
  • Жизненный цикл бага: создание → назначение → исправление → проверка → закрытие/отклонение.
  • Основные атрибуты баг-репорта:
    • Заголовок (что, где, при каких условиях)
    • Шаги воспроизведения
    • Ожидаемый и актуальный результат
    • Severity (критичность) и Priority (приоритет)
    • Окружение (браузер, ОС, устройство)
    • Скриншоты, видео (по необходимости)
  • Severity делится на: blocker, critical, major, minor, trivial.
  • Priority — очередность исправления: высокий, нормальный, низкий.

«Хороший баг-репорт — это такой, который позволяет без лишних вопросов повторить проблему и понять её важность.» 🐞


Отчёты о тестировании

  • Отчёт — документ, отражающий текущее состояние качества продукта и проведённых тестах.
  • Помогает команде и менеджерам принимать решения.
  • Стандартная структура отчёта:
    • Описание команды тестировщиков и ролей
    • Краткое описание процесса тестирования, методов и инструментов
    • Информация о тестируемых билдах
    • Статистика по дефектам (по критичности, по новизне)
    • Рекомендации (готовность продукта, предстоящие шаги)
    • Расписание и затраты времени
  • Отчёты важны для личной аналитики и развития, а также для прозрачности работы команды.
  • В отчёте не следует включать планы на будущее — только факты.

Итог

Данный курс систематизирует важнейшие аспекты теории тестирования — от основ определения и истории до практического применения техник и артефактов. Благодаря пониманию методологий разработки, видов и методов тестирования, а также правильному оформлению баг-репортов и отчетов, тестировщик сможет эффективно находить дефекты и влиять на качество продукта.