QA-тестировщик: типы и виды тестирования ПО

Тестировщик, или QA (от английского quality assurance — «обеспечение качества»), проверяет приложения и сервисы перед их выпуском. Они ищут ошибки, сбои и проблемы с функционалом. QA проверяет визуальную составляющую (например, отсутствие посторонних элементов на изображениях), работоспособность на разных платформах, кросс-браузерную совместимость, отсутствие конфликтов между функционалом, а также совместимость с различными устройствами. Без качественного тестирования компании рискуют потерять пользователей, репутацию и средства.

Методы работы тестировщиков

Ключевой инструмент — тест-кейсы. Это документы, описывающие:

  • Проверяемый объект;
  • Условия проверки;
  • Действия;
  • Ожидаемый результат.

Пример тест-кейса:

Название Проверка подписки на Merion Academy
Условие Открыта страница с роликом Merion Academy
Шаг Ожидаемый результат
Нажать на кнопку «Подписаться» Кнопка «Подписаться» становится серой
Нажать на кнопку подписки Откроется страница с моими подписками
Найти канал Merion Academy в списке подписок Канал Merion Academy найден в списке подписок

Тест-кейсы составляются для всех функций продукта. Они позволяют отслеживать ход тестирования, фиксировать результаты и выявлять ошибки. При составлении тест-кейсов QA взаимодействует с аналитиками, продакт-менеджерами и разработчиками. Важно также креативное мышление, поскольку пользователи часто используют продукт нестандартно. Результаты тестирования оформляются в баг-репорт и передаются разработчикам.

Ручное и автоматическое тестирование

Тестирование бывает ручным и автоматизированным.

  • Ручное тестирование: QA вручную выполняет шаги из тест-кейсов.
  • Автоматизированное тестирование: тестировщики пишут программы, имитирующие действия пользователя или отправляющие запросы и проверяющие ответы.

Не все тесты автоматизируемы. Например, тестирование работы с физическими устройствами (наушниками) или проверка верстки сайта требуют ручного вмешательства.

Необходимые знания тестировщика

Профессия тестировщика имеет невысокий порог входа, но требует определённых знаний:

  • Принципы и типы тестирования;
  • Написание тест-кейсов и отчетов;
  • Работа с системами баг-трекинга (Jira);
  • Работа с API (Postman);
  • Знание сетевой модели OSI;
  • Понимание клиент-серверной архитектуры;
  • Базовые знания SQL.

Для автоматизированного тестирования необходимы навыки программирования (например, Python) и опыт работы с инструментами автоматического тестирования (Selenium, Sahi).

Типы тестирования

Существует множество типов тестирования. Рассмотрим основные:

  • Функциональное тестирование: проверка функций системы.
  • Нефункциональное тестирование: проверка безопасности, надежности, масштабируемости, производительности, инсталляции, удобства использования, локализации и работы на разных устройствах.
  • Позитивное тестирование: использование корректных данных.
  • Негативное тестирование: использование некорректных данных для проверки обработки ошибок.
  • Альфа-тестирование: тестирование ранней версии внутри компании-разработчика.
  • Бета-тестирование: тестирование почти готового продукта ограниченным числом внешних пользователей.
  • Модульное (юнит) тестирование: проводится разработчиками на отдельных компонентах.
  • Интеграционное тестирование: проверка взаимодействия компонентов.
  • Системное тестирование: проверка всей системы (включая сквозное и смоук-тестирование).
    • Сквозное (end-to-end) тестирование: имитация реального использования системы.
    • Смоук-тестирование: быстрая проверка основных функций.
  • Повторное тестирование: проверка исправлений багов.
  • Регрессионное тестирование: проверка системы после изменений, чтобы убедиться в отсутствии негативного влияния на другие части системы.

Тестирование играет критическую роль в разработке ПО. Знание типов тестирования и методологий позволяет обеспечить высокое качество продукта и удовлетворенность пользователей.

Что будем искать? Например,программа