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

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

t.me/qa_chillout

В одной из статей мы ранее рассуждали про исследовательское тестирование, выделяли преимущества, а также недостатки, рассуждали когда стоит применять, а когда нет. А вот как организовать исследовательское тестирование? Ответить на этот вопрос поможет Джеймс Виттакер, предложивший подход к исследовательскому тестированию с использованием туров в своей книге «Exploratory Software Testing».

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

Начнем с туристической метафоры в тестировании. Предположим, вы впервые посещаете такой большой город, как Лондон. Это большое, оживленное, запутанное место для новых туристов, где есть что посмотреть и чем заняться. Даже самому богатому, не ограниченному во времени туристу, будет трудно увидеть все, что может предложить такой город, как Лондон. Тоже самое можно сказать и о тестировщиках, пытающихся исследовать сложное программное обеспечение. Такие туры требуют определенной стратегии, от которой зависит как время, так и «достопримечательности», которые увидят туристы.

Перед началом тестирования следует декомпозировать требования на атомарные части. Это поможет не только упростить тестирование, но и грамотно распределить ресурсы, выбрать тот или иной маршрут. Ну что, прогуляемся по «городу»?

Деловой район

Отправимся в деловой район. В деловом районе расположены банки, офисные здания, кафе и магазины, которые работают по графику, т.е от начала и до завершения рабочего дня. Для программного обеспечения деловой район также является «местом, где делается бизнес» и начинается с запуска кода и до его завершения, а также содержит функции, ради которых пользователи и используют данное приложение.

Исторический район

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

Туристический район

А теперь переместимся в то место, которое интересно только туристам и пользователям-новичкам. Местные жители стараются избегать эти переполненные улицы. Данный тур как раз и сосредотачивается на тех функциях, «которые старые» пользователи уже не используют. Пристальное внимание уделяем тому функционалу, который доступен только «туристам-новичкам».

Развлекательный район

После прогулок стоит немного развлечься. В программном обеспечении для этого есть дополнительные функции. Например, функционал для разметки страницы, форматирования, изменения фона, изменение темы и многое другое. Другими словами, это все необходимо для наведения «красоты».

Гостиничный район

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

Тур по плохому району

Хотите после отдыха немного приключений? Отправляемся в бандитский район! Это такие неприглядные места, которые задокументируют немногие путеводители. Они полны людей, делающих плохие и незаконные вещи. Сомнительные туры являются обязательными для тестировщиков, потому что они находят уязвимости, которые могут нанести пользователям большой урон.

Тур по путеводителю

Вы купили путеводитель и хотите пройтись по проложенному за вас маршруту? Вперед! В путеводителях вы найдете лучшие отели, лучшие предложения и лучшие достопримечательности. Вам не нужно будет вдаваться в подробности – просто идите в то место, которое указано в справочнике. В тестировании аналогичным артефактом является руководство пользователя. В этом туре мы следуем указаниям руководства пользователя как осторожный турист, не отклоняясь от написанного, всё четко по инструкции. При тестировании важно уделить время основным сценариям и не отходить в сторону. Цель тура: выполнить все инструкции, в противном случае мы «заблудимся».

Денежный тур

Хотите зрелищ? Ищите где бы потратить деньги? В каждом месте стараются удивить туриста, чтобы именно в этом месте он оставил деньги. В Лас-Вегасе это казино и стрип-клубы, в Амстердаме – улица красных фонарей, в Египте — пирамиды. Уберите эти достопримечательности, и туристы уйдут тратить деньги в другие места.

В программном обеспечение все ровным счетом также: должна быть какая-то причина, по которой пользователи покупают его. Денежный тур != туру оплаты. Вы должны определить функции, которые привлекают пользователей. В денежном туре выполняется проверка на соответствие информации в рекламных материалах и в приложении: тестирование той функциональности, которая продает приложение, функционал, который используют менеджеры по продажам на демонстрациях продукта. Цель тура – контроль качества этого функционала и информирование маркетологов о всевозможных проблемах, которые могут повлиять на рекламу и продажи.

Интеллектуальный тур

Любите всегда задавать вопросы? Тогда это тур для вас! Данный тур заключается в том, чтобы задавать программному обеспечению сложные вопросы. Какие функции нагружают  приложение до предела? Какие входные значения и данные вызовут максимальную нагрузку? Какие значения могут ввести в заблуждение проверки на ошибочные данные? Какие внешние и внутренние данные приводят к специфичным результатам? Очевидно, что такие вопросы будут широко варьироваться в зависимости от тестируемого приложения.

Например: если это онлайн-магазин – попробуйте совершить максимально большой заказ, если это форма – попробуйте ошибиться в каждом поле и так далее, если это передача файла, то попробуйте передать максимально большой файл.

Тур сборщика мусора

Люди, которые убирают мусор на лицах, знают окрестности лучше, чем жители или полиция, потому что они идут улица за улицей, дом за домом и знакомятся с каждой выбоиной на дороге.

В данном туре мы выбираем цель (меню, ошибки, диалоговые окна и т.д) и посещаем каждый экран наиболее коротким путем.

Экскурсия по музею

Прикоснемся к древностям. Музейные древности в нашем туре – легаси код. Его можно идентифицировать по дате коммита. Такой код, использованный в новом окружении, склонен к некорректной работе. Исследовать этот код сложно: программист может быть уже не в компании, а документация может быть недостоверной. Тестировщик должен выявить такой код и обратить внимание на его работу.

Тур актеров второго плана

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

Экскурсия по глухому переулку

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

FedEx тур

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

Например: пользователь установил скидку на товар, покупатель оплатил его по скидочной цене, а продавцу пришел чек на оплату, в котором указана скидочная стоимость.

Клубный тур

Любите всю ночь отдыхать после трудовой недели? Добро пожаловать в клуб! Это экскурсия на всю ночь. Как долго приложение может работать и обрабатывать данные перед тем, как аварийно завершится? Это нагрузочное тестирование приложения. Накопление данных в памяти, запись, перезапись, многократное чтение переменных – это может привести к сбоям приложения: утечки памяти, нарушение данных и многое другое. Главное условие – никогда не закрывайте приложение. Открывайте файлы, не закрывайте их, не сохраняйте их.

Тур коллекционера

Коллекционируйте выходные данные, и чем больше, тем лучше. Идея в том, чтобы пройти туда, куда вы только можете и покрыть тестами все то, что вы увидите. Идея этого тура состоит в том, чтобы покрыть тестами все выходные данные.

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

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

Тур одинокого бизнесмена

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

Например: чтобы попасть в профиль продавца на каком-либо маркетплейса, попробуйте отправить push-уведомление со ссылкой на товар, авторизуйтесь в приложении, перейдите на карточку товара, из карточки товара перейдите в чат, а из чата в профиль продавца.

Тур по Шотландскому пабу

Этот тур применяется специально для больших и сложных приложений. Продукты Microsoft Office подходят под эту категорию. Так же как и такие сайты, как eBay, Amazon и MSDN. Цель данного тура – найти и протестировать функции, которые сложно найти, если заранее о них не знаешь, подобно тому, как житель мегаполиса пройдет мимо хорошего паба, не зная, что внутри хорошее место.

Тур домоседа

Всегда есть некто в групповом туре, кто скучает и не проявляет никакой активности. И часто происходит так, что гид старается больше обычного, чтобы заинтересовать такую персону. Так и для приложений: если человек не проявляет высокой активности, не значит, что приложение работает также неактивно. Наоборот, зачастую, это нагружает приложение. Приложению приходится выяснять, что делать, если пользователь оставляет поля пустыми. В моменты, когда пользователь не берет на себя инициативу, выполняется «логика по умолчанию».

Тур диверсанта

Это диверсионный тур, и во время него мы постараемся при любой возможности подорвать работу приложения. Мы, например, попробуем загрузить фотографию, но затем саботируем попытку приложения сделать это, к примеру, испортим файл или запретим разрешение на доступ к памяти.

Этот тур очень прост в осмыслении:

•Заставьте программное обеспечение предпринять некоторые действия.

•Поймите, какие ресурсы требуются для успешного выполнения этого действия.

•Удалите или ограничьте эти ресурсы в той или иной степени.

Тур обсессивно-компульсивного расстройства

Закажите товар в маркетплейсе, а затем закажите его снова, чтобы проверить, применяется ли многократная скидка на покупку. Введите некоторые данные на экране, а затем вернитесь, чтобы ввести их снова. Это действия, для которых разработчики часто не предусматривают случаи ошибок. А они могут нанести значительный ущерб. Разработчики часто думают о том, что пользователь делает вещи в определенном порядке и использует программное обеспечение с определенной целью. Но пользователи совершают ошибки и они часто не понимают, какой конкретный путь имел в виду для них разработчик, и они выбирают свой собственный. Это может привести к тому, что тщательно продуманная разработчиками схема использования быстро отойдет на второй план.

Резюме

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

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

Обсудить статью, узнать больше можно в телеграм канале «Тестировщики нужны».

We express our gratitude to James Whittaker for allowing to share tours idea from the 4th chapter of «Exploratory software testing» with community of @qa_chillout channel.

Report Page