Разделы портала

Онлайн-тренинги

.
Эвристики и оракулы
24.10.2016 10:48

Автор: Катрина Клоки (Katrina Clokie)

Оригинал статьи: http://katrinatester.blogspot.ru/2014/09/heuristics-and-oracles.html

Перевод: Ольга Алифанова

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

Что же такое эвристики и оракулы, и почему вам нужно уметь в них разбираться?

Эвристики

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

Что же мне делать?

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

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

Эвристики – это основанные на опыте техники решения проблем и обучения (см. ссылку).

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

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

Понимание, как мыслят другие тестировщики, помогает мне варьировать мой собственный подход к тестированию. Вместо того, чтобы искать одни и те же баги, я расширяю горизонты своего мышления. Это похоже на поговорку "Одна голова хорошо, а две лучше". Джеймс Линдси визуализирует эту разницу в своей статье "Вот почему различия так важны".

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

Оракулы

Предположим, я обедаю с приятелем. Я вошла в ресторан в 12 часов дня четверга. Спустя час, пообедав, я покинула ресторан – в час дня пятницы. С моей точки зрения, прошел всего лишь час, но мир вокруг меня сдвинулся на целые сутки.

Как я узнаю о существовании такой проблемы?

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

Если я внезапно упустила целые сутки жизни, я могу узнать об этом при помощи множества способов. Это мои оракулы путешествий во времени. Аналогично я могу определить, что я нашла баг в ПО, при помощи множества способов – и это мои оракулы тестирования.

Оракулы – это принципы или механизмы, благодаря которым мы распознаем проблему (см. ссылку).

Оракулы тестирования, которые я сознательно использую, описаны Майклом Болтоном в статье "Тестируй без карты". Эта статья описывает мнемонику HICCUPS (история, имидж, сравнимые продукты, заявления, ожидания пользователей, продукт, цель, законы). Этот список уже расширен, и Майкл пишет о расширенной версии в своей статье FEW HICCUPS.

Когда я нахожу баг, я всегда размышляю, почему именно я решила, что нашла баг. Уж очень мне не хочется обосновывать баг в духе "я чувствую, что это баг" или "это баг, потому что я так сказала!" Оракулы помогают определить истинную причину ощущения, что где-то тут кроется проблема.

Знание оракулов означает, что я могу внятно объяснить разработчикам и бизнесу, почему пользователи приложения согласятся с тем, что эта конкретная ситуация – баг. Следовательно, я куда более эффективно отстаиваю свои баги, и в результате они куда чаще исправляются.

Если я не могу ассоциировать проблему с оракулом, это заставляет меня задуматься. Действительно ли я нашла проблему? Оракулы, как лакмусовая бумажка, позволяют мне заводить меньше "не-багов".

Обсудить в форуме