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

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

Содержание

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

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

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

Примечание редакции: об использовании тест-кейсов читайте в статье “Как написать тест-кейсы на основе сценария”.

Пример юзкейса

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

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

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

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туторилов, задач по автоматизации и книг по QA.

Преимущества исследовательского тестирования:

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

Этапы исследовательского тестирования

1. Классификация ошибок

  • Категоризируйте часто встречающиеся ошибки в аналогичном ПО. Для этого используйте показатели серьезности и приоритета.
  • Проанализируйте и зафиксируйте первопричину таких ошибок.
  • Создайте тестовые сценарии для учёта этих ошибок.

2. Создание концепции тестирования

Концепция тестирования должна ответить на следующие вопросы:

  • Какие функции тестировать?
  • Как тестировать? (Создайте комплексный план).
  • Какие ошибки следует искать? Например, визуальные ошибки, функциональные ошибки и т.д.
  • Какие метрики следует учитывать при тестировании?

3. Таймбоксинг

Смысл таймбоксинга заключается во взаимодействии тестировщиков и системы в отведённый период времени. Что собой представляет таймбоксинг:

  • Работа над тестами в течение определенного времени (таймбокса, обычно 90 минут)
  • Перерывы не допускаются
  • Таймбокс может быть продлен или сокращен (в зависимости от хода выполнения теста)

4. Просмотр результатов

  • Каталогизируйте выявленные ошибки
  • Оцените дефекты
  • Зафиксируйте полученные результаты в отчете об ошибках

5. Разбор полётов

  • Соберите выходные результаты
  • Сравните фактические результаты с ожидаемыми
  • Определите, нужно ли дополнительное тестирование

Советы по исследовательскому тестированию

  • Разделите ПО на модули для упрощения и более эффективного покрытия тестами.
  • Составьте чек-лист всех функций, подлежащих тестированию, чтобы не упустить ни одной.
  • Начинайте с основных пользовательских сценариев. Расширяйте скоуп тестирования по мере продвижения, добавляя все новые и новые функции.
  • Проверьте UI на соответствие стандартам.
  • Цель исследовательского тестирования должна быть ясна.
  • Зафиксируйте, что нужно протестировать, зачем, и как оценить результат.
  • Ведите учет проблем, возникших в ходе тестирования.
  • Для эффективного тестирования объединяйте тестировщиков в пары.
  • Создавайте как можно больше документации.
  • Проводите несколько тестов, если это возможно, для максимизации покрытия.

Типы исследовательского тестирования

1. Свободное исследовательское тестирование. Считайте, что это исследовательское тестирование с ad-hoc подходом. В этом формате нет никаких правил, структуры или организации. Тестировщики быстро проходят через приложение, в основном, для того, чтобы проверить работу других тестировщиков, изучить конкретный дефект или провести быстрое смоук-тестирование.

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

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

Качества тестировщика-исследователя

Чтобы достичь успеха, специалисты, занимающиеся исследовательским тестированием, должны:

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

Лучшие практики исследовательского тестирования

  • Поймите клиента. Любое тестирование ПО направлено на проверку его качества, чтобы обеспечить максимальное удовлетворение пользователей. Понимание клиента – залог эффективного исследовательского тестирования. Такое тестирование вообще имеет смысл только в том случае, если вы понимаете нужды пользователей. Но помните, что конечных пользователей много и они все разные. Они по-разному используют одно и то же ПО в зависимости от возраста, пола, экономического статуса, предпочтений и других факторов. Тестировщики должны уметь подходить к программному обеспечению с точки зрения всех этих пользователей.
  • Используйте реальные браузеры и устройства. Клиенты будут пользоваться ПО на реальных устройствах. Поэтому и исследовательские тесты нужно проводить на реальных устройствах. Ни один эмулятор или симулятор не сможет обеспечить реальные условия. Если у тестировщиков нет доступа к собственной лаборатории (создание и обслуживание которой обычно требует больших финансовых вложений), воспользуйтесь облачным сервисом тестирования.
  • Изучите конкурентов. Зная, что работает и что не работает у конкурентов, тестировщики будут знать, на какие ошибки следует обратить внимание. Конечно, это желательно начинать делать еще на стадии разработки. Если тестировщик знает, что пользователи конкретного конкурирующего приложения часто жалуются на неуклюжий дизайн функции корзины, он может с умом подойти к тестированию корзины и убедиться, что та же проблема не возникает в приложении, которое он тестирует.

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

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

Инструменты автоматизации тестирования. Хотя исследовательское тестирование – это в основном ручной процесс, можно автоматизировать повторяющиеся или отнимающие много времени задачи. Так мы освободим тестировщиков для более экспериментальной работы. Например, автоматизированные регрессионные тесты могут выполняться в фоновом режиме, пока тестировщики сосредоточены на исследовательском тестировании. К популярным инструментам автоматизации тестирования относятся, например, Selenium и Appium.

Инструменты отладки. Эти инструменты могут помочь тестировщикам быстрее и эффективнее выявлять и изолировать дефекты во время исследовательского тестирования.

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

Перевод статьи «Exploratory Testing: A Detailed Guide».

1 комментарий к “Исследовательское тестирование”

  1. Пингбэк: Большой учебник по тестированию

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *