Май, 2015

Собираем QA, QC и тестирование в матрешку!

Опубликовано: 22.05.2015 | 4318

Мы любим пополнять наши ряды талантливыми новобранцами. И на собеседовании не раз замечали, что на вопрос о разнице между обеспечением качества (Quality Assurance, QA), контролем качества (QualityControl, QC) и тестированием (Testing) ответы сильно разнятся. Порой даже вызывают ожесточенные споры с «переворачиванием столов».

А суть в том, что определяются эти понятия в каждой компании и даже команде по-своему. В разное время под термином «тестирование» подразумевались различные вещи – вот порой и возникает недопонимание. Нам такие туманности не нужны, поэтому давайте положим все на свои места и разберемся, что к чему. Ура!

Quality Assurance

Quality Assurance

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

Процесс обеспечения качества состоит из:

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

Обеспечение качества

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

  • От маркетолога – понимание целевой аудитории и рынка.
  • От программиста – хотя бы поверхностное понимание кода и технических ограничений для реализации функционала.
  • От PM’а – целостное восприятие всех частей проекта, понимание сроков, этапов и итераций жизненного цикла проекта.

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

Quality control

Внутри матрешки QA находится QC. Это проверка актуального состояния объекта тестирования с помощью таких критериев, как:

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

Таким образом, основной фронт работы QC-менеджера состоит в качестве промежуточных и конечных результатов разработки. Контролируется это в целом так:

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

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

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

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

Тестирование – это проверка соответствия создаваемого продукта требованиям, осуществляемая путем анализа ее работы в специальных условиях, выбранных определенным образом.

Общая схема тестирования выглядит примерно так:

1. Тестер получает продукт и/или требования на входе.

2. Он создает тесты и наблюдает за поведением программы в тех или иных условиях.

3. Тестировщик получает данные о соответствиях и несоответствиях поведения продукта спецификациям. После чего он документирует это в виде описания дефектов, заполнения тестовой документации.

4. Полученная информация используется для улучшения продукта или изменения требований с помощью внесения доработок в код.

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

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

Процесс тестирования

Подводим итог

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

А так как теперь вы знаете, как отличить QA от QC и тестирование от них обоих, у вас есть все шансы создавать ПО 80 уровня. Сегодня и всегда!