Баннер мобильный (1) Пройти тест

Тестирование QA и QC: чем они различаются?

В чем отличие QA от QC и нужны ли обе позиции в компании — рассказывают эксперты

Разбор

9 февраля 2024

Поделиться

Скопировано
Тестирование QA и QC: чем они различаются?

Содержание

    Мануальное и автоматизированное тестирование, QA — эти термины при изучении IT-профессий уже привычны. Однако в отделах тестирования крупных корпораций также существуют QC-инженеры. В чем разница между QA и QC, какие задачи они выполняют и есть ли реальное разделение этих профессий на рынке — разбираемся в этой статье.

    Зачем нужно тестирование ПО

    Создание нового программного обеспечения можно разделить на пять обязательных этапов: 

    1. Составление техзадания.
    2. Проектирование.
    3. Разработка.
    4. Тестирование.
    5. Запуск и поддержка.

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

    Чтобы избежать таких ошибок, есть обязательный этап тестирования. Его основная задача — найти баги и исправить их до того, как продукт станет доступен широкому кругу пользователей. Также тестирование помогает:

    • проверить, соответствует ли приложение техзаданию;
    • выявить проблемы на раннем этапе разработки (и сэкономить время и деньги на их исправлении);
    • найти новые способы использования ПО; 
    • повысить лояльность клиентов, ведь любая ошибка, обнаруженная конечным пользователем, может испортить репутацию компании. 

    Проведением тестов на продукте занимаются тестировщики. Проверка может проходить вручную или автоматически при помощи специального кода. Но также отдельно выделяют тестирование QA и QC.

    Что такое QA-тестирование

    Quality Assurance, или QA, — это тестирование, которое начинается одновременно с составлением техзадания. Это работа над качеством продукта на всех этапах его разработки — от планирования до выхода на рынок и встречи с пользователем. 

    Схема отношения QA, QC и тестирования
    QA — контроль качества на протяжении всего периода разработки, а тестирование и QC — его этапы.

    Понятие Quality Assurance намного шире, чем просто исправление ошибок в коде. QA отвечает за все, что так или иначе может повлиять на качество продукта: обучение персонала, аудит процессов, риск-менеджмент. QA могут вносить предложения по улучшению программного обеспечения, ведь в процессе тестирования всегда возникает много идей, как можно усовершенствовать продукт.

    Тестирование QA выполняется на всех этапах жизненного цикла. Специалисты:

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

    QC в тестировании

    QC (Quality Control) — это контроль качества уже созданного продукта. В отличие от QA-специалистов, QC подключаются к проекту только на завершающей стадии разработки.

    Основные задачи QC:

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

    После проверки QC программное обеспечение должно быть полностью готово к сдаче заказчику и выходу на широкий рынок. 

    Разница между QA и QC

    И QA, и QC — важные этапы разработки нового программного обеспечения. Основное отличие между ними в том, что QA — это непрерывная работа над качеством продукта на всех этапах его создания, а QC-test — финальное тестирование перед выходом на рынок. Можно сказать, что QA направлено на профилактику ошибок, а QC — на их выявление и исправление.

    QA
    QC
    Цель
    Улучшение качества продукта, своевременное предотвращение ошибок
    Поиск и удаление багов 
    Направление
    Ориентирован на процесс
    Ориентирован на продукт
    Этап работы
    Работает на протяжении всего цикла разработки продукта 
    В самом конце перед выходом на рынок
    Сотрудники
    Задействована вся команда тестирования и разработки
    Участвуют только тестировщики

    Позиции QA и QC настолько близки, что в вакансиях или организационных структурах компаний сейчас практически не разделяются, я бы даже сильнее противопоставил QA и тестировщиков. Их всех можно сравнить с матрешкой. QA-инженер включается в работу уже на этапе проектирования, организуя разработку ИТ-продукта. Далее начинается зона ответственности специалиста по Quality Control (чаще всего это тот же специалист), а именно проверка соответствия продукта заданным стандартам качества. Уже в конце готовый продукт проверяют тестировщики. В нашей команде есть разделение на QA-инженеров и тестировщиков. Последние подключаются уже на этапе внедрения продукта у клиента. В нашем мессенджере есть звонки и ВКС, и сейчас, когда в тестировании отдельно функция записи, коллеги, по сути, выполняют задачи QC.

    Виктор Михальченко
    QA-инженер платформы корпоративных коммуникаций и мобильности eXpress

    Распределение ролей в команде: где есть и QA, и QC?

    В идеале в процессе разработки должны участвовать все специалисты:

    • тестировщики: разрабатывают и выполняют test-кейсы;
    • QC-специалисты: отвечают за конечное качество продукта;
    • QA-специалисты: контролируют качество на всех циклах производства, начиная с этапа планирования.

    На практике эти функции могут быть распределены между двумя сотрудниками — тестировщиком и QA/QC-специалистом — или их может выполнять один тестировщик. 

    Про QC-инженеров ходят легенды, но на рынке такой профессии не существует. По крайней мере, в том виде, как о ней рассказывают в теории. Видели ли вы когда-нибудь запрос «ищем QC, хотим контролировать качество»? Я — нет. Попробуйте провести эксперимент в команде QA-инженеров и спросить о разнице QA и QC. Скорее всего, все ответят правильно, но после уточнения «а как вы обеспечиваете качество?» могут начаться проблемы. Ведь по факту команда QA не обеспечивает качество, она его контролирует. QA гарантирует качественный продукт, а QC проверяет, действительно ли QA все гарантировал. Значит, качественный продукт должен быть задолго до регрессивного тестирования. Вот и получается, что QA не должен искать баги. Он должен сказать, что продукт соответствует требованиям, еще до того как начнется его тестирование. Достигается это путем тестирования документации, проверки макетов, проведения тест-анализов и RCA и других мероприятий по обеспечению качества. Роли в тестировании постоянно меняются. Обязанности настолько сильно переплелись, что делить инженеров на QA и QC нет смысла. В любом случае, у всех нас одна цель: помочь продукту стать лучше.

    Дмитрий Трофимов,
    QA Lead IT Test

    Четко разделить обязанности QA, QC и тестировщика могут себе позволить крупные компании. Здесь у отдела качества больше работы и выше бюджеты на команду. 

    Востребованные навыки для QA и QC

    Чтобы стать QA- или QC-специалистом, необходим опыт работы в тестировании, а также базовые знания программирования: HTML/CSS, SQL, Jira, система контроля версий Git.

    Навыки, необходимые для работы в QA и QC, могут пересекаться, но в каждой из этих профессий есть свои особенности. QC должен хорошо знать технологии, с которыми работает, уметь анализировать причины возникновения дефектов и оценивать качество продукта по результатам тестирования. Ему важно быть внимательным к деталям и уметь работать с технической документацией. QA же должен анализировать требования, определять критерии качества, выстраивать процесс тестирования.

    Екатерина Белозерцева,
    QA Lead IT-компании Xpage

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

    • Python — для автоматизации тестов.
    • SQL, GraphQL, JSON — чтобы запрашивать нужные данные из базы.
    • HTTP — чтобы искать ошибки в коде сайтов и веб-приложений.
    • ПО для разработки: Git — для хранения версий кода, Pytest — для разработки автотестов, Selenium — для автоматизации тестирования веб-приложений, Postman — для тестирования бэкенда сайта, DevTools — чтобы проверять фронтенд сайта.
    • Для управления данными: ORACLE, PostgreSQL, Grafana, REST API.
    • ПО для управления проектами: Atlassian Jira.

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

    Пример вакансии QA инженера
    Список требований к QA-специалисту. Источник

    Разные компании могут предъявлять свои требования к специалистам по тестированию, поэтому важно внимательно читать текст вакансии, чтобы понять список требований и зону ответственности исполнителя.

    Разбор

    Поделиться

    Скопировано
    0 комментариев
    Комментарии