Исследовательское тестирование и исследовательские туры Виттакера

Получившаяся статья – это частично перевод другой информации, частично опыт использования, частично изложение собственных мыслей на тему исследовательского тестирования и исследовательских туров. 

Спасибо моим коллегам, которые на себе опробовали каждый тур и дали свой фидбек! Без них, книги Виттакера “Exploratory Software Testing”  и мировой паутины не получилось бы статьи!

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

Что такое исследовательское тестирование?

Исследовательское тестирование (exploratory testing) – это одновременное изучение программного продукта, проектирование тестов и их исполнение.

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

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

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

 

По ISTQB и по Джеймсу Баху исследовательское тестирование – это неформальный метод проектирования тестов, при котором тестировщик активно контролирует проектирование тестов в то время, как эти тесты выполняются, и использует полученную во время тестирования информацию для для проектирования новых и улучшенных тестов.

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

Тест – это что то, что дает тебе новую информацию о программе. Один и тот же тест выполненный дважды уже нельзя назвать тестом, это уже будет скорее проверка. [Бах]

 

Когда следует применять  исследовательское тестирование?

Самые распространенные случаи:

  • вам нужно обеспечить быструю обратную связь о новом продукте или фиче
  • нужно быстро изучить продукт
  • вы уже провели скриптовое тестирование и хотите разнообразить своё тестирование
  • вам нужно найти самый важный баг в кратчайшие сроки
  • вы хотите проверить работу другого тестировщика
  • вам нужно обнаружить и локализовать дефект
  • вам нужно изучить состояние конкретного риска для принятия решения о необходимости покрытия этой области скриптовыми тестами

Но, на самом деле, теория исследовательского тестирования 3.0 отказывается вообще от термина “исследовательское тестирование”, заявляя о нем как об избыточном и бесполезном. Исследовательское тестирование – это любое настоящее тестирование.

 

Как организовать исследовательское тестирование?

Для управления исследовательским тестированием может использоваться Session-Based Test Management. В основе этой модели лежат:

  • Тестовые сессии – ограниченные промежутки времени, в рамках которых происходит тестирование‎. При этом каждая сессия имеет тему.
  • Отчеты по результатам сессий, оформленные в пригодной для парсинга и сбора статистики форме.
  • Обсуждение лидом и тестировщиком результатов проведенной сессии.

 

Идея туров в исследовательском тестировании

Чтобы систематизировать исследовательское тестирование можно использовать идею туров.  Туры – это идеи и инструкции по исследованию программного продукта, объединенные определённой общей темой или целью. Туры, как правило, ограничены по времени – длительность тестовой сессии не должна превышать 4 часа.

Идею туров развивали в своих работах Канер, Бах, Хендриксон, Болтон, Кохл и другие. В конце статьи есть дополнительные ссылки на их работы.

Джеймс Виттакер, хоть и не придумал саму идею туров, но предложил свой подход к исследовательскому тестированию с использованием туров и в своей книге “Exploratory Software Testing” в доступной форме озвучил идею туров и описал сами туры.

Тур – это своего рода план тестирования, он отражает основные цели и задачи, на которых будет сконцентрировано внимание тестировщика во время сессии исследовательского тестирования. При этом Виттакер использует метафору, что тестировщик – это турист, а тестируемое приложение – это город. Обычно у туриста (тестировщика) мало времени, поэтому он выполняет конкретную задачу в рамках выбранного тура, ни на что другое не отвлекаясь. Город (ПО) разбит на  районы: деловой центр, исторический район, район развлечений, туристический район, район отелей, неблагополучный район.

 

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

 

Общая карта районов приложения и туров по ним

 

 

 

Матрица по турам и типам багов, которые они находят

Матрица основана только на опыте применения в моей команде.

 

Continue reading