24/05/2022

Тестирование, Quality control, Quality assurance

Разберем разницу между понятиями Тестирование, Quality Control и Quality Assurance в теории и на одном из примеров.

Процесс Тестирование является частью Quality Control, а Quality Control частью Quality Assurance.

Обеспечение качества (Quality Assurance)

Активности, направленные на обеспечение уверенности в том, что требования к качеству будут выполнены. [Глоссарий ISTQB]

QA (Quality Assurance, обеспечение качества) – это, собственно, весь комплекс процессов, обеспечивающих качество, наиболее обширное понятие. QA интегрировано во все этапы разработки: от описания проекта до тестирования, релиза и даже пост-релизного обслуживания.

Это уже проактивная работа, т.к. основная задача обеспечения качества – это выстроить систему, которая будет превентивно работать на качество продукта, чтобы при тестировании количество дефектов было минимальным.

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

Занимаются Lead специалисты либо менеджеры.

Контроль качества (Quality Control)

Набор действий, предназначенных для оценивания качества компонента или системы. [Глоссарий ISTQB]

QC (Quality Control, контроль качества) – это часть комплекса QA, которая отвечает за анализ результатов тестирования, поиск ошибок и их устранение. В него входят различные процессы, такие как анализ кода, технические обзоры, анализ дизайна, тестирование и прочее.

Quality Control обеспечивает не только проверку продукта на соответствие требованиям, но и соответствие заранее согласованному уровню качества продукта и готовность к выпуску продукта в продакшен. Это совокупность действий, проводимых над продуктом в процессе разработки, для получения информации о его актуальном состоянии в разрезах:

  • готовность продукта к выпуску,
  • соответствие зафиксированным требованиям,
  • соответствие заявленному уровню качества продукта.

Основная задача контроля качества – предоставить объективную картину того, что происходит с качеством продукта на разных этапах разработки.

Занимаются middle специалисты.

Тестирование программного обеспечения

Процесс, содержащий все активности жизненного цикла, как динамические, так и статические, касающиеся планирования, подготовки и оценки компонента или системы и связанных с этим результатов работ с целью определить, что они соответствуют описанным требованиям, показать, что они пригодны для заявленных целей и для определения дефектов. [Глоссарий ISTQB]

Testing (Тестирование) – это уже непосредственно процесс проверки результатов работы на соответствие установленным требованиям. А тестировщик — это специалист, который занимается такой проверкой. Он тестирует компоненты продукта или весь продукт целиком на предмет ошибок или неточностей разработки. Тестирование — один из ключевых процессов в системе обеспечения качества.

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

Основная задача тестирования – выявить и зафиксировать дефекты.
Могут заниматься junior специалисты.

Пример

Требование: В поставляемых тестовых документах должны отсутсвовать персональные данные сотрудников (фамилия и имя)

Тестирование: Перед окончательным этапом поставки проверяем документацию на отсутсвие персональных данных по заранее составленному списку

Но что делать, если вдруг сотрудник поменял Фамилию или пришел новый сотрудник?

Контроль качества: Меняем процессы таким образом чтобы в случае если сотрудник поменял Фамилию или пришел новый сотрудник, эти данные добавлялись в текущий список

Обеспечение качества: Для того чтобы предотвратить попадание ФИО наших сотрудников в тестовые данные мы переходим на процедурную генерацию ФИО. Тестировщикам больше не надо придумывать ФИО для заполнения полей, за них это сделает процедура. Более того, тестировщикам запрещено использовать данные полученные не из процедуры.

Все эти меры обеспечивают нам уверенность в том, что требование «В поставляемых тестах отсутствуют персональные данные» будет выполнено. Но важно понимать, что это никак не отменяет тестирования выходных данных на наличие ПД.

Цели тестирования

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

Источники информации

  1. Artsiom Rusau QA Life: Тестировщик с нуля / Урок 3. QA, QC, тестирование. Верификация и валидация
  2. Профессия тестировщик: разбираемся в QA, QC и testing
  3. Что такое качество. Разбираемся в иерархии терминов «QA», «QC» и «тестирование»