Что делает команда QA в разработке программного обеспечения, если они не находят ошибки ежедневно?
Опубликовано: 2023-01-27Инженеры по обеспечению качества (QA) часто слышат это:
«Вчера ваша команда обнаружила двадцать ошибок, а сегодня ни одной!»
Эта позиция, какой бы обоснованной она ни казалась, противоречит самой цели и задачам обеспечения качества в разработке программного обеспечения.
Что именно QA делает в разработке программного обеспечения?
В этой статье Андрей Гилёв, заместитель начальника отдела контроля качества в ITRex, объясняет, почему ваша команда контроля качества не бездействует, даже если багов находит меньше. Кроме того, вы узнаете, почему вам всегда следует нанимать инженеров по обеспечению качества для усиления вашей собственной или аутсорсинговой ИТ-команды вместо того, чтобы тестировать код инженерами-программистами.
Понимание целей QA и почему они не ограничиваются отслеживанием ошибок
В зависимости от типа и сложности программного решения, которое вы хотите создать, вам может понадобиться специалист по контролю качества, работающий неполный рабочий день, или специальная группа контроля качества, назначенная для вашего проекта. Их обязанности выходят далеко за рамки выявления ошибок и сообщения о них руководителю проекта и команде разработчиков.
В частности, цели обеспечения качества охватывают:
- Предотвращение ошибок. Недавние опросы показывают, что разработчики программного обеспечения тратят около 20% своего времени на исправление ошибок. Умножьте это время на почасовую ставку среднего инженера-программиста, и вы поймете, во сколько ущербный код может стоить вашей компании. Цена исправления ошибок также увеличивается в геометрической прогрессии со временем в рабочем процессе разработки программного обеспечения, и это не говоря уже о долгосрочных последствиях выпуска программного обеспечения с ошибками в производство, таких как уязвимости в системе безопасности, снижение качества обслуживания клиентов и репутационные потери. Таким образом, ключевая цель обеспечения качества при разработке программного обеспечения заключается в поиске ошибок до того, как они нанесут значительный ущерб. Для достижения этой цели команда контроля качества готовится к тестированию задолго до того, как получит программное решение. Эти подготовительные действия включают просмотр тестовой документации, написание плана тестирования и тестовых случаев, выбор подходящих инструментов тестирования и настройку тестовой среды.
- Отслеживание и оценка состояния программного обеспечения. Чтобы принимать взвешенные решения в программных проектах, руководителю проекта и клиенту нужна актуальная информация о программном продукте, над которым они работают. Цели обеспечения качества, среди прочего, включают в себя предоставление этой информации в любой заданный период в течение срока разработки программного обеспечения. Однако стоит отметить, что инженеры по обеспечению качества не выбирают лучшее время для запуска программного решения. Наоборот, окончательное решение принимает клиент. Посоветовавшись с QA-командой, клиент может даже принять решение о развертывании программного решения, содержащего задокументированные баги и ошибки! Например, вы можете принять такое решение, когда сроки выпуска вашего продукта относительно сжаты, а компромисс между вознаграждением — т. е. опережение конкурентов или включение критической функции — больше, чем риск запуска продукта с незначительными ошибками. В любом случае вам необходимо обнаруживать, документировать и приоритизировать эти ошибки, и это также является одной из целей вашей команды контроля качества.
- Проверка требований. Основная роль QA в разработке программного обеспечения заключается в подтверждении того, что ваше программное решение работает должным образом и соответствует всем критериям, определенным в документе спецификации требований к программному обеспечению (SRS). Когда специалисты по обеспечению качества выполняют ручное или автоматизированное тестирование и выявляют ошибки, они создают заявку в программной системе отслеживания ошибок, такой как Jira или ClickUp, для команды разработчиков. Как только команда разработчиков исправит ошибки, цикл тестирования повторяется. Таким образом, поиск ошибок не является целью обеспечения качества; скорее, это побочный продукт деятельности QA.
Команды QA иногда не могут найти какие-либо ошибки. И это нормально
Теперь, когда вы разобрались с целями и задачами QA, давайте вернемся к вопросу, который мы подняли в начале этой статьи.
Что делает команда контроля качества при разработке программного обеспечения, если их отчеты об ошибках не содержат ни одного дефекта в течение нескольких дней?
Есть несколько причин, по которым QA-специалисты могут не найти ошибок в вашем ПО:
- Программное обеспечение было тщательно протестировано. Если программное решение прошло тщательное тестирование, вероятность появления ошибок при повторении цикла обеспечения качества или при запуске продукта в производство снижается.
- Программа имеет простой дизайн. Приложения с ограниченным набором функций, интеграций и простых пользовательских интерфейсов с меньшей вероятностью содержат ошибки, чем программы с более сложной архитектурой и требованиями к производительности.
- Программное обеспечение создано с использованием лучших практик. Команды разработчиков программного обеспечения, которые пишут чистый и хорошо документированный код, следуют стандартам кодирования и используют контроль версий, часто выпускают программные продукты с небольшим количеством ошибок. Эти ошибки обнаруживаются и исправляются на ранних этапах процесса тестирования, и на более поздних этапах никакие другие недостатки не проявляются.
- Процесс тестирования мог бы быть более комплексным. Нехватка времени, ресурсов или навыков может помешать специалистам по контролю качества тщательно протестировать ваше программное решение. В результате некоторые ошибки могут быть пропущены.
- Баги не воспроизводятся. Иногда специалисты по контролю качества могут не найти никаких ошибок, потому что ошибки возникают нерегулярно. К таким ситуациям могут привести различные факторы, в том числе сложность программного обеспечения, использование сторонних библиотек или наличие внешних зависимостей.
Независимо от причины, вы не должны недооценивать важность QA в разработке программного обеспечения, не говоря уже о том, чтобы позволить разработчикам тестировать код для вас.
Не поймите меня неправильно: разработчики могут писать и выполнять автоматизированные тесты в кросс-функциональных Agile-командах. Или даже тестировать программное обеспечение вручную.
Однако в таких командах, где роли в проекте часто распределяются между собой, основная цель состоит в том, чтобы быстрее выпускать работающее программное обеспечение или функции, сокращая время окупаемости и собирая отзывы на раннем этапе. Здесь мы можем иметь дело с проблемой соотношения риска и вознаграждения, описанной в предыдущем разделе. Таким образом, ваш проект может накопить технический долг, что приведет к проблемам с производительностью и значительным затратам на отладку в будущем.
Другими причинами для найма выделенных QA-специалистов являются следующие:
- Знание того, как кодировать, не равно знанию того, как просматривать код на наличие потенциальных ошибок.
- Разработчики редко получают удовольствие от тестирования, в то время как специалисты по контролю качества получают удовольствие.
- Почасовые ставки инженеров-программистов обычно выше, чем у специалистов по обеспечению качества.
- Разработчики и QA-инженеры обычно имеют разные soft skills. Для QA внимание к деталям, способность анализировать сложные системы и многозадачность занимают центральное место. С другой стороны, разработчики программного обеспечения часто работают в коллективной среде и сосредотачиваются на одной задаче за раз.
Таким образом, даже если ваша команда контроля качества сегодня не обнаружила ошибок, не поддавайтесь искушению увольнять специалистов по обеспечению качества или доверять задачи тестирования основной группе разработчиков. Несмотря на то, что такой подход может сократить вашу зарплату в краткосрочной перспективе, стоимость потери ваших клиентов из-за низкой производительности программного обеспечения или кибератак, связанных с ошибками, может быть многократно выше.
И если вам нужна помощь в подтверждении того, что ваше программное обеспечение работает хорошо, соответствует всем требованиям, указанным в вашей SRS или техническом видении, и помогает вам достичь ваших бизнес-целей, свяжитесь с экспертами ITRex QA!
Первоначально опубликовано на https://itrexgroup.com 20 января 2023 г.