Тестировщик, или 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) тестирование: имитация реального использования системы.
- Смоук-тестирование: быстрая проверка основных функций.
- Повторное тестирование: проверка исправлений багов.
- Регрессионное тестирование: проверка системы после изменений, чтобы убедиться в отсутствии негативного влияния на другие части системы.
Тестирование играет критическую роль в разработке ПО. Знание типов тестирования и методологий позволяет обеспечить высокое качество продукта и удовлетворенность пользователей.