вторник, 20 января 2015 г.

Как искать баги — исследовательские туры Уиттакера

На моем курсе уже на второй день перед студентами стоит задача “Найти в системе 4 бага и оформить в баг-трекере”. Времени мало, работы много. Возникает разумный вопрос: “А как их искать, эти баги??”

Мне понятен этот вопрос. На первой работе я тестировала игры на мобильных телефонах. Про классы эквивалентности и граничные значения знать не знала, ведать не ведала. Мой начальник показывал мне, как играть в игрушку, и давал наставления: “Прочитай текст в инструкции, обязательно дойди до конца игры и посмотри на текст поздравления (о, как часто там находились баги на маленьких экранчиках Siemens, куда слово “Congratulations” просто не влезало!).

hG2ldh4x5Is.jpg
Тестирование игр на мобильных телефонах, у каждого 
тестировщика на столе по несколько мобилок

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

Со временем накопился опыт. Я находила проблемные зоны сама и видела, что находят другие. Я понимала, где копать. Но этот опыт нельзя было применить на других проектах.

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

А потом я стала тестировать систему, которую мы поддерживали несколько лет. Я изучила ее вдоль и поперек и… перестала видеть баги. Я внимательно проходила знакомый до боли сценарий и не видела проблем. А потом открывала bash.org и быстро сворачивала, когда мимо шагал начальник. В этот момент я тупо смотрела туда, куда внимательно вглядывалась 5 минут назад. И находила ошибку! Ошибку, которую не заметила за час тестирования! Это называется “замыленный взгляд” — проблема, которая мешает неначинающим тестировщикам находить баги.

Как сделать поиск багов систематическим? Джеймс Виттакер (James A. Whittaker) в книге “Exploratory Software testing” нашел выход и для новичков, и для экспертов.

Методика туров


Приложение — незнакомый город.
Тестировщик — турист.

JP-Images_Articles__3634_SummerVacation-e1402433379335-700x394.jpg
Исследуйте ПО так, словно это — незнакомый город

У туриста мало времени, поэтому он выполняет конкретную задачу, ни на что другое не отвлекаясь. Он бегает по казино, или осматривает достопримечательности, или посещает деловой семинар. Что угодно, но что-то одно.

Как пользоваться методикой


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

В каждом туре есть описание автора (низкий поклон Джеймсу за разрешение перевода и публикации) в вольном переводе + собственные примеры. Для примеров взят сайт Дадаты — https://dadata.ru.

Отправляемся в путь!

компас 3.jpg
Компас — символ книги “Exploratory Software testing”.

Туры по деловому центру, Tours of the Business District


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

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

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







Туры по историческим районам, Tours Through the Historical District


Исторические районы — части города, содержащие старые здания и достопримечательности. В Бостоне они разбросаны по всему городу и соединены только пешеходными тропами. В Кёльне есть "старый город" — одна часть города, которая не тронута современной экспансией.

В ПО исторические районы могут быть также слабо соединены, как в Бостоне или сосредоточены в одном месте, как в Кёльне. Исторические районы в ПО представляют собой:
  • унаследованный код (legacy code);
  • функции, созданные в предыдущих версиях;
  • исправления багов.

Последние особенно важны, потому что баги существа социальные и любят скапливаться в одном месте. Бажные секции в коде надо тестировать особенно тщательно.

Туры по историческим районам проверяют старую функциональность и исправления ошибок.

Тур по плохому району, The Bad-Neighborhood Tour




Туры по развлекательным районам, Tours Through the Entertainment District


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

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

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




Туры по туристическим районам, Tours Through the Tourist District


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

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

Тур коллекционера. The Collector`s Tour





Туры по отельным районам, Tours Through the Hotel District


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

Тур, отмененный из-за дождя. The Rained-Out Tour

Тур домоседа, The Couch Potato Tour



Туры по захудалым районам, Tours Through the Seedy District


Это непривлекательные места, о которых расскажет редкий путеводитель. Они полны мошенников и сомнительных личностей, и лучше обходить их стороной. Тем не менее, они привлекают определенный класс туристов.

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


Тур саботажника. The Saboteur Tour



Большое спасибо Джеймсу Виттакеру (James Whittaker aka @docjamesw) за разрешение на перевод и публикацию туров. 


Здесь описана только одна глава из его книги Exploratory Software testing, рекомендую прочитать всю.

Большое спасибо Павлу Абдюшеву aka @ChipQA  за помощь в переводе и редактуру текста.

Статья написана в помощь моим студентам, но будет полезна всем тестировщикам!
Следите за обновлениями ссылок в посте Wink ;)

См также:
Исследовательское тестирование и исследовательские туры Виттакера — про исследовательское тестирование от Натальи Савастюк

Исследовательское тестирование: ошибки и заблуждения — заблуждения заказчиков и тестировщиков

6 комментариев:

  1. Вот мне интересно, после Вашей статьи книгу еще стоит читать?)

    ОтветитьУдалить
    Ответы
    1. Разумеется!
      Во-первых, я описываю своими словами, хотя туры и будут знакомы. Во-вторых, я перевожу только одну главу из книги, остальное только в оригинале =)

      Удалить
  2. " Саботажник, The Saboteur (тут будет ссылка)
    Тур несоциального человека, The Antisocial Tour (и тут будет ссылка, у всех туров будут ссылки)"

    А можно ссылки в студию?

    ОтветитьУдалить
  3. Обсессивно-компульсивный тур или тур невротика (The Obsessive-Compulsive Tour)

    Еще пропущен! Ольга, спасибо огромное за перевод!

    ОтветитьУдалить
    Ответы
    1. О, да, точно, спасибо!
      В черновиках у меня он есть, как только переведу, так сразу со ссылочкой и добавлю) Как раз хочу вернуться к переводам :)

      Удалить