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

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

Во-первых, краткое введение в гибкую методологию и исследовательское тестирование:

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


Исследовательское тестирование определяется как одновременное обучение, разработка и выполнение тестов. Это подход к тестированию, который оценивает тестировщика как неотъемлемую часть процесса тестирования и разделяет те же ценности, что и Agile Manifesto:

  • Лица и взаимодействия над процессами и инструментами
  • Рабочий софт над исчерпывающей документацией
  • Сотрудничество с клиентами по переговорам по контракту
  • Реагируя на изменения за следование плану

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


В соответствии с Квадрант тестирования Брайана Марика , есть две стороны тестирования: те, которые поддерживают программирование, т. е. поддерживают написание кода (модульные тесты) или обеспечивают указание того, когда программист может закончить (приемочные тесты), и те, которые критикуют продукт, то есть «посмотрите на законченный продукт с целью выявления недостатков ». Именно здесь, в области критики продукта, исследовательское тестирование может сыграть важную роль в гибком проекте.

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

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

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