Гибкое тестирование - Обзор
Agile- это итеративная методология разработки, при которой одновременно выполняются и разработка, и тестирование. Тестирование - это не отдельный этап; Кодирование и тестирование выполняются в интерактивном режиме и поэтапно, в результате чего получается качественный конечный продукт, отвечающий требованиям заказчика. Кроме того, непрерывная интеграция приводит к раннему устранению дефектов и, следовательно, к экономии времени, усилий и затрат.
Agile манифест
Agile Manifesto был опубликован группой разработчиков программного обеспечения в 2001 году, в нем подчеркивалась важность команды разработчиков, учета меняющихся требований и участия клиентов.
The Agile Manifesto is −
Мы открываем лучшие способы разработки программного обеспечения, делая это и помогая другим делать это. Благодаря этой работе мы пришли к выводу:
- Люди и взаимодействие важнее процессов и инструментов.
- Рабочее программное обеспечение требует исчерпывающей документации.
- Сотрудничество с клиентами вместо переговоров по контракту.
- Реагирование на изменения вместо следования плану.
То есть, хотя предметы справа имеют ценность, мы больше ценим предметы слева.
Что такое гибкое тестирование?
Agile Testing - это практика тестирования программного обеспечения, которая следует принципам гибкой разработки программного обеспечения.
В Agile-тестировании участвуют все члены проектной команды, обладающие специальными знаниями, предоставленными тестировщиками. Тестирование не является отдельным этапом и переплетается со всеми этапами разработки, такими как требования, проектирование и кодирование, а также создание тестовых примеров. Тестирование происходит одновременно на протяжении жизненного цикла разработки.
Кроме того, если тестировщики участвуют в течение всего жизненного цикла разработки вместе с членами кросс-функциональной команды, становится возможным вклад тестировщиков в создание программного обеспечения в соответствии с требованиями заказчика с улучшенным дизайном и кодом.
Agile Testing охватывает все уровни тестирования и все типы тестирования.
Agile Testing Vs. Водопад Тестирование
В методологии «Каскадная разработка» действия жизненного цикла разработки выполняются в последовательных фазах. Таким образом, тестирование является отдельным этапом и начинается только после завершения этапа разработки.
Ниже приведены основные различия между Agile Testing и Waterfall Testing.
Гибкое тестирование | Водопад Тестирование |
---|---|
Тестирование не является отдельным этапом и происходит одновременно с разработкой. | Тестирование - это отдельный этап. Все уровни и виды тестирования можно начинать только после завершения разработки. |
Тестировщики и разработчики работают вместе. | Тестировщики работают отдельно от разработчиков. |
Тестировщики участвуют в разработке требований. Это помогает в сопоставлении требований с поведением в реальном сценарии, а также в определении критериев приемлемости. Кроме того, будут готовы логические примеры приемочных испытаний вместе с требованиями. | Тестировщики могут не участвовать в фазе требований. |
Приемочное тестирование проводится после каждой итерации, и требуется обратная связь с клиентами. | Приемочные испытания проводятся только в конце проекта. |
Каждая итерация завершает собственное тестирование, что позволяет проводить регрессионное тестирование каждый раз, когда выпускаются новые функции или логика. | Регрессионное тестирование может быть реализовано только после завершения разработки. |
Никаких задержек между написанием кода и тестированием. | Обычные задержки между кодированием и тестированием. |
Непрерывное тестирование с перекрытием уровней тестирования. | Тестирование - это ограниченное по времени действие, и уровни тестирования не могут перекрываться. |
Тестирование - лучшая практика. | Тестирование часто упускается из виду. |
Принципы гибкого тестирования
Принципы гибкого тестирования:
Testing moves the project forward- Непрерывное тестирование - единственный способ обеспечить непрерывный прогресс. Agile Testing обеспечивает постоянную обратную связь, и конечный продукт соответствует требованиям бизнеса.
Testing is not a phase- Гибкие командные тесты вместе с командой разработчиков, чтобы гарантировать, что функции, реализованные во время данной итерации, действительно реализованы. Тестирование не переносится на более поздний этап.
Everyone tests- При гибком тестировании вся команда, включая аналитиков, разработчиков и тестировщиков, тестирует приложение. После каждой итерации даже заказчик выполняет приемочное тестирование для пользователей.
Shortening Feedback Loops- В Agile Testing бизнес-команда знакомится с разработкой продукта для каждой итерации. Они участвуют в каждой итерации. Непрерывная обратная связь сокращает время отклика обратной связи и, следовательно, снижает затраты на ее устранение.
Keep the Code Clean- Дефекты исправляются по мере их возникновения в рамках одной итерации. Это гарантирует чистый код на любом этапе разработки.
Lightweight Documentation - Вместо исчерпывающей тестовой документации, Agile-тестеры -
Используйте многоразовые контрольные списки, чтобы предлагать тесты.
Сосредоточьтесь на сути теста, а не на случайных деталях.
Используйте легкие стили / инструменты документации.
Фиксируйте тестовые идеи в уставах для исследовательского тестирования.
Используйте документы для различных целей.
Leveraging one test artifact for manual and automated tests- Один и тот же артефакт тестового сценария можно использовать для ручного тестирования и в качестве входных данных для автоматических тестов. Это устраняет необходимость в документации по ручному тестированию, а затем в эквивалентном сценарии тестирования автоматизации.
“Done Done,” not just done - В Agile считается, что функция создается не после разработки, а после разработки и тестирования.
Test-Last vs. Test Driven- Тестовые случаи написаны вместе с требованиями. Следовательно, развитие может стимулироваться тестированием. Этот подход называется разработкой через тестирование (TDD) и разработкой через приемочные испытания (ATDD). Это контрастирует с последним этапом тестирования Waterfall Testing.
Действия по гибкому тестированию
Действия по гибкому тестированию на уровне проекта:
Планирование выпуска (план тестирования)
Для каждой итерации
Действия по гибкому тестированию во время итерации
Регрессионное тестирование
Действия по выпуску (связанные с тестированием)
Действия по гибкому тестированию во время итерации включают:
- Участие в планировании итераций
- Оценка задач с точки зрения тестирования
- Написание тестовых примеров с использованием описаний функций
- Модульное тестирование
- Интеграционное тестирование
- Тестирование функций
- Устранение дефектов
- Интеграционное тестирование
- Приемочное тестирование
- Отчетность о ходе тестирования
- Отслеживание дефектов