Найти тему
айтишник наоборот

QA/QC

Сегодня я хочу поговорить о такой интересной теме лично для меня, это понятия Quality assurance(QA) и Quality control(QC), да-да это не одно и тоже.

Этот текст часть большое исследования, что должен знать начинающий IT-специалист для выхода на работу. Самый первый пост, с чего все началось здесь. Я и сам студент IT направления и ищу работу в данной сфере) QC

Для начала с QA или Quality assurance или обеспечение качества. QA-инженеры участвуют на самых ранних этапах создания продукта и влияют(по идее) на то, как продукт будет выглядеть. Одной из его задач видеть какие ошибки или баги могут возникнуть и предотвращать их появление. Или другими словами: Задача QA-инженера  —  не допустить несоответствия продукта предъявляемым требованиям. QA-инженер замеряет качество продукта, знает его актуальное состояние и что нужно сделать, чтобы его поднять не только на этапе тестирования, но и на этапе разработки, дизайна(в широком смысле) или составления требований.

QC или Quality control или контроль качества, термин по не понятной причине не распространившийся по русскоязычному IT кластеру. У нас их именуют тестировщиками. Но я буду привыкать к новому для меня термину. По логике вещей работа QC специалиста заключается на последнем этапе разработки в проверке качества продукта (любым видом и типом тестирования  —  ручным, автоматизированным, нагрузочным, тестированием безопасности и т.д.(об этом далее)). Их задача — провести валидацию продукта и предоставить информацию бизнесу и разработчикам о соответствии продукта заявленным требованиям.

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

Упрощенная схема жизненного цикла программного продукта
Упрощенная схема жизненного цикла программного продукта

Все начинается с ИДЕИ, ну или с анализа требований, если мы реализуем продукт для заказчика. Далее Проектирование. Стоп! Остановимся, на этом. Кто как вы думаете необходим на этом этапе QA-инженер или QC-специалист?

Если вы внимательно причитали, что написано выше, то у вас не составило сложности ответить на этот вопрос. Конечно же QA-инженер.

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

-2

Обобщая выше сказанное, можно сказать, что в QA сфера деятельности намного шире чем в QC, но и более ответственность возрастает. Если вы только хотите начинать карьеру в тестировании, присмотритесь на QC, навыки которые вы приобретете во время работы позволят вам вырасти до QA-инженера : )

Сфера деятельности/влияния
Сфера деятельности/влияния

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

-4

И это лишь только один вариант. Вот еще что может быть:

  • умение работать с данными cookie & session;
  • знание SQL;
  • умение вести тестовую документацию;
  • понимание Agile/SCRUM/Lean методов;
  • понимание Microservice Arhitecture, HighLoad;
  • тестирование программных решений на основе технологического стека (GoLang и/или php (symfony), PostgreSQL и/или Clickhouse);
  • навык составления тест-планов и тест-кейсов.

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

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

Обязанности QA инженера

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

Если углубиться в профессию, то у QA-инженеров существует несколько ответвлений.

  • QA-автоматизатор (Automation QA Engineer) — это специалист, который пишет тесты на основе скриптов для автоматизации тестирования.
  • QA-мануальщик (Manual QA Engineer) — специалист, который занимается анализом и улучшением процесса тестирования.
  • QC-специалисты (Quality Control specialist) — отвечают за контроль качества продукта. Их задача проводить анализ результатов тестирования и следить за выявлением и устранением дефектов в продукте.

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

Ручные QA не пишут код — все действия они выполняют руками с помощью клавиатуры, мышки и дополнительных инструментов.

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

Какие еще виды тестирования бывают. Основа такова:

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

2. Нефункциональное тестирование ПО — в первую очередь проверка на
соответствие не функциональным требованиям:

  • Удобство (В основном производиться оценка удобства для пользователей)
  • Масштабируемость (проверяется как вертикальная так и горизонтальная масштабируемость тестируемого приложения)
  • Производительность (Способность работы приложения при различных нагрузках)
  • Безопасность (Защита пользовательских данных, защита данных приложения, стойкость на взлом)
  • Портируемость (Совместимость и переносимость приложения для и под различные окружения, платформы и т.д.)
  • Надежность (Поведение системы при различных непредвиденных ситуациях, способность обработки нестандартных действий пользователя)

Напоследок разберем несколько трендов в тестировании на 2023 год.

Итак ТРЕНДЫ

1. DevOps

DevOps — это набор практик для повышения эффективности процессов разработки и эксплуатации ПО. Статья о нем тоже в планах.

2. Инструменты автоматизации тестирования мобильных устройств

Мобильные устройства захватывают мир: 62% всего трафика веб-сайтов поступает именно со смартфонов.

3. Интеграционное тестирование

Проверка на совместимость с другими инструментами или решениями, которые, вероятно, будут использовать ваши клиенты.

4. Метрики отслеживания

Метрики тестирования ПО помогут вам отследить такие моменты, как:

  • эффективность и качество разрабатываемого решения
  • способность вашего продукта гарантировать те результаты, на которые вы рассчитываете
  • стоимость обслуживания и обновления нового ПО

Это далеко не все тренды, если вы хотите узнать больше, ищите ссылки в источниках

Итоги

На этом на сегодня все. В данной статье мы сначала разобрали в чем различие QA и QC, вспомнили этапы жизненного цикла, посмотрели на требования и возможные стеки технологий, обязанности QA-инженера, виды тестирования, и наконец тренды тестирования на 2023 год.

Исследуйте, узнавайте новое. Делитесь мнением о статье в комментариях. Подписывайтесь на канал!

-5

Источники:

Статья на Хабре о разнице QA и QC

Сайт ИксБи Софтваре

Сайт Linux Training Center

Еще глубже по теме Тестирования: статья как работать тестировщику тут

Сайт с видами тестирования, зацените схему

Статья тренды тестирования