Сегодня хочу рассмотреть разницу между тестированием, контролем качества (QC) и обеспечением качества (QA).
Статья будет полезна тем, кто начинает свой путь в тестировании.
Если лень читать - смотрите видео :)
Наверняка, если вы уже смотрели вакансии в тестировании, заметили, что многие вакансии тестировщика называются QA инженер или QA специалист. Давайте разберемся, что это значит.
Сферу тестирования можно разделить на 3 условных уровня.
Testing (тестирование)
Включает в себя прохождение тест кейсов, обнаружение и оформление дефектов.
Общая схема тестирования выглядит примерно так:
- Тестировщик получает продукт и требования на входе
- Пишет сам или получает уже готовые тест кейсы
- Проверяет тест кейсы и оформляет дефекты (баги), если находит их
Т.е. это самое настоящее тестирование в самом прямом смысле слова.
Quality control (контроль качества)
Cотрудник отдела контроля качества следит за тем, чтобы обеспечить соответствие продукта (программы / приложения / сайта) требованиям.
Представьте себя на заводе, где изготавливаются детали. Ваша задача - оценить готова ли деталь к выпуску, или ее нужно отправить на доработку.
Для того, чтобы решить, готов ли наш продукт к запуску (релизу) у QC специалиста есть результаты тестирования - количество и приоритет ошибок. Если есть дефекты высокого приоритета, то QC не пропустит такой продукт и будет настаивать на исправлении этих багов.
Quality Assurance (обеспечение качества)
И вот мы добрались до QA.
QA специалист следит за всем процессом разработки продукта (не только за тестированием). Его задача - найти слабые места на проекте и устранить их.
Проще всего разобрать на примере.
Есть проблема на проекте - плохое качество выпускаемого продукта.
QA начинается разбираться, чтобы понять причину. Пообщавшись с командой, он понимает, что на проекте отсутствует грамотное планирование. Новые фичи (функции) берутся в работу без предварительной оценки трудозатрат, и команда “в мыле” пытается успеть к указанному сроку.
В итоге разработчики в спешке допускают много ошибок, а тестировщики не успевают проверить все тестовые сценарии.
Решение - внедрить оценку трудозатрат новых фич и планирование на основе этих трудозатрат.
Или другой пример.
После анализа оказалось, что причина плохого качества в том, что разработчики меняют код после финальной проверки тестировщиков. Т.е. тестировщики проверили одну версию продукта, а в релиз вышла другая, которую никто не проверял. В таком случае можно ввести ограничения на изменение кода перед релизом, когда никто не может обновить код без согласия тестировщиков.
QA ищет истинные причины серьезных ошибок и пытается их устранить при помощи команды проекта. Иногда это “лечится” более тщательным тестированием, иногда изменением процесса, иногда архитектурными улучшениями продукта. В любом случае QA очень полезная роль для проекта, потому что благодаря ему улучшается качество продукта, процессы становятся более правильными и прозрачными, минимизируется риск срыва или переноса релиза.
Testing неразрывно связан с QC, обычно отдел тестирования - это как раз Testing+QC. А вот QA роли на проекте может и не быть. Часто только зрелые компании выделяют роль и даже целый отдел QA. Если в вашей компании нет QA - вы вполне можете им стать :)
Почему же так много вакансий QA специалистов? Дело в том, что многие не знают разницы и под QA специалистами подразумевают обычных тестировщиков. Поэтому смотрите описание вакансии. Если там написание, проверка тест кейсов и заведение багов - это на самом деле не QA, а Testing.