Что такое контроль качества quality control

Обновлено: 18.05.2024

Lorem ipsum dolor

Quality Control (QA) — это «контроль качества», а точнее, это процесс, который отвечает за соблюдение ожидаемого качества продукции путем тестирования, выявления и устранения его неисправностей.

Как дальше жить?

Большой штат тестировщиков не сможет существенно улучшить качество продукта. Но сможет улучшить саму проверку качества. Если же вы, коллеги-тестировщики, хотите поднимать именно качество на новый уровень, задумайтесь о переходе в QA-инженеры.

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

Я знаю, что большинству из вас не всё равно на то, что вы тестируете. И вы искренне хотите поставлять хороший продукт, которым приятно будет пользоваться.

Как стать тестировщиком?

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

Чаще всего в вакансиях для тестировщика можно встретить следующие требования:


Главное требование к кандидату — мыслить алгоритмами и системами. Желательно иметь какой-то технический бэкграунд и знать теорию. Что такое testing, QC, QA и чем они отличаются? Какие есть виды тестирования и как их комбинировать? Что такое тест-дизайн, тест-кейс, тест-план? Надо знать хотя бы один объектно-ориентированный язык программирования, основы баз данных, клиент-серверной архитектуры и работы в различных ОС.

Если раньше с этим были проблемы, то сейчас в интернете полно специализированных ресурсов, как например форум на Software Testing. Если говорить о книгах, то ниже список литературы:

  • “Testing Computer Software”, Cem Kaner, Jack Falk, Hung Q. Nguyen
  • «Ключевые процессы тестирования. Планирование, подготовка, проведение, совершенствование», Рекс Блэк
  • «Тестирование программного обеспечения. Базовый курс», Святослав Куликов

image

«Обеспечение и контроль качества — что-то новое для России. Проблема состоит в непонимании цели и задачи тестирования в целом. Создают отдел, но что с ним делать, не знают. Нет четко поставленной задачи, из-за чего отсутствует мотивация работать на результат. Семь лет назад я начинала работать в тестировании в Украине и сейчас я сталкиваюсь с таким же непониманием, с каким встречалась тогда. В России большая часть заказчиков — госсектор и банкинг со своей тяжелой и неповоротливой бюрократией. В Украине же на них приходилось только около 20% рынка, все остальные — частные компании, которые умеют считать свои деньги».

Марина Куликова, Head of QA/QC, Redmadrobot

Кто ты, QA-инженер или тестировщик?

QA и QC — как камыш и рогоз. Конечно, есть ботаники, которые их различают, но большинство людей всё-таки путают. Иногда самим QA и QC легче согласиться с представлением обывателей, чем пускаться в долгие объяснения, в чём же всё-таки разница. Предлагаю сделать усилие над собой, разобраться с терминами и понятиями, увидеть отличия и больше никогда их не путать.




Больше трёх лет я занимаюсь обеспечением качества продуктов. И всё это время наблюдаю за эволюцией процессов тестирования в компании.

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

До текущих процессов с блэкджеком Scrum-Less и автотестами на Selenium.

Накопленный опыт и черты характера типичные для моей профессии привели к размышлениям о том, кто такие тестировщики, QA и QC. Разные это суть сущности или пересекающиеся? В статьях и конференциях я часто сталкиваюсь с какой-то путаницей, мне это не нравится. Поэтому я решил поделиться своими мыслями на этот счёт. Осторожно, данная статья не является истиной в первой инстанции. Данная статья — мысли вслух и желание найти единомышленников.

Что такое обеспечение качества

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

  1. Для кого эта конференция?
  2. С чем она у вас ассоциируется?

Конференция QualityConf целиком и полностью посвящена качеству, а не тестированию. Однако при подготовке очередной конференции организаторы провели исследование и задали вопрос своим посетителям: «С чем у вас ассоциируется конференция?».

Как вы все уже, наверное, догадались, главные ассоциации были исключительно с тестированием.

Получается, что сегодня, говоря слово «качество», многие слышат «тестирование», и очень часто это функциональное тестирование, хотя понятие качество гораздо шире.

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

Quality is a customer determination, not an engineer's determination, not a marketing determination, nor a general management determination. It is based on the customer's actual experience with the product or service, measured against his or her requirements — stated or unstated, conscious or merely sensed, technically operational or entirely subjective — and always representing a moving target in a competitive market (Armand Feigenbaum «Total quality control»).

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

«Нужно быть ленивым, чтобы стать хорошим тестировщиком»

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


Вместе с руководителем отдела QA/QC в Redmadrobot и куратором нашего курса Software Testing Marishunya_QA мы разобрались, какими навыками нужно обладать тестировщику, куда можно развиваться в тестировании, с чем на самом деле связана текучка кадров и почему даже хорошим программистам не следует брать на себя обязанности тестировщика.

Как быть тестировщиком?


Войти в профессию просто, а вот расти и развиваться дальше намного сложнее. Если сравнивать тестировщиков с программистами, то последние по ходу своей карьеры уходят «вглубь». Тестировщик же находится в центре цикла жизни продукта, поэтому ему необходимо видеть картину в целом, иногда перехватывать функции project-менеджера и заниматься продуктовой аналитикой, то есть развиваться «вширь». Тестировщик получает много навыков из смежных направлений, зачастую плохо понимает масштабы своей области, смотрит по сторонам и уходит во что-то другое: программирование, product owner или аналитику. В итоге специалисты в области тестирования часто меняют профессию, а отделы QA/QC страдают от нехватки высококвалифицированных кадров.

Хотя тестирование — действительно интересная отрасль, где творчества порой не меньше, чем в самой разработке. Тестировщику часто приходится работать при нехватке входных данных, в условиях жестких спецификаций или строгих требований заказчика, не говоря уже о том, что иногда нужно самому «руками» залезть в код. Вырастая до руководящих должностей, нужно много общаться как с другими отделами, так и с заказчиками, доказывая свою точку зрения со стороны QA.

Больше узнать о тестировании и получить практический опыт вы сможете на нашем курсе Software Testing, где Марина Куликова расскажет о техниках тест-дизайна и как обеспечить качество вашего ПО в любых условиях.

Ищу Тестировщика ПО (QA-инженера)

Я бы не писал эту статью, если бы в индустрии не смешивали эти роли и не называли тестировщиков QA-инженерами и наоборот. По моим наблюдениям, в России не разделяют две профессии. Всех для простоты (а может по незнанию) называют тестировщиками. И ладно бы таким грешили только работодатели, но путаницу поддерживают и сами тестировщики. Например, на Хабре можно встретить статьи, где авторы на протяжении всего текста называют одних и тех же людей тестировщиками, QC-инженерами, QA-специалистами, инженерами по тестированию и тестерами.

Масла в огонь подливают HR-менеджеры: часто для увеличения охвата аудитории они пишут в названии вакансии «Тестировщик ПО (QA инженер)». Шапкой вакансии дело не заканчивается, винегрет продолжается и в самом описании.

Давайте обратимся к вакансиям QA-инженеров:


Все задачи связаны с тестированием и нацелены на поиск багов, хотя компания ищет «QA-инженера».

Или ещё один красочный пример:



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

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

Quality Control — что это?

Quality Control идет очень плотно с другим процессом в тестировании — Quality Assuran c e (QA). Очень часто эти процессы принимают за один и тот же, хотя по факту они отличаются и обозначают разные мероприятия. QC и QA направлены на общее действие — улучшить качество программного продукта, но применяются на разных этапах продукта и ориентированы на разные цели. Поэтому, чтобы точно понять, что это такое — Quality Control, нужно разобраться с обоими понятиями.

Quality Control и Quality Assurance

  • процедуры;

  • методы;

  • стандарты;

  • подходы;

  • и др.

Чем отличаются Quality Control и Quality Assurance?
  1. Различия по цели. Q u ality Assurance преследует цель — улучшить процессы разработки и тестирования, чтобы не было дефектов. Quality Control преследует более простую — выявить и устранить недостаток в рабочей программе.

  2. Различие в подходе. QA внедряет собственную систему управления качеством для анализа всех действий, чтобы убедиться, что все работает так , как надо. QC выявляет и устраняет конкретную проблему, которая влияет на конечное качество продукта.

  3. Разные акценты. Quality Assurance акцентирует свое внимание на предотвращении появления багов в процессе разработки и тестирования. Quality Control акцентирует внимание на уже готовой программ е , чтобы выявить и устранить ее дефекты и «подогнать» к требованиям QA.

  4. Разная направленность. QA направлен на процесс разработки продукта. QS направлен на уже разработанный продукт.

  5. Разные методы. Методы работы Quality Assurance являются профилактическими, а методы работы Quality Control — конкретно-техническими.

  6. Разное распределение ответственности. В QA ответственность за должное качество продукта лежит абсолютно на всех участниках разработки программы. В QC ответственность лежит на конкретной команде или разработчике, которые ищут дефекты в программе и устраняют их.

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

Quality Control и Quality Assurance на практике

Чем занимается отдел тестирования?

Многие говорят, что тестировщик должен «сломать продукт» — найти уязвимость, которая сделает использование приложения невозможным. Это в корне неверно. Тестировщик должен рассмотреть систему со всех сторон, подумать, как может себя повести приложение в различных ситуациях, проверить «защиту от дурака» — что будет, если ввести вместо фамилии числа, например.

Если говорить о мобильных приложениях, многим кажется, что тестирование ограничивается поворотом экрана, то есть стандартными сценариями использования. Инженер в процессе тестирования задается вопросом: «На что новая фича может повлиять? В каких ситуациях что-то может пойти не так?». Возьмем интернет-магазин: программист реализует функцию скидки по промокоду. Если он станет сам проверять, то войдет в корзину, допустим, через главное меню — убедится, что все работает, и не подумает, что это можно сделать еще тремя способами, для которых тоже надо прописать вызов функции. Тестировщик же должен идти по пути всех пользователей, написать тест-кейсы по нескольким сценариям и потом к ним возвращаться. Поэтому отдел тестирования сопровождает продукт на всем протяжении его разработки и находится в центре V-образного жизненного цикла программного обеспечения.


Тестировщик должен знать бизнес-требования и технические нюансы, поскольку тестирует как спецификации, так и use cases; ему также нужно наравне с другими членами команды выставить свои оценки, чтобы правильно спланировать delivery, иногда пнуть разработчика, потому что в конце спринта project-менеджер придет в отдел QA/QC, чтобы спросить протестировано ли приложение.

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

QA ≠ QC: как их различить

QC: кто эти люди, какие у них задачи, какие у них ограничения

Кто эти люди? Люди, которых называют тестировщиками, тождественны контролю качества QC. По логике вещей они на последнем этапе разработки проверяют качество продукта (любым видом и типом тестирования — ручным, автоматизированным, нагрузочным, тестированием безопасности и т.д.).

Какая у них задача? Их задача — провести валидацию продукта и предоставить информацию бизнесу и разработчикам о соответствии продукта заявленным требованиям.

Какие у них ограничения? Какие могут быть недостатки, если у вас все сотрудники проверяют продукт на соответствие:

  • До взятия фичи в проверку такие сотрудники не влияют на процесс обеспечения качества и разработки, хотя их участие могло бы предотвратить некоторое количество багов и тем самым сократить затраты на тестирование.
  • Зачастую такие сотрудники не могут давать рекомендации, как сделать продукт лучше. Потому что поезд ушёл и уже поздно. Им остаётся лишь сверять соответствие продукта требованиям. FYI: хотя на самом деле тестировщикам есть что сказать по поводу улучшений, которые необходимо сделать.
  • Эти ребята чаще всего не видят полной картины процесса, поэтому искренне не понимают, почему разработчики дают им код, в котором приложение крашится при попытке запуститься. И, согласно п.1, ничего не могут с этим сделать. Даже если хотят.
  • Они не могут взять на себя полную ответственность за качество продукта.
  • Очень часто между тестировщиками и разработчиками возникают конфликты. Так бывает, когда разработчики считают свой код самым лучшим и работающим, а в тестировщиках видят лишь попытки его сломать и показать, что код не работает. Такое положение дел порождает всем известные мемы «Это не баг, а фича».
QA: кто эти люди, какие у них задачи, какие у них ограничения

Кто эти люди? Инженеры по обеспечению качества (QA) — это люди, которые помогают командам разработки выпускать качественный продукт, как можно быстрее за как можно меньшие деньги. Ведь все мы знаем, что чем раньше найден баг, тем дешевле его пофиксить. Лучше всего фиксить баги ещё на уровне идеи.


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

Какая у них задача? Задача QA-инженера — не допустить несоответствия продукта предъявляемым требованиям. QA-инженер замеряет качество продукта, знает его актуальное состояние и что нужно сделать, чтобы его поднять не только на этапе тестирования, но и на этапе разработки, дизайна или составления требований.

Какие у них ограничения? Сложно оценить качество работы QA-инженера, потому что если он хорошо выполняет свою работу, то до этапа тестирования будет доходить минимальное количество багов не влияющих на функциональность и запуск продукта в прод.

В отличие от QA, работу QC оценить можно, особенно если отталкиваться от самого простого и оценивать эффективность по количеству багов — сколько багов нашёл и сколько багов пропустил на прод.

Разница между QA, QC и тестированием: простая трактовка на примере швейцарского армейского ножа

Пожалуй сложно объяснить любую абстракцию без материального примера, который легко можно пощупать и убедится в его реальности. Я долго думал что бы могло послужить для меня таким вот материальным воплощением понятий тестирования, контроля качества (quality control) и обеспечения качества (quality assurance) готовясь к собеседованию.

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

Ниже приведено краткое, достаточно упрощенное и возможно излишне дилетантское понимание разницы между этими тремя направлениями.

Разница в возрасте примерно 35-40 лет, не смотря на суровые условия эксплуатации оба ножа в отличной форме.

Разница в возрасте примерно 35-40 лет, не смотря на суровые условия эксплуатации оба ножа в отличной форме.

И так начнем с самого простого и понятного: тестирование. На производстве ножей каждый экземпляр проходит испытание. Специально обученные сотрудники следуя определенным чек-листам проводят тесты ножей, открывая и закрывая каждый инструмент определенное количество раз. Так же проверяется чтобы форма инструмента соответствовала определенному эталону. К примеру знаменитая форма клинка: "лепесток", воплощающий идею трёх клиньев (клинок сужается от обуха к режущей кромке, от рукояти к кончику, грубо говоря сразу в трёх плоскостях).

Как видим ручное тестирование. Самое простое и элементарное.

QC(quality control) или контроль качества более сложная процедура, требующая более сложного оборудования. Тут проверка проходит выборочно, и ножи проверяются гораздо более изощренно.

Одной из проверок является проверка твердости стали. Хоть сталь для всех инструментов ножа используется и одинаковая (в наши дни это Sandvik 12С27), термообработку каждый инструмент проходит персональную. Это важно учитывая что различные инструменты будут применяться для разных работ: клинку требуется большая твердость по шкале Роквелла(в единицах HRC) чтобы лучше держать заточку, а вот инструменту для силовых работ (к примеру большой плоской отвертки, которую часто используют как мини фомку) требуется гораздо меньшее значение HRC, иначе он просто сломается.

Так же в работу этих людей входит разработка новых тестов и методов проверки качества.

У каждого инструмента своя персональная "подготовка"

У каждого инструмента своя персональная "подготовка"

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

К примеру обратите внимание на фото ниже: у ножа справа накладки из нью лона, такие больше не используются. Так же не у одного современного швейцарского ножа нет пяти витков на штопоре, зато в шиле присутствует отверстие для шитья. Более того, даже в рамках одной модели развитие не стоит на месте: именно люди ответственные за обеспечение качества предложили делать "пилки для ногтей" на мультиинструменте GAK 108 (производство началось с 1985 года, образцы произведенные до конца 1984 года, как на фото выше, таким улучшением не обладают), которая впоследствии перекочивала на многие другие модели.

Разница в витках штопоров бросается в глаза гораздо сильнее, чем разница в конструкции шила

Разница в витках штопоров бросается в глаза гораздо сильнее, чем разница в конструкции шила

Заключение

Два процесса: Quality Control и Quality Assurance, которые идут очень рядом друг с другом , — это то, что сделает ваш программный продукт близким к идеальному. Поэтому пренебрегать этими процессами не стоит. Конкретные инструменты для обеспечения и контроля программного продукта будут зависеть от самого продукта, сложности его разработки, команды и т. д. Об инструмента QA и QC мы обязательно еще напишем. Самое главное, что мы ответили на ваш вопрос: «Что это такое — Quality Control?» .

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

QA, QC и тестировщики: три большие разницы?

Начнём наши поиски и копания с обращения к Международному стандарту системы менеджмента качества ISO 9000:2015. В каждой статье, в каждом видео на тему отличия этих понятий есть ссылка на этот документ, моя статья не исключение.


В пункте 3.2 стандарта раскрываются два определения:

    Обеспечение качества (3.2.10) — часть управления качеством, направленная на обеспечение уверенности в том, что требования к качеству будут выполнены.

Quality assurance (3.2.10) — part of quality management focused on providing confidence that quality requirements will be fulfilled. Quality control (3.2.11) — part of quality management focused on fulfilling quality requirements.
Отмечу, что в стандарте ISO 9000:2015 вообще нет понятия tester как такового. Я искал.

Так каким же образом взаимосвязаны понятия Quality assurance, Quality control и Тестирование между собой?

Часто можно встретить такого рода иллюстрации со слоёной структурой качества, где тестирование — часть контроля качества, контроль качества — часть обеспечения качества.


Но лично мне кажется, что раз в стандарте нет понятия tester или testing, а QC — это и есть разного рода тестирование, то и иллюстрации должны быть такими:


Однако стандарт есть стандарт, а у нас тут реальная жизнь. И в реальной жизни IT-индустрии встречаются только два названия нашей профессии:

  1. QA-инженер.
  2. Тестировщик Программного обеспечения (ПО).

QA и QC: в чем разница?

В России путают понятия Quality Assurance (обеспечение качества) и Quality Control (контроль качества). Часто можно встретить схематичное изображение, где внутри QA находится QC, а внутри QC — само тестирование.

Гораздо правильнее изобразить так:

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

QA — человек, который обеспечивает качество не на уровне выпускаемого продукта, а всей компании в целом, то есть отвечает за процессы и обеспечивает условия для правильной работы QC, координирует отделы по ряду продуктов и составляет планы тестирования. Ответственность QA начинается с переговоров с заказчиками, работы со смежными отделами и выстраивания взаимодействий, продолжается в процессе разработки и заканчивается уже на презентации продукта. Она затрагивает не только технические, но и юридические аспекты. В компании все отделы сами по себе могут работать хорошо: сейлзы продают, программисты кодят, project-менеджеры контролируют процессы. Однако, чтобы механизм действовал без пробуксовок, взаимодействие отделов между собой было четким, а на выходе получался первоклассный продукт, нужно обеспечение качества — это и есть Quality Assurance.

Читайте также: