В данной статье мы поговорим о Ad-hoc тестировании (также – интуитивное или свободное тестирование). Как подсказывает название, это неформальный и неструктурированный способ тестирования приложения. Основная цель Ad-hoc тестирования — выявить дефекты, которые не удалось обнаружить при использовании стандартного процесса тестирования.
Содержание
- Что такое Ad-hoc тестирование?
- Особенности Ad-hoc тестирования
- Пример Ad-hoc тестирования
- Виды Ad-hoc тестирования
- Преимущества Ad-hoc тестирования
- Недостатки Ad-hoc тестирования
- Лучшие практики Ad-hoc тестирования
- Ad-hoc тестирование vs исследовательское тестирование
- Заключение
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Что такое Ad-hoc тестирование?
Ad-hoc тестирование — это вид тестирования, который проводится без предварительного планирования и документации. Оно не имеет структуры, не требует подготовки и выполняется в неформальной манере.
Такое тестирование проводится после завершения формальных процессов тестирования. Его цель — «сломать» систему и найти дефекты, которые могут не быть обнаружены при стандартном подходе.
Особенности Ad-hoc тестирования
- Непланируемое и неструктурированное. Тестирование проводится без заранее подготовленного плана, сценариев или формальных тест-кейсов. Тестировщик свободен в выборе методов и подходов, что позволяет исследовать систему нестандартным способом.
- Без документации. Тестирование не требует предварительной подготовки документации и написания формальных тест-кейсов. Вместо этого тестировщик использует своё понимание системы, опыт и интуицию.
- Проводится после выполнения формальных тест-кейсов. Ad-hoc тестирование обычно дополняет стандартные методы тестирования, такие как функциональное или регрессионное тестирование.
Пример Ad-hoc тестирования
Теперь, когда мы поняли, что Ad-hoc тестирование — это неструктурированный и неметодичный подход, давайте рассмотрим простой пример.
Представьте, что вы тестируете приложение для электронной коммерции. У вас есть тщательно составленные тест-кейсы, которые проверяют выполнение различных требований.
Если вы решите провести Ad-hoc тестирование, то будете пытаться сломать систему или найти аномалии, используя нестандартные методы. Например, вместо того чтобы следовать стандартным шагам «добавить в корзину -> оформить заказ -> оплатить», вы копируете URL старой страницы оформления заказа и пробуете перейти с его помощью. Или выполняете другие нестандартные действия. Таким образом, вы можете обнаружить потенциальные проблемы, например, связанные с безопасностью.
Виды Ad-hoc тестирования
- Monkey testing (обезьянье тестирование)
Тестирование, выполняемое с намерением сломать систему. Тестировщик вводит случайные данные и выполняет случайные действия. - Buddy testing (тестирование с напарником)
В этом виде тестирования разработчик и тестировщик работают вместе. Знания разработчика об архитектуре системы и аналитическое мышление тестировщика повышают качество тестирования. - Pair testing (парное тестирование)
Два тестировщика работают совместно для достижения более широкого и глубокого покрытия тестирования. Один тестировщик проводит тестирование, а другой анализирует процесс.
Примечание редакции: вас также может заинтересовать статья “Полное руководство по ad-hoc тестированию”
Преимущества Ad-hoc тестирования
- Позволяет находить скрытые дефекты, которые могли быть пропущены при традиционном подходе. Интуитивный подход и нестандартные сценарии, например, ввод неожиданных данных или использование устаревших URL, могут выявить дефекты, о которых даже не подозревали.
- Использование техник, таких как buddy и pair testing, расширяет покрытие тестов за счёт разных точек зрения.
- Не требует времени на планирование и создание документации, что ускоряет выполнение тестирования. Хотя отсутствие документации ускоряет процесс, найденные баги всё же стоит фиксировать. Это поможет в дальнейшем анализе дефектов и воспроизведении найденных ошибок.
Недостатки Ad-hoc тестирования
- Трудности с воспроизведением ошибок. Отсутствие фиксированной структуры или документации приводит к тому, что шаги, приведшие к обнаружению бага, остаются неизвестными или забываются.
- Отсутствие отслеживания требований. Нет документации, матрицы прослеживаемости или данных о покрытии тестов. Это создаёт трудности в оценке качества покрытия требований.
- Зависимость от навыков тестировщика. Эффективность тестирования зависит от опыта и знаний системы, так как Ad-hoc тестирование предполагает интуитивное выявление ошибок. Понимание системы, логики её работы и частых дефектов требует времени, что делает Ad-hoc тестирование менее эффективным для новичков.
Лучшие практики Ad-hoc тестирования
Ниже перечислены некоторые из лучших практик, которые следует использовать для Ad-hoc тестирования
- Развивайте экспертизу. Желательно, чтобы процесс проверял кто-то с опытом. Такой человек будет лучше предугадывать наличие багов и их местонахождение.
- Изучите бизнес-логику. Хорошее понимание требований и бизнес-процессов помогает успешному выполнению тестирования.
- Выявляйте проблемные зоны. Некоторые функции или части системы используются чаще других. Именно в этих местах чаще всего встречаются баги, поэтому важно знать их заранее.
Ad-hoc тестирование vs исследовательское тестирование
Часто термины Ad-hoc и исследовательское (Exploratory) тестирование путают. Однако между ними есть различия:
Ad-hoc тестирование | Исследовательское тестирование |
---|---|
Перед началом требуется изучить ПО и подготовиться. | Изучение и исследование системы проходят одновременно. |
Тестировщик должен иметь полное представление о программном обеспечении до начала работы. | Нет необходимости в предварительном понимании программного обеспечения. |
У процесса нет цели или задачи, все делается случайно, без какой-либо структуры. | Можно установить цели и задачи, но при этом дать тестировщику свободу действий. |
Документация отсутствует, шаги не документируются. | Можно документировать или записывать выполненные действия. Таким образом, выявленные ошибки могут быть легко воспроизведены. |
Заключение
Ad-hoc тестирование, наряду с плановым, является важной частью процесса тестирования ПО. Несмотря на отсутствие структуры, оно помогает находить баги, которые могут быть упущены при формальном подходе. Всё зависит от того, как тестировщики выполняют этот процесс и какую пользу могут из него извлечь.
Перевод статьи «Adhoc Testing».