top of page

Хороший ли ты Agile тестировщик?

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


Самые популярные проблемы тестирования возникающие в Agile среде, это:

  • недостаток документации,

  • постоянно изменяющиеся приоритеты,

  • нехватка времени для тестирования.

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

Итак, давайте посмотрим, что делают хорошие Agile тестировщики в Agile команде?

Разница между тестированием и обеспечением качества.

Хороший Agile тестировщик знает, что его работа не ограничивается только выполнением тестовых скриптов, отчётах об ошибках и окончанием релизов. Тестирование – это часть QA.

Тестирование - это не этап в Agile разработке ПО, это непрерывная деятельность до, во время и после каждого спринта. В Agile команде каждый несет ответственность за качество программного обеспечения и качество должно присутствовать с самого начала работы, а не подгоняться в конце. Если какая-либо из заинтересованных сторон - BАs, stakeholders, разработчики или же другие члены команды, не сфокусированы на качестве, то тестировщик должен напомнить команде о последствиях такого игнорирования, которое может отразиться на качестве программного обеспечения.

Технические знания и тестовая автоматизация.

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

Хороший Agile тестировщик, вооруженный техническими знаниями, способен:

  • определить и сообщить, какие тесты должны быть автоматизированы и на каком уровне;

  • выбрать необходимые ему инструменты для тестирования;

  • помочь разработчикам в написании автоматизировнных тестов и анализе результатов этих тестов;

  • создание различных наборов автоматизации, таких как smoke pack, full regression pack, end-to-end regression pack и так далее;

  • минимизировать время выполнения тестов для получения быстрой обратной связи;

  • выполнять тесты постоянно;

  • обеспечить полезные метрики для бизнеса;

  • применять различные методы и инструменты, чтобы помочь ручному тестированию.

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

Для того, чтобы получить максимальную выгоду от автоматизации тестирования, следует применять только best practices

Обеспечение обратной связи.

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

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

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

Kniberg и Skarin как-то сказали:

«Измените что-то => Проверьте, как это работает => Запомните это => Измените что-то снова. В общем, вам необходимо как можно быстрее получать обратную связь, чтобы у вас появилась возможность, как можно быстрее адаптировать процессы».

Обратную связь можно обеспечить в различных формах, таких как:

  • Парное программирование (Pair Programming)

  • Code Reviews

  • Модульные тесты (Unit Tests)

  • Automated Integration Tests

  • Automated Acceptance Tests

  • Automated Regression Tests

  • Exploratory Testing

Конечно, Agile тестировщик должен гарантировать, что правильные и эффективные тесты пишутся и выполняются на каждом уровне.

Как разобраться в Agile методологии.

Хорошие Agile тестировщики прочитали и поняли «Agile manifesto» и реализуют эти принципы в своих повседневных задачах. Agile тестировщики понимают, что они являются частью команды, и что нет никакого разделения на стадию тестирования и стадию разработки, а тестирование представляет собой непрерывную деятельность, которая является частью разработки.

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

Хорошие Agile тестировщики изучают Agile терминологию и постоянно практикуются. Они читают книги, такие как: Agile Testing by Lisa Crispin и Janet Gregory, User Stories Applied by Mike Cohn, Specifications By Example by Gojko Adzic..

Базовые знания.

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

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

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

Базовые знания можно получить: общаясь с BАs и разработчиком, работая с приложением и читая спецификации.

Стремление к знаниям и самосовершенствованию.

Члены Agile команды должны иметь все необходимые знания для создания и передачи хорошего решения, содержащего в себе технические и деловые навыки.

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

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

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

Заключение.

«Основными факторами для успешной Agile команды являются менталитет и отношения между членами команды, стремление каждого из команды к единой цели, что приводит к общему успеху. Это объединяет команду и каждый из её членов действует по принципу – «Один за всех и все за одного».

Мы стремимся к тому, чтобы отношения внутри команды были – «Что я могу сделать для того, чтобы помочь вам?», а не – «Это не моя проблема.»


 

4 ноября / 2016

148 переглядів

Comentários


Блог о тестировании и всём, что может быть полезно тестировщику

bottom of page