Agile-тестирование — это практика тестирования программного обеспечения , которая следует принципам гибкой разработки программного обеспечения . Agile-тестирование включает в себя всех членов кросс-функциональной гибкой команды, с особым опытом, предоставляемым тестировщиками, для обеспечения предоставления желаемой клиентом бизнес-ценности с частыми интервалами, работая в устойчивом темпе. Спецификация по примерам используется для фиксации примеров желаемого и нежелательного поведения и руководства кодированием.
Agile-разработка признает, что тестирование — это не отдельная фаза, а неотъемлемая часть разработки программного обеспечения, наряду с кодированием. Agile-команды используют подход «всей команды» для «внедрения качества» в программный продукт. Тестировщики в agile-командах делятся своим опытом в выявлении примеров желаемого поведения у клиентов, сотрудничая с командой разработчиков, чтобы превратить их в исполняемые спецификации, которые направляют кодирование. Тестирование и кодирование выполняются постепенно и интерактивно, наращивая каждую функцию до тех пор, пока она не обеспечит достаточно ценности для выпуска в производство. Agile-тестирование охватывает все типы тестирования. Agile-квадранты тестирования предоставляют полезную таксономию, чтобы помочь командам определить и спланировать необходимое тестирование. Модель Agile-квадрантов тестирования была первоначально описана Брайаном Мариком [1] и была популяризирована Лизой Криспин и Джанет Грегори в их книге Agile Testing: A Practical Guide for Testers and Agile Teams . [2] [3] Он размещает различные типы тестов на двух осях: «Технология» против «Бизнес» и «Программирование поддержки» против «Критика продукта». [1]
Традиционные методологии тестирования (часто используемые в каскадной модели разработки программного обеспечения ) обычно включают двухэтапный процесс, в котором команда разработчиков создает продукт, максимально приближенный к совершенству. Программный продукт поставляется на поздних этапах жизненного цикла разработки программного обеспечения , и в этот момент команда тестирования стремится найти как можно больше ошибок/багов . В отличие от этих традиционных методологий, гибкое тестирование фокусируется на немедленном исправлении ошибок, а не на ожидании окончания проекта. Когда тестирование проводится в конце проекта, иногда его длительность и качество могут быть принесены в жертву, чтобы соответствовать критическим графикам и бюджетным ограничениям. [4] Ожидается, что затраты будут снижаться по мере уменьшения времени между разработкой и тестированием обратной связи. [4] [5] При более коротких циклах обратной связи исправление ошибок и переделка требуют меньше времени, поскольку разработчики тратят гораздо меньше времени на повторное вовлечение контекста кода при переходе к новым проблемам и проектам. [4]
В "Worldwide Software Testing Practices Report 2015 - 2016" [6] ISTQB обнаружил, что популярность Agile-методологий значительно растет, что показывает потребность в Agile-процессах и методах тестирования. Они предоставляют расширение Agile Tester для своей сертификации. [7]
По мере роста компаний команды гибкого тестирования часто полагаются на инструменты тестирования программного обеспечения для решения проблем, которые в конечном итоге могут ускорить выпуск отзывов, обеспечивая уверенность. [8] Большинство команд ищут функции совместной работы, автоматизированные или настраиваемые отчеты и способы избежать повторных усилий. Выбор правильного инструмента будет зависеть от требований каждой команды. В сочетании с другими инструментами разработки жизненного цикла Agile инструменты тестирования Agile могут обеспечивать эффективные результаты, сосуществуя в интегрированных средах. Так обстоит дело с Atlassian Marketplace и Microsoft Visual Studio . [9]
Некоторые инструменты управления тестированием поддерживают гибкое тестирование, вовлекая команды на ранних этапах SDLC для непрерывного создания тестовых сценариев по мере развития историй. [10] Команды часто ищут решение, которое может обеспечить сочетание автоматизированного и ручного тестирования . [11]