Миф: наличие тестировщиков в Agile-команде необязательно

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

В этой статье я постараюсь развеять один из самых распространенных мифов о разработке по Agile: «Необязательно иметь в команде тестировщиков. Разработчики могут тестировать сами». Я думаю, такой подход возможен в некоторых «особых» сценариях, но в любом случае это было бы не очень эффективно...

В начале своего пути в качестве разработчика я однажды подумал: «Зачем нам нужен тестировщик, если сам тестирую свою работу, а тестировщик просто... тестирует?» Поэтому эта роль привлекла мое внимание, и в конечном итоге мне стало интересно разобраться в мире QA подробнее. Со временем я понял, что тестирование — это нечто больше, чем просто «ломать вещи». Позвольте рассказать, почему.

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

Вкратце о тестировании в Agile

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

QA-инженер привносит в команду уникальную точку зрения и передает знания о тестировании и продукте всей команде, тесно сотрудничая с:

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

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

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

  • В экстремальном программировании лучшие практики тестирования включают Разработка через тестирование (англ. test-driven development, TDD) — техника разработки программного обеспечения, которая основывается на повторении очень коротких циклов разработки: сначала пишется тест, покрывающий желаемое изменение, затем пишется код, который позволит пройти тест, и под конец проводится рефакторинг нового кода к соответствующим стандартам.</p>" data-abbr="TDD">TDD, ATDD или BDD, которые могут быть очень полезны для проведения тестирования на разных уровнях. Преимущество этих подходов в том, что они предусматривают выполнение тестов на ранних этапах (до начала написания кода) и пользователь тоже может легко принять в этом участие.

  • В Scrum отличным подходом (и одним из моих любимых) является парное тестирование или совместные обзоры. Два члена команды просто собираются вместе для выполнения теста (тестировщик + разработчик, или два тестировщика, или тестировщик + владелец продукта и т. д.) и выявляют проблемы или возможности для улучшений. Еще один подход — mind-mapping. Он полезен для описания тестовых данных, создания интуитивных планов тестирования, а также во время онбординга нового тестировщика в середине текущего проекта.

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

Как сказано в Руководстве по Scrum:

«Scrum не признает никаких титулов для членов команды разработки, независимо от того, какую работу они выполняют».

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

Почему важно, чтобы в команде был тестировщик?

«Лучший тестировщик — это не тот, кто находит больше всего багов, а тот, кому удается больше всего багов исправить» — Джем Канер.

Будьте уверены: мы знаем, что и зачем мы делаем.

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

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

Причины, по которым тестировщик не нужен в вашей команде

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

Заключение

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

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

Источник: https://habr.com/ru/companies/otus/articles/787382/


Интересные статьи

Интересные статьи

Подготовили для вас подборку бесплатных курсов и тренажеров обучения для QA-тестировщиков. Также на нашем сайте есть раздел со всеми платными курсами по QA-тестированию и отзывами о них — https...
Я работаю уже 10 лет в компании Тензор, за это время число тестировщиков приблизилось к четырём сотням. И все эти 10 лет у нас в компании проводились различные хакатоны для студентов, соревнования для...
Что делать, если вы маленькая команда из 2-3 человек, которая делает интересное решение в корпоративном секторе, но у вас проблемы со сроками, качеством продукта, а на ручное тестирование совсем нет в...
Всем привет!Статей на Хабр я раньше не писал и поэтому расскажу немного о себе. ТТХ автора:             &...
1 августа в офисе Авито состоялась седьмая встреча Общества анонимных тестировщиков. Спикеры выступали с докладами про самодельную TMS, мониторинг мониторинга, подходы к оценке качества поиска и ...