Agile — это методология итеративной разработки, в которой действия по разработке и тестированию выполняются одновременно. Тестирование не является отдельной фазой; Кодирование и тестирование выполняются в интерактивном режиме и постепенно, что приводит к качественному конечному продукту, который соответствует требованиям заказчика. Кроме того, непрерывная интеграция приводит к раннему удалению дефектов и, следовательно, экономии времени, усилий и затрат.
Agile Manifesto
Agile Manifesto был опубликован командой разработчиков программного обеспечения в 2001 году, подчеркивая важность команды разработчиков, учитывая изменяющиеся требования и участие клиентов.
Agile Manifesto — это
Мы раскрываем лучшие способы разработки программного обеспечения, делая это и помогая другим делать это. Благодаря этой работе мы пришли к оценке —
- Люди и взаимодействия по процессам и инструментам.
- Рабочая программа над исчерпывающей документацией.
- Сотрудничество с клиентом по договору.
- Реагировать на изменения в соответствии с планом.
То есть, хотя в элементах справа есть ценность, мы слева оцениваем элементы больше.
Что такое Agile Testing?
Agile Testing — это практика тестирования программного обеспечения, которая следует принципам гибкой разработки программного обеспечения.
Agile Testing включает в себя всех членов команды проекта, со специальным опытом, предоставленным тестировщиками. Тестирование не является отдельной фазой и тесно связано со всеми фазами разработки, такими как требования, проектирование, кодирование и генерация тестовых наборов. Тестирование происходит одновременно через жизненный цикл разработки.
Кроме того, с участием тестировщиков, участвующих во всем жизненном цикле разработки совместно с кросс-функциональными членами команды, станет возможен вклад тестеров в создание программного обеспечения в соответствии с требованиями заказчика, с улучшенным дизайном и кодом.
Agile Testing охватывает все уровни тестирования и все виды тестирования.
Agile Testing Vs. Водопад Тестирование
В методологии разработки водопадов жизненный цикл разработки происходит в последовательных фазах. Таким образом, тестирование является отдельной фазой и инициируется только после завершения фазы разработки.
Ниже приведены основные отличия Agile Testing и Waterfall Testing —
Agile Testing | Водопад Тестирование |
---|---|
Тестирование не является отдельной фазой и происходит одновременно с разработкой. | Тестирование — это отдельная фаза. Все уровни и виды тестирования могут начинаться только после завершения разработки. |
Тестеры и разработчики работают вместе. | Тестеры работают отдельно от разработчиков. |
Тестеры участвуют в разработке требований. Это помогает в сопоставлении требований к поведению в сценарии реального мира, а также в формировании критериев приемлемости. Кроме того, логические Приемочные тестовые случаи будут готовы вместе с требованиями. | Тестеры могут быть не вовлечены в фазу требований. |
Приемочное тестирование проводится после каждой итерации и запрашивается обратная связь с клиентом. | Приемочные испытания проводятся только в конце проекта. |
Каждая итерация завершает свое собственное тестирование, что позволяет проводить регрессионное тестирование каждый раз, когда выпускаются новые функции или логика. | Регрессионное тестирование может быть реализовано только после завершения разработки. |
Никаких задержек между кодированием и тестированием. | Обычные задержки между кодированием и тестированием. |
Непрерывное тестирование с перекрывающимися уровнями тестирования. | Тестирование — это заданное по времени действие, и уровни тестирования не могут перекрываться. |
Тестирование — это лучшая практика. | Тестирование часто пропускается. |
Принципы гибкого тестирования
Принципы гибкого тестирования:
-
Тестирование продвигает проект вперед. Непрерывное тестирование — единственный способ обеспечить непрерывный прогресс. Agile Testing обеспечивает обратную связь на постоянной основе, и конечный продукт отвечает требованиям бизнеса.
-
Тестирование не является этапом — Agile команда проводит тестирование вместе с командой разработчиков, чтобы убедиться, что функции, реализованные во время данной итерации, действительно выполнены. Тестирование не ведется для более поздней фазы.
-
Все тестируют. В гибком тестировании приложение тестирует вся команда, включая аналитиков, разработчиков и тестировщиков. После каждой итерации даже заказчик проводит приемочное тестирование.
-
Сокращение циклов обратной связи — В Agile Testing бизнес-команда узнает о разработке продукта для каждой итерации. Они участвуют в каждой итерации. Непрерывная обратная связь сокращает время отклика обратной связи, и, следовательно, затраты на его устранение уменьшаются.
-
Сохраняйте код чистым — дефекты исправляются по мере их появления в течение одной итерации. Это гарантирует чистый код на любом этапе разработки.
-
Облегченная документация — вместо исчерпывающей документации по тестированию Agile Testers —
-
Используйте многоразовые контрольные списки, чтобы предложить тесты.
-
Сосредоточьтесь на сути теста, а не на случайных деталях.
-
Используйте легкие стили документации / инструменты.
-
Запишите идеи испытаний в чартеры для пробных испытаний.
-
Используйте документы для нескольких целей.
-
-
Использование одного тестового артефакта для ручных и автоматических тестов. Один и тот же артефакт тестового скрипта можно использовать для ручного тестирования и в качестве входных данных для автоматических тестов. Это устраняет необходимость в документации по тестированию вручную, а затем эквивалентный сценарий теста автоматизации.
-
«Готово Готово», а не просто выполнено — говорят, что в Agile функция выполняется не после разработки, а после разработки и тестирования.
-
Test-Last против Test Driven — Тестовые случаи пишутся вместе с требованиями. Следовательно, развитие может быть обусловлено тестированием. Этот подход называется разработкой, управляемой тестированием (TDD), и разработкой, основанной на приемочных испытаниях (ATDD). Это в отличие от тестирования в качестве последнего этапа в тестировании водопад.
Тестирование продвигает проект вперед. Непрерывное тестирование — единственный способ обеспечить непрерывный прогресс. Agile Testing обеспечивает обратную связь на постоянной основе, и конечный продукт отвечает требованиям бизнеса.
Тестирование не является этапом — Agile команда проводит тестирование вместе с командой разработчиков, чтобы убедиться, что функции, реализованные во время данной итерации, действительно выполнены. Тестирование не ведется для более поздней фазы.
Все тестируют. В гибком тестировании приложение тестирует вся команда, включая аналитиков, разработчиков и тестировщиков. После каждой итерации даже заказчик проводит приемочное тестирование.
Сокращение циклов обратной связи — В Agile Testing бизнес-команда узнает о разработке продукта для каждой итерации. Они участвуют в каждой итерации. Непрерывная обратная связь сокращает время отклика обратной связи, и, следовательно, затраты на его устранение уменьшаются.
Сохраняйте код чистым — дефекты исправляются по мере их появления в течение одной итерации. Это гарантирует чистый код на любом этапе разработки.
Облегченная документация — вместо исчерпывающей документации по тестированию Agile Testers —
Используйте многоразовые контрольные списки, чтобы предложить тесты.
Сосредоточьтесь на сути теста, а не на случайных деталях.
Используйте легкие стили документации / инструменты.
Запишите идеи испытаний в чартеры для пробных испытаний.
Используйте документы для нескольких целей.
Использование одного тестового артефакта для ручных и автоматических тестов. Один и тот же артефакт тестового скрипта можно использовать для ручного тестирования и в качестве входных данных для автоматических тестов. Это устраняет необходимость в документации по тестированию вручную, а затем эквивалентный сценарий теста автоматизации.
«Готово Готово», а не просто выполнено — говорят, что в Agile функция выполняется не после разработки, а после разработки и тестирования.
Test-Last против Test Driven — Тестовые случаи пишутся вместе с требованиями. Следовательно, развитие может быть обусловлено тестированием. Этот подход называется разработкой, управляемой тестированием (TDD), и разработкой, основанной на приемочных испытаниях (ATDD). Это в отличие от тестирования в качестве последнего этапа в тестировании водопад.
Agile Тестирование
Проведение Agile-тестирования на уровне проекта —
-
Планирование выпуска (план тестирования)
-
Для каждой итерации
-
Операции гибкого тестирования во время итерации
-
-
Регрессионное тестирование
-
Действия по выпуску (связанные тесты)
Планирование выпуска (план тестирования)
Для каждой итерации
Операции гибкого тестирования во время итерации
Регрессионное тестирование
Действия по выпуску (связанные тесты)
Операции гибкого тестирования во время итерации включают в себя: