Под исследовательским тестированием понимают разработку тестов и их проведение в одно и то же время. Что это значит?
По мнению Джеймса Баха, написавшего цикл статей об исследовательском тестировании, это неформальный метод проектирования тестов, во время которого тестировщик активно контролирует проведение тестов, во время тестирования получает информацию, использует информацию для проектирования новых и улучшения существующих тестов.
Исследовательское тестирование одновременно является техникой и видом тестирования, т. к. всегда используется комбинация сценарного и исследовательского подходов. Баланс между ними обусловлен неопределенностью, зависящей от того, сколько новой информации, неучтенной в сценариях, мы получаем во время тестирования. Если такой информации мало, мы можем продолжить тестирование по существующим сценариям и не писать новые тесты, в которых нет необходимости.
Если во время тестирования мы получаем много новой информации о поведении программы, то необходимо скорректировать существующие тесты и написать новые, чтобы наиболее полно проверить программный продукт. В этом случае баланс смещается в сторону поиска и исследования новых видов тестов, нахождения лучшей стратегии тестирования.
Для систематизации исследований, в тестировании принято использовать т.н. туры - идеи и инструкции исследования программ, объединенные общей целью. Тур ограничен по времени и не превышает 4 часа. Это план тестирования, в котором отражены цели и задачи, общее направление тестирования. Из-за этого тестировщиков, работающих по таким планам, стали называть туристами, идущими по запланированным маршрутам.
Иногда исследовательское тестирование путают с «ad hoc» тестированием, не имеющем исследовательской базы, а являющимся чистой импровизацией. Но «ad hoc» тестирование не может быть даже частным случаем исследовательского тестирования, т.к. при исследовательском тестировании, процесс принятия решений основан на когнитивных процессах:
- какой путь выбрать для исследования;
- какими пользоваться источниками информации;
- какие применять методы тестирования;
- какую применить степень автоматизации.
Нет никаких ограничений в выборе, но тестировщик берет на себя всю ответственность за свой выбор. Можно использовать существующие тесты, но это не просто перезапуск старых тестов, а изучение поведения программы для создания новых тестов. Тестировщик ищет новые идеи того, как программа может выйти из строя, ищет пути ее дальнейшего тестирования, выбирает, какие метрики применить, и оценивает, насколько полезны эти тесты на данном этапе разработки.
Исходя из того, что при исследовательском тестировании могут применяться автотесты, возникает вопрос, почему не автоматизировать весь процесс исследовательского тестирования? Ведь существует машинное обучение, с помощью которого можно было бы скомбинировать сценарный подход с существующими эвристическими методиками?
К сожалению, мы не можем спрогнозировать то, чего нет - отклонения от запланированного поведения программы. Поэтому заранее такие тесты не пишутся, и утверждение Джеймса Баха о том, что выполнение тестов можно автоматизировать, а мышление - нет, по-прежнему верно. Исследовательское тестирование все еще зависит от интуиции, навыков и опыта тестировщика.
Наверняка у Вас, дорогие мои читатели, возникает вопрос: а что же наша наука, почему мы изучаем опыт только западных ученых? Неужели у нас нет своих ученых? Конечно, есть. Когда я училась в аспирантуре, у нас на кафедре работали ученые, занимавшиеся эвристическими методами, прогнозными моделями, основанными на теории принятия решений, в условиях неопределенности.
Некоторые из этих ученых по-прежнему работают, например, профессор, д.т.н. Борис Борисович Зобнин. Когда-то я работала в его научных темах, в конце 80х - начале 90х годов, в студенческие годы. Помню, он тогда выпустил математический справочник под своей редакцией, и одна глава была посвящена научной работе, в которой он доказал неприменимость статистических методов в горном деле. Сложность моделей техногенных объектов стремится к бесконечности из-за практическими бесконечного количества параметров, которые необходимо учесть. Поэтому учитывают, как правило, 3-5 параметров, а остальные параметры считают "условиями неопределенности".
Благодаря тем научным разработкам, в которых мне удалось поучаствовать, тема исследовательского тестирования оказалась мне очень знакомой, также как и методы, применяемые Джеймсом Бахом. Поэтому моя статья - это не очередное переписывание идей из его статей, а синтез теоретических и практических исследований западных и отечественных ученых.
Если понравилось, ставьте лайк. Если есть вопросы, пишите, всем отвечу.