Что такое Agile-тестирование?

Agile-тестирование – один из наиболее распространенных подходов к тестированию в современном мире ИТ.

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

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

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Содержание

Что такое Agile-разработка программ?

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

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

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

Особенности Agile-тестирования

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

Методы Agile-тестирования

Исследовательское тестирование

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

Тестировщикам не выдается подробная документация. Они сосредотачиваются на сценариях с высоким уровнем риска, основываясь на своем опыте.

Тестирование на основе рисков

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

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

Тесты FIT

FIT расшифровывается как Framework Integrated Test. Как следует из названия, этот метод представляет собой интеграцию задач аналитиков, тестировщиков, разработчиков и даже заказчиков. При использовании этого метода результат тестирования отображается тремя цветами – красным, желтым или зеленым. Цвета обозначают уровень качества программного обеспечения.

Behavior Driven Development (BDD)

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

Тестовые сценарии в BDD пишутся в формате синтаксиса Gherkin Given/When/Then. Документирование сценариев помогает создавать тесты, которые могут быть провалены на начальном этапе, чтобы в дальнейшем можно было построить функциональность, обеспечивающую прохождение тестов.

Разработка через приемочные тесты (ATDD)

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

Преимущества Agile-тестирования

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

Недостатки Agile-тестирования

  • Безусловно, гибкость Agile-тестирования позволяет приспособиться к изменениям и технологическому прогрессу. Но изменения не всегда можно предвидеть. В результате, иногда новшества последней итерации оказываются непредсказуемыми для пользователей.
  • Из-за постоянного изменения требований иногда становится трудно оценить реальные усилия, необходимые для выполнения конкретной задачи.
  • Автоматизация никогда не сможет полностью заменить ручной опыт, поэтому важно соблюдать баланс.
  • Повторяющиеся релизы частей программного обеспечения влекут за собой большие расходы.
  • Каждая итерация проходит через свои фазы разработки, поэтому уровни разработки могут неоправданно перекрывать друг друга.
  • Из-за краткости спринтов меньше внимания уделяется документации.

Заключение

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

Перевод статьи «What is Agile Testing – Features, Methods, Pros and Cons».

1 комментарий к “Что такое Agile-тестирование?”

  1. Пингбэк: Топ вопросов на собеседовании по методологии Agile

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *