В этой статье мы разберем один из наиболее распространенных видов тестирования программного обеспечения – исследовательское тестирование (exploratory testing). Мы рассмотрим его основные типы, достоинства, недостатки, а в заключение проведем сравнительный анализ исследовательского и сценарного тестирования (scripted testing).
Содержание
- Определение исследовательского тестирования
- Типы исследовательского тестирования
- Достоинства исследовательского тестирования
- Недостатки исследовательского тестирования
- Различия между сценарным и исследовательским тестированием
- Заключение
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Определение исследовательского тестирования
Исследовательское тестирование – это тип тестирования, при котором тестировщики свободно исследуют систему, без какого-либо заранее подготовленного тест-плана.
В этом виде тестирования тестировщики анализируют ПО, разрабатывают тесты и выполняют их одновременно, без предварительного планирования. Это означает отсутствие какой-либо формальной документации, такой как тест-план, тест-кейсы и т.д.
Подобная практика тестирования главным образом используется в гибком подходе к разработке (по методологии Аgile). В Agile-проектах процесс разработки происходит очень быстро и на тестирование зачастую остается мало времени. В таких случаях исследовательское тестирование может оказаться очень эффективным. Оно позволяет тестировщику самому решать, как тестировать систему, чтобы обнаружить максимальное количество багов.
Исследовательское тестирование также полезно тогда, когда тестировщикам не до конца ясны функциональные требования. Это метод «черного ящика», при котором тестировщик сам решает, что и как проверять. Такой подход помогает учиться новому, расширять опыт и применять его в дальнейших проектах по тестированию.
В исследовательском тестировании, в отличие от традиционного тестирования по сценариям, тестировщики не следуют заранее подготовленным тест-планам и тест-кейсам. Они проверяют систему интуитивно, без предварительной разработки детальной документации.
Типы исследовательского тестирования
Ниже перечислены основные виды исследовательского тестирования:
- Свободное исследовательское тестирование. Это когда тестировщик проверяет приложение так, как считает нужным, без установленных правил и критериев. Тестирование проводится случайным образом, по так называемому методу ad hoc. Такая техника особенно эффективна для проведения быстрого smoke-тестирования.
- Направленное исследовательское тестирование. Тип тестирования, при котором тестировщик проверяет конкретный сценарий или функциональность.
- Стратегическое исследовательское тестирование. Метод, при котором используются стратегии тестирования, такие как анализ граничных значений, метод эквивалентных классов, граф причинно-следственных связей (Cause-Effect Graphing) и другие. Для такого рода тестирования тестировщик должен хорошо понимать, как работает система и ее функционал.
Достоинства исследовательского тестирования
- Требуется меньше времени на подготовку. Поскольку предварительное планирование не требуется, тестировщики сразу же приступают к тестированию системы, не тратя много времени на длительный процесс планирования.
- Критические баги обнаруживаются на ранних этапах. Так как тестировщик сразу проверяет основные функции ПО, есть шанс обнаружить критические или глобальные ошибки на самой ранней стадии.
- Полезно для поиска новых багов. Тестировщику, выполняющему исследовательское тестирование, затруднительно повторять одни и те же сценарии. Вместо этого он может совершить новые шаги, что приведет к обнаружению новых ошибок.
- Легкость тестирования даже при частичном или полном отсутствии требований. Тестирование можно проводить, даже если требования не задокументированы или частично не оформлены. В исследовательском тестировании тестировщики изучают систему непосредственно в процессе работы, поэтому им не требуется предварительно разбираться во всех ее тонкостях.
- Повышает знания специалиста и его производительность. Исследовательское тестирование помогает тестировщикам лучше понять систему и повысить свою продуктивность. Используя критическое и аналитическое мышление для поиска багов, они углубляют свои знания о ресурсе и работают эффективнее.
Недостатки исследовательского тестирования
- Сложно отследить, какие тесты были проведены, а какие еще нужно сделать. Поскольку тестировщики проверяют систему на ходу, они могут не зафиксировать все свои действия и иногда пропустить важные функции и тестовые сценарии.
- Требуется опытный специалист с критическим мышлением. Так как исследовательское тестирование нужно начинать сразу после получения системы, то времени на подготовку фактически нет. Поэтому важно, чтобы эту работу выполнял профессионал с глубокими знаниями в нужной области.
- Мало времени на знакомство с новым приложением, особенно для новичков. Иногда тестировщику бывает трудно быстро освоить приложение, особенно если функционал системы является критически важным. Это может привести к тому, что неопытным специалистам не удастся найти такое количество багов, сколько от них ожидалось.
- Сложно воспроизвести ошибку. Из-за того, что тестировщики не всегда в состоянии точно отследить, что конкретно они тестировали, может оказаться затруднительно повторить те же действия для воспроизведения найденного бага.
Различия между сценарным и исследовательским тестированием
В сценарном тестировании для его начала необходимо, чтобы документация с требованиями была полностью готова. На основе требований разрабатываются тест-кейсы, охватывающие весь функционал системы. Перед началом самого процесса тестирования команда должна подготовить подробный план тестирования.
В исследовательском тестировании специалисты могут приступить к тестированию системы даже при отсутствующей или неполной документации с требованиями. Тестировщикам не нужны тест-план и тест-кейсы для начала тестирования. Разработка тестов и их выполнение происходит одновременно, а тестировщики изучают функционал системы по мере ее освоения.
Заключение
Исследовательское тестирование — это нестандартная, но очень полезная и эффективная методика тестирования. Доказано, что по эффективности оно превосходит сценарное тестирование. Оно помогает находить баги, которые могли быть пропущены при сценарном тестировании.
Кроме того, этот подход дает тестировщику свободу в выборе способов тестирования, что способствует расширению его знаний и развитию мышления.
Смотрите также: “Software Tools для исследовательского тестирования”.
Перевод статьи “Exploratory Testing”.
Пингбэк: Как работать с текстовыми полями в Playwright?