Исследовательское тестирование: ошибки и заблуждения |
10.03.2017 12:16 |
Оригинальная публикация: http://quality-lab.ru/misconceptions-of-exploratory-testing/ Исследовательское тестирование — термин, применяемый в противопоставление сценарному подходу к тестированию. Думаю, нет нужды говорить, насколько потрясающих результатов можно достичь, совмещая оба этих подхода, но чаще всего у нас просто не хватает времени на развернутый анализ и полноценное проектирование тестов. Именно поэтому наиболее удачным решением может оказаться выбор исследовательского тестирования в моно-варианте. Поскольку сам термин «исследование» подразумевает индивидуальную заинтересованность и вовлеченность в процесс, мы все сразу же задумываемся о подводных камнях данного подхода. Конечно, говоря о тестировании, нельзя не упомянуть распространенные ошибки самих тестировщиков. Есть такой психологический момент: если не обозначены рамки, то начинает казаться, что можно делать всё, что угодно. И этот процесс будет называться тестированием. Многие начинающие тестировщики совершенно необоснованно думают, что «исследовательское» тестирование позволяет не соблюдать основные принципы тестирования. Заказчики и их заблужденияИсследовательское тестирование не контролируемо и не управляемо
На самом деле это сомнение очень заботит многих людей, которым предстоит принимать важные решения по продукту на основании результатов тестирования. Спешу успокоить — на этот случай есть несколько эффективных алгоритмов:
Исследовательское тестирование — не для новичковИтак, менеджер доволен, пора задуматься над тем, кто именно будет заниматься тестированием нашего продукта. Конечно, заинтересованные лица будут настаивать на выборе опытных членов команды, которые уже имели дело с подобным продуктом и способны сделать квалифицированные предположения об ошибках. Такая позиция говорит о восприятии исследовательского тестирования как процесса, в котором нет места начинающим специалистам. В ряде случаев это может быть действительно так. Однако, если участников тестирования больше одного, с таким подходом можно и поспорить. В качестве примера расскажу случай из практики. К нам поступила срочная и неожиданная заявка на тестирование нового проекта — это была CMS (админка) для одного приложения. В качестве ресурсов у нас был один опытный тестировщик и один стажер. Мы решили сделать план админки и детализировать его с учетом предположений опытного тестировщика. Затем приступили к работе. Опытный тестировщик уже имел представление о том, где могут скрываться неочевидные ошибки. Стажер же занимался изучением функционала с точки зрения обычного неопытного пользователя: его основной задачей было задавать как можно больше вопросов о том, что ему казалось непонятным. После получения ответов на вопросы мы пришли к выводам, что в системе много дефектов, предположить наличие которых опытный тестировщик мог не всегда. Ведь он был уверен, что этот функционал давно отлажен и стабилен. Таким образом, вовлекая в процесс исследовательского тестирования менее опытных членов команды, мы можем взглянуть на продукт другими глазами: не в разрезе проверяемого функционала, а опираясь на возможности разных членов команды. К тому же сфера тестирования располагает различными подходами к исследовательскому тестированию:
Поэтому прелесть исследовательского тестирования заключается именно в его гибкости и возможности выстроить процесс таким образом, чтобы удовлетворялись нужды как проекта в целом, так и всех его участников. Исследовательское тестирование не подходит для регрессионных проверок
Такое предположение не лишено оснований. Но для небольших проектов с более-менее очевидной функциональностью вполне можно заменить привычный набор тестовых сценариев небольшим чек-листом с основными частями функционала. Как раз в этом случае важна квалификация тестировщиков и их знание проекта. У себя на проекте мы делаем так: составляем чек-лист и проводим регрессионное тестирование с опорой на него. Каждая строка чек-листа содержит ссылку на задачу по разработке функции в таск-трекере, чтобы можно было уточнить требуемое поведение в случае, если возникло ощущение, что что-то упущено. Это уже не исследовательское тестирование в чистом виде, но принципы подхода сохраняются и дополняются небольшими подсказками, помогающими двигаться в нужном направлении. Тестировщики и их заблужденияИсследование продукта с целью дальнейшего написания тестов — это и есть исследовательское тестирование
По сути, готовясь к написанию тестов, мы действительно проводим исследование: выполняем анализ имеющейся документации, продумываем стратегию, расставляем приоритеты — то есть, определяем, ЧТО и КАК будем тестировать. Если говорить об исследовательском тестировании, то конечной целью этого процесса является ответ на вопрос: «Насколько наш продукт соответствует этим ожиданиям?» Да, мы тоже проектируем тесты на ходу, но это лишь часть глобального процесса. Разные цели — разный результат, так что не совсем уместно называть исследовательским тестированием только подготовку к написанию тестов. Исследовательское тестирование базируется на идее беспорядочного выполнения различных действий
Для исследовательского тестирования не нужна предварительная подготовка
Необязательно своевременно актуализировать статус проверок
Однако, очень важно иметь возможность получать актуальную информацию о стадии тестирования и его результатах в режиме реального времени, чтобы учесть возможные проблемы и вовремя скорректировать стратегию тестирования. А напоследок я скажу…Несмотря на различные проблемы, с которыми можно столкнуться, выбрав в качестве подхода к тестированию исследовательский метод, мы всегда имеем возможность получить в итоге все необходимые результаты тестирования. Для этого нужно чётко знать цели проекта и иметь поддержку в виде тесного сотрудничества с заинтересованными лицами. Главным же инструментом любого тестировщика является не какая-то конкретная методика, а критическое мышление, умение анализировать и синтезировать данные, применять накопленный опыт и подводить итоги. |