Agile-тестирование – один из наиболее распространенных подходов к тестированию в современном мире ИТ.
В общем английском языке слово “agile” означает “способность быстро двигаться”. В программной инженерии “agile” означает непрерывный, инкрементальный и итеративный подход к разработке любого программного обеспечения. При этом подходе требования и решения развиваются со временем.
Если говорить об Agile в тестировании программного обеспечения, то эта методология основана на принципах Agile-разработки ПО. В соответствии с ними основной задачей команд разработчиков программного обеспечения является удовлетворение потребностей клиентов посредством многочисленных итераций.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Содержание
- Что такое Agile-разработка?
- Особенности Agile-тестирования
- Методы Agile-тестирования
- Преимущества Agile-тестирования
- Недостатки Agile-тестирования
- Заключение
Что такое 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».
Пингбэк: Топ вопросов на собеседовании по методологии Agile