Мануальное и автоматизированное тестирование, QA — эти термины при изучении IT-профессий уже привычны. Однако в отделах тестирования крупных корпораций также существуют QC-инженеры. В чем разница между QA и QC, какие задачи они выполняют и есть ли реальное разделение этих профессий на рынке — разбираемся в этой статье.
Зачем нужно тестирование ПО
Создание нового программного обеспечения можно разделить на пять обязательных этапов:
- Составление техзадания.
- Проектирование.
- Разработка.
- Тестирование.
- Запуск и поддержка.
В процессе разработки программисты могут допускать ошибки, из-за этого новое приложение будет работать некорректно. Представьте, что вы хотите положить в корзину зеленый свитшот, а приложение разрешает оформить заказ только на красный, — это неприятно.
Чтобы избежать таких ошибок, есть обязательный этап тестирования. Его основная задача — найти баги и исправить их до того, как продукт станет доступен широкому кругу пользователей. Также тестирование помогает:
- проверить, соответствует ли приложение техзаданию;
- выявить проблемы на раннем этапе разработки (и сэкономить время и деньги на их исправлении);
- найти новые способы использования ПО;
- повысить лояльность клиентов, ведь любая ошибка, обнаруженная конечным пользователем, может испортить репутацию компании.
Проведением тестов на продукте занимаются тестировщики. Проверка может проходить вручную или автоматически при помощи специального кода. Но также отдельно выделяют тестирование QA и QC.
Что такое QA-тестирование
Quality Assurance, или QA, — это тестирование, которое начинается одновременно с составлением техзадания. Это работа над качеством продукта на всех этапах его разработки — от планирования до выхода на рынок и встречи с пользователем.
Понятие Quality Assurance намного шире, чем просто исправление ошибок в коде. QA отвечает за все, что так или иначе может повлиять на качество продукта: обучение персонала, аудит процессов, риск-менеджмент. QA могут вносить предложения по улучшению программного обеспечения, ведь в процессе тестирования всегда возникает много идей, как можно усовершенствовать продукт.
Тестирование QA выполняется на всех этапах жизненного цикла. Специалисты:
- проверяют техзадание, чтобы убедиться, что в нем достаточно информации для работы и нет противоречий;
- разрабатывают метрики и критерии для оценки качества ПО;
- составляют план тестирования, определяют, какие функции приложения будут тестироваться и какие тестовые сценарии будут использоваться;
- контролируют функциональное и интеграционное тестирование, чтобы убедиться, что приложение выполняет свои функции и стабильно работает на любом оборудовании и ПО.
QC в тестировании
QC (Quality Control) — это контроль качества уже созданного продукта. В отличие от QA-специалистов, QC подключаются к проекту только на завершающей стадии разработки.
Основные задачи QC:
- Проверить соответствие продукта техзаданию и заявленным требованиям.
- Найти и исправить ошибки, мешающие корректной работе приложения.
- Проверить производительность (скорость работы, время загрузки и т.д.).
- Проверить совместимость приложения с разными устройствами и операционными системами.
- Протестировать пользовательский интерфейс, убедиться, что приложение удобно для пользователей.
- Провести тестирование безопасности, убедиться, что приложение защищено от взлома и кражи персональных данных.
После проверки QC программное обеспечение должно быть полностью готово к сдаче заказчику и выходу на широкий рынок.
Разница между QA и QC
И QA, и QC — важные этапы разработки нового программного обеспечения. Основное отличие между ними в том, что QA — это непрерывная работа над качеством продукта на всех этапах его создания, а QC-test — финальное тестирование перед выходом на рынок. Можно сказать, что QA направлено на профилактику ошибок, а QC — на их выявление и исправление.
Распределение ролей в команде: где есть и QA, и QC?
В идеале в процессе разработки должны участвовать все специалисты:
- тестировщики: разрабатывают и выполняют test-кейсы;
- QC-специалисты: отвечают за конечное качество продукта;
- QA-специалисты: контролируют качество на всех циклах производства, начиная с этапа планирования.
На практике эти функции могут быть распределены между двумя сотрудниками — тестировщиком и QA/QC-специалистом — или их может выполнять один тестировщик.
Четко разделить обязанности QA, QC и тестировщика могут себе позволить крупные компании. Здесь у отдела качества больше работы и выше бюджеты на команду.
Востребованные навыки для QA и QC
Чтобы стать QA- или QC-специалистом, необходим опыт работы в тестировании, а также базовые знания программирования: HTML/CSS, SQL, Jira, система контроля версий Git.
По итогам исследования актуальных вакансий мы в Skillfactory составили список инструментов, владения которыми ждут от тестировщика работодатели:
- Python — для автоматизации тестов.
- SQL, GraphQL, JSON — чтобы запрашивать нужные данные из базы.
- HTTP — чтобы искать ошибки в коде сайтов и веб-приложений.
- ПО для разработки: Git — для хранения версий кода, Pytest — для разработки автотестов, Selenium — для автоматизации тестирования веб-приложений, Postman — для тестирования бэкенда сайта, DevTools — чтобы проверять фронтенд сайта.
- Для управления данными: ORACLE, PostgreSQL, Grafana, REST API.
- ПО для управления проектами: Atlassian Jira.
Также важно базовое понимание того, как работает программное обеспечение, как составляются тестовые сценарии, как вести документацию тестов, как пользоваться программами-багтрекерами. Подробнее о навыках, которых работодатели ждут от тестировщиков, читайте в нашем исследовании.
Разные компании могут предъявлять свои требования к специалистам по тестированию, поэтому важно внимательно читать текст вакансии, чтобы понять список требований и зону ответственности исполнителя.