Итак, в этой статье мы рассмотрим вопрос интуитивного (ad-hoc) тестирования. Что это такое, какие есть виды интуитивного тестирования, каковы его преимущества и недостатки, а также кто и когда может его использовать.
Ad-hoc testing — это особый вид тестирования, не предполагающий никакой подготовки или планирования, здесь нет тестовых сценариев, как и какого-либо ожидания от результата. Короче говоря, интуитивное тестирование предполагает импровизацию тестировщика. Нет нужды разрабатывать и придерживаться какого-либо плана, или вести документацию, нет никаких тест-кейсов (правда, от этого могут возникнуть трудности с тем, чтобы воспроизвести ошибку – никаких планов и документов то нет). Но при этом не стоит думать, что такое тестирование не будет эффективным. Часто оно дает даже лучший результат, чем работа по плану и сценарию.
Кто и когда выполняет интуитивное тестирование?
Часто бывают ситуации, когда на продуманное и спланированное тестирование уже нет достаточно времени, например, процесс разработки затянулся, или в процессе разработки были выдвинуты новые требования к продукту. В таком случае сроки поджимают, продукт нужно выводить на рынок уже вчера, а совсем без тестирования выпускать ПО никак нельзя, там будет полно багов. Здесь и приходит на помощь интуитивное тестирование. Тестировщик, который проводит такое тестирование, должен в общих чертах понимать, как работает продукт и «прогнать» его основные функции при разных условиях, а также опробовать реакции программы на действия пользователя в рамках здравого смысла.
Именно поэтому тестировать по принципу ad-hoc может только тот человек, который понимает, что из себя представляет продукт. Основная проблема – время. Его нет ни для изучения продукта, ни для составления плана, ни для документирования процесса тестирования. Все нужно сделать быстро (при этом в максимально полной мере).
Виды интуитивного тестирования
А теперь давайте рассмотрим какие есть разновидности ad-hoc тестирования. Вот они:
- Buddy Testing. Его смысл заключается в том, что есть два (или больше) «компаньона» (buddies), которые пытаются найти баги в том же функционале в одно и то же время в рамках одного модуля, или системы. Такими компаньонами могут быть, например, программист и тестер.
- Monkey Testing. Тестирование «обезьяны» чаще всего применяется во время проверки различных модулей. Его суть – случайное (без какого-либо порядка) тестирование программы, или ее отдельного модуля без всяких кейсов, то есть это полностью рандомный процесс. Это помогает выявить общую стойкость к любым сбоям.
- Парное тестирование во многом похоже на Buddy Testing, но в этом случае программист не будет выступать в роли тестера, при парном тестировании работают два тестировщика. Также парное тестирование предполагает работу только с одним модулем, в отличие от Buddy-тестирования. Тестировщики могут разделить между собой роли, скажем, кто-то только прогоняет тесты, а другой – документирует результаты.
Преимущества и недостатки ad-hoc testing
Чтобы понять, насколько хорошо, или плохо работает такая схема, давайте рассмотрим следующую таблицу:
Преимущества
- Все работает максимально быстро, нет надобности выполнять подготовку.
- Основные и самые критичные баги находятся сразу же.
- Новый тестер с таким подходом сможет легко и быстро освоить основные моменты, гораздо быстрее, чем в случае тест-кейсов.
- Можно случайно найти даже сложно-воспроизводимые баги, которые в других случаях остались бы незамеченными.
Недостатки
- Нет системного подхода, а значит вероятность обнаружения багов ниже, чем при спланированном подходе.
- Очень сложно воспроизвести условия возникновения бага.
- Обязательно нужны общие знания о продукте, без них такое тестирование невозможно.
- Сложно планировать ресурсы для тестирования, ведь непонятно, сколько времени и людей нужно, чтобы провести тесты.
Как повысить эффективность Ad-hoc тестирования
А вот несколько простых советов, которые помогут вам существенно повысить общую эффективность процесса ad-hoc тестирования:
- Подготовка. Проанализируйте дефекты в схожих приложениях. Это увеличит вероятность обнаружения подобных дефектов в тестируемом приложении.
- Формирование черновика. Это не должен быть подробный план тестирования, а наброски, с чего начать и какие проблемы искать.
- Тестирование сессиями. Тестируйте разный функционал продукта поочередно, то есть не все сразу. Это помогает лучше сфокусироваться и осознать трудности.
- Уделите внимание целевым областям. В первую очередь проверьте те области, которые не покрыты тест-дизайном и тестовой документацией.
- Используйте различные вспомогательные программы. Некоторые дефекты можно обнаружить, используя дебаггеры, профайлеры и мониторинги. Знание таких утилит помогает в тестировании.
- Записывайте результаты тестирования. Ведите записи того, какие баги были найдены, в каких частях приложения их больше и т.п. Это может помочь как разработчикам, так и тестерам следующих версий программы. Также можно записать то, что не работало, потому что аналитикам может быть полезно увидеть, что работало хорошо.
При правильном и умелом применении, Ad-Hoc тестирование – это отличный инструмент, который поможет вам в случае дефицита времени на более подробное и спланированное тестирование, а также поможет выявить баги в неожиданных местах после того, как базовое тестирование будет завершено. Но для этого у тестера должно быть общее понимание процесса и знание тестируемого продукта.