Сегодня я хочу поговорить о такой интересной теме лично для меня, это понятия Quality assurance(QA) и Quality control(QC), да-да это не одно и тоже.
Этот текст часть большое исследования, что должен знать начинающий IT-специалист для выхода на работу. Самый первый пост, с чего все началось здесь. Я и сам студент IT направления и ищу работу в данной сфере) QC
Для начала с QA или Quality assurance или обеспечение качества. QA-инженеры участвуют на самых ранних этапах создания продукта и влияют(по идее) на то, как продукт будет выглядеть. Одной из его задач видеть какие ошибки или баги могут возникнуть и предотвращать их появление. Или другими словами: Задача QA-инженера — не допустить несоответствия продукта предъявляемым требованиям. QA-инженер замеряет качество продукта, знает его актуальное состояние и что нужно сделать, чтобы его поднять не только на этапе тестирования, но и на этапе разработки, дизайна(в широком смысле) или составления требований.
QC или Quality control или контроль качества, термин по не понятной причине не распространившийся по русскоязычному IT кластеру. У нас их именуют тестировщиками. Но я буду привыкать к новому для меня термину. По логике вещей работа QC специалиста заключается на последнем этапе разработки в проверке качества продукта (любым видом и типом тестирования — ручным, автоматизированным, нагрузочным, тестированием безопасности и т.д.(об этом далее)). Их задача — провести валидацию продукта и предоставить информацию бизнесу и разработчикам о соответствии продукта заявленным требованиям.
Разберемся на графике этапов процесса разработки программного обеспечения. Объяснение жизненного цикла будет кратким, на самом деле этапов может быть больше.
Все начинается с ИДЕИ, ну или с анализа требований, если мы реализуем продукт для заказчика. Далее Проектирование. Стоп! Остановимся, на этом. Кто как вы думаете необходим на этом этапе QA-инженер или QC-специалист?
Если вы внимательно причитали, что написано выше, то у вас не составило сложности ответить на этот вопрос. Конечно же QA-инженер.
Далее по списку Разработка. И наконец Тестирование тут-то и вступает в бой специалист-QC, который должен проверять все то, что написали разработчики и находить ошибки. Ну а после Техническая поддержка проекта. Таков жизненный путь. В зависимости от методологии проектирования ПО, этот путь может иметь циклический характер, а этапы повторятся из раза в раз. Думаю пост про методологии будет в скором времени.
Обобщая выше сказанное, можно сказать, что в QA сфера деятельности намного шире чем в QC, но и более ответственность возрастает. Если вы только хотите начинать карьеру в тестировании, присмотритесь на QC, навыки которые вы приобретете во время работы позволят вам вырасти до QA-инженера : )
Теперь когда мы разобрались что к чему, я хочу продолжить темой что должен знать QA-инженер для устройства на работу. Так может выглядеть требования к QA-специалисту при приеме на работу:
И это лишь только один вариант. Вот еще что может быть:
- умение работать с данными 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 не пишут код — все действия они выполняют руками с помощью клавиатуры, мышки и дополнительных инструментов.
Автоматизаторы пишут код, используя специальные языки программирования и дополнительные фреймворки. Они автоматизируют процесс тестирования, благодаря чему его можно запускать многократно, что экономит деньги и время на проверку ПО.
Какие еще виды тестирования бывают. Основа такова:
- Функциональное тестирование — тестирование ПО главная цель которого это проверка реализуемости функциональных требований приложения, т.е. способность приложения в заданных критериях решать возложенные на него (на приложение) задачи. Требования включают в себя:
- защищенность
- соответствие стандартам
- способность к взаимодействию
- функциональная пригодность
- точность
2. Нефункциональное тестирование ПО — в первую очередь проверка на
соответствие не функциональным требованиям:
- Удобство (В основном производиться оценка удобства для пользователей)
- Масштабируемость (проверяется как вертикальная так и горизонтальная масштабируемость тестируемого приложения)
- Производительность (Способность работы приложения при различных нагрузках)
- Безопасность (Защита пользовательских данных, защита данных приложения, стойкость на взлом)
- Портируемость (Совместимость и переносимость приложения для и под различные окружения, платформы и т.д.)
- Надежность (Поведение системы при различных непредвиденных ситуациях, способность обработки нестандартных действий пользователя)
Напоследок разберем несколько трендов в тестировании на 2023 год.
Итак ТРЕНДЫ
1. DevOps
DevOps — это набор практик для повышения эффективности процессов разработки и эксплуатации ПО. Статья о нем тоже в планах.
2. Инструменты автоматизации тестирования мобильных устройств
Мобильные устройства захватывают мир: 62% всего трафика веб-сайтов поступает именно со смартфонов.
3. Интеграционное тестирование
Проверка на совместимость с другими инструментами или решениями, которые, вероятно, будут использовать ваши клиенты.
4. Метрики отслеживания
Метрики тестирования ПО помогут вам отследить такие моменты, как:
- эффективность и качество разрабатываемого решения
- способность вашего продукта гарантировать те результаты, на которые вы рассчитываете
- стоимость обслуживания и обновления нового ПО
Это далеко не все тренды, если вы хотите узнать больше, ищите ссылки в источниках
Итоги
На этом на сегодня все. В данной статье мы сначала разобрали в чем различие QA и QC, вспомнили этапы жизненного цикла, посмотрели на требования и возможные стеки технологий, обязанности QA-инженера, виды тестирования, и наконец тренды тестирования на 2023 год.
Исследуйте, узнавайте новое. Делитесь мнением о статье в комментариях. Подписывайтесь на канал!
Источники:
Статья на Хабре о разнице QA и QC
Сайт ИксБи Софтваре
Сайт Linux Training Center
Еще глубже по теме Тестирования: статья как работать тестировщику тут
Сайт с видами тестирования, зацените схему
Статья тренды тестирования