Ручные тестировщики в кросс-функциональной команде: нужны ли они нам?

Ручные тестировщики в кросс-функциональной команде: нужны ли они нам?

3 марта 2023 г.

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

Эта статья основана на опыте менеджеров Exadel, которые работали над проектами без ручного контроля качества. Мы обсудим, как команда самостоятельно справлялась с этими заданиями и находила баланс между затратами и ресурсами контроля качества.

Введение

Каждый владелец проекта сталкивается с одними и теми же ключевыми вопросами, когда речь идет об обеспечении качества (QA):

  1. Как сократить расходы по проекту?
  2. Нужен ли мне отдельный тестер программного обеспечения с ручным управлением?
  3. Каковы последствия привлечения ручного тестировщика из команды Scrum в команду разработчиков?
  4. Зачем мне нужен автоматизированный контроль качества в дополнение к ручному или вместо него и как автоматизация снизит стоимость проекта?

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

Почему необходим контроль качества?

Основная цель специалистов по контролю качества — проверить, соответствует ли ваш новый инкремент бизнес-требованиям, и оценить его качество.

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

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

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

Кейс Exadel: как нам добиться успеха без ручного тестировщика

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

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

Мы сделали это в сложном проекте! Мы закончили разработку истории, но не проводили тестирование из-за проблем с емкостью, подводными камнями и оценкой. Поэтому, когда в последний день и без того сложного спринта на нашу AQA посыпались билеты, им нужно было попросить о помощи, и они это сделали. За результат каждого инкремента отвечает вся Скрам-команда, поэтому мы все были готовы помочь. К тому же, поскольку инкремент дошел до тестирования, у нашего разработчика появилось свободное время. Этот подход «попросить о помощи» работает в обоих направлениях; если бы у разработчика было слишком много тикетов, мы бы тоже тут же включились.

Это показывает, как команда Scrum может собраться вместе для решения задач, даже если они немного выходят за рамки обычные обязанности каждой группы.

Как работает ваша команда?

Согласно статье Дэвида Геста "Началась охота на компьютерного человека эпохи Возрождения" в 1991 году есть Т-образные люди, I-образные люди и многообразные люди. Мы используем эти термины для описания людей, которые сосредоточены на своих основных функциях, и людей, которые могут выполнять несколько функций:

* Т-образный коллега является экспертом в одной области, но понимает многие * Коллега в форме I является экспертом и разбирается только в одной области * Многоликий коллега разбирается во многих областях, но не является экспертом ни в одной

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

Автоматизация и ручное тестирование ПО

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

Manual vs Automation testing

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

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

В чем преимущества ручного тестирования?

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

При этом идеально, чтобы ядро ​​было покрыто автотестами. Под ядром мы подразумеваем платформу или какой-то постоянный функционал продукта, не подверженный существенным или частым изменениям. Это поможет сэкономить на регрессии. Когда ядро ​​продукта проходит все автотесты, мы знаем, что критически важные/основные функции продукта работают должным образом.

Какие методы тестирования используются в Exadel?

Чтобы решить, какие типы тестировщиков нанять, вам также необходимо решить, какие типы тестов вам нужны. Здесь мы сосредоточимся на двух основных областях: регрессии и модульных/интеграционных тестах.

Регрессионное тестирование

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

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

Регрессия — типичная проблема для крупных проектов. Иногда разработчики вносят изменения в один сервис, и в результате функциональность других сервисов не работает должным образом. Вот тут-то и появляется QA. Разработчику может потребоваться в два-три раза больше времени, чем QA, для проведения регрессии, что является основным голосом в пользу QA. Со временем разработчики не смогут справиться с регрессией в большом проекте, и им в любом случае следует сосредоточиться на разработке новых функций.

Единица измерения и усилитель; Интеграционные тесты

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

Мы также предоставляем ряд руководителей, сертифицированных по Agile, которые могут предоставлять услуги Agile по целому ряду дисциплин. Наши специалисты по внедрению Agile специализируются на разработке программного обеспечения, тестировании и Agile DevOps, а также на Scrum и управлении программами.

Как понять, что вы сохранили качество продукта

Метрики — самый популярный инструмент для понимания качества продукта.

Следующие метрики QA в тестировании программного обеспечения являются наиболее важными значениями, которые можно использовать для вывода других производных метрик:

Метрики помогут вам отслеживать прогресс и определять, повышается или ухудшается качество вашего проекта.

Как вы можете знать, что вы сохранили качество без ручного тестера? Достаточно ли одного автотеста для каждой функции, чтобы сказать, что эта функция покрыта? Если нет, то что такое порог? Ручной контроль качества создает тестовые наборы, а тестовые наборы определяют уровень (и глубину) тестирования. Если вы избавитесь от этого подхода, то вам следует определить, как сохранить и поддерживать хотя бы тот же уровень (и глубину) тестирования.

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

Заключение

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

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


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE