Тестирование и обеспечение качества (Quality Assurance, QA) для многих «братья-близнецы», отличить которые друг от друга может только специалист IT-сферы. Несмотря на их взаимосвязь, это совершенно разные термины. Кроме того, их нельзя путать с третьим понятием – контролем качества (Quality Control, QC).
В сегодняшней статье мы расскажем подробнее о каждом из вышеперечисленных видов деятельности и окончательно расставим все точки над i в этом вопросе.
Тестирование vs. обеспечение качества
Так в чем же различие между этими понятиями и почему тестировщиков часто называют специалистами в сфере QA?
Обеспечение качества, в сравнении с тестированием, является более широким понятием. QA помогает оценить правильность протекания технологических процессов на всех этапах разработки ПО для обеспечения его высокого качества.
Кроме тестирования, QA также включает в себя контроль качества, который отвечает за соблюдение предъявляемых к системе требований. Если представить все три термина в виде иерархии, то тестирование окажется частью QC, а QC – частью QA.
Таким образом, тестирование заключается в большей степени в проверке работоспособности программного продукта и поиске дефектов, в то время как для QA важно также обеспечить соблюдение стандартов и предотвратить появление ошибок и багов в ПО.
Обобщим:
- Тестировщик работает с продуктом как с результатом (т. е. он предполагает, что именно эта версия ПО попадёт в руки конечного пользователя).
- QA-инженер работает с продуктом, который находится в процессе создания (т. е. у ПО ещё нет конечной версии).
Зачастую профессии тестировщика ПО и QA-инженера воспринимаются тождественно, однако в выполняемых специалистами задачах существует ряд отличий.
Особенности обеспечения качества
Процесс QA включает в себя подготовку плана тестирования, планирование и проведение тестирования, а также управление его результатами. Это помогает определить требования как для разработки ПО, так и для проверки его качества.
В обязанности QA-инженера зачастую входят:
- детализация требований к системе;
- подготовка тестов и сам процесс тестирования;
- поиск и фиксирование дефектов;
- контроль исправления багов;
- документирование дефектов.
В работе QA-инженера также очень много коммуникации, в том числе с заказчиком. Но не стоит пугаться. В зависимости от компании и проекта часть обязанностей QA-инженер может разделять с бизнес-аналитиками, техническими писателями или тестировщиками, поэтому одна из отличительных черт процесса QA – вовлечённость всей проектной команды.
Исходя из этого, соотношение работы QA-инженера по планированию и по тестированию может сильно отличаться.
Что нужно знать о контроле качества?
В QA существует более узкая специализация – это контроль качества. Специалисты этой сферы занимаются анализом результатов тестирования и ликвидацией обнаруженных дефектов. Процедура QC позволяет обеспечить соответствие программного продукта определённому набору критериев и требований, установленных на этапе обеспечения качества.
По сравнению с QA контроль качества требует больше времени и может быть выполнен только после этапа обеспечения качества.
Чтобы процесс контроля качества прошёл максимально эффективно, на проекте нужно:
- установить требования и стандарты;
- определить перечень мероприятий по контролю качества;
- собрать реальные данные и проанализировать их.
Если выявляется отклонение, его корректируют, а процедуру повторяют. QC нужен, чтобы убедиться, что все внесённые изменения дали нужные результаты.
Таким образом, основная задача контроля качества – предоставлять информацию о текущем качестве программного продукта на всех этапах разработки.
Что же тогда делает тестировщик?
Профессия тестировщика предполагает составление технической документации, разработку автотестов и их прогон, выявление и анализ ошибок в системе, разработку сценариев тестирования, документирование и многое другое.
В действительности так сложилось, что должности тестировщика и QA-инженера стали синонимами. Даже в документации для заказчика тестировщики обычно записываются как QA Engineers, хотя, как мы уже поняли, выполняемые ими функции отличаются.
Сейчас в большинстве случаев специалисты начинают свою карьеру в IT именно с позиции junior-тестировщика. Это одна из самых лёгких и быстрых точек входа, особенно после прохождения курсов по тестированию ПО. Именно junior-специалисты тестируют разработку по готовым сценариям, в то время как их middle- и senior-коллеги ответственны за разработку планов и тест-кейсов.
Подведём итог
Несмотря на всю разницу между такими понятиями, как обеспечение качества, контроль качества и тестирование, у них есть общая цель, а именно, выпустить высококачественное ПО, которое сможет удовлетворить потребности потенциального пользователя.
Пока не изобрели способ, как создать идеальное ПО, но изобрели методы, которые позволяют свести вероятность ошибок к минимуму и предотвратить их появление. Именно такими методами и являются обеспечение качества, контроль качества и тестирование.