Эвристики для сбора грибов (и тестирования) |
29.03.2018 11:29 |
Перевод: Анна Радионова Сбор грибов - неотъемлемая часть каждой осени в моей жизни. По крайней мере, здесь, в Эстонии, наши корни охотников-собирателей все еще очень прочны. Брести по лесу с корзиной и ножом в руках, наслаждаясь умиротворенностью и спокойствием сосен, один из самых приятных моментов в преддверии мрачной зимы. Я считаю сбор грибов медиативным процессом, когда часть моего сознания концентрируется на грибах, в то время как другая часть занята размышлением обо всем, что приходит в голову. На этот раз я поймала себя на том, что размышляю о сходстве процессов сбора грибов и тестирования. И да, такие сходства я нашла. Причина, по которой я захотела написать об этом статью, заключается в том, что эвристики и оракулы - понятия, которые сложно усвоить как начинающим тестировщикам, так и людям, просто интересующимся тестированием. Я провела несколько семинаров и тренингов на эту тему. Поэтому, по меньшей мере, те, кто знаком с процессом сбора грибов или другими пищедобывательными процессами, сравнивая собирательство грибов и охоту за багами, найдут в этих процессах много общего. Ну что ж, начнем… Выбор места vs тестовое покрытие продукта Как правило, я иду в один из нескольких лесов, которые я знаю как свои пять пальцев и совершенно точно знаю, какие грибы найду там. Т.к. моя цель - собрать достаточное количество грибов, то походы в одни и те же места снова и снова вполне удовлетворяют мои потребности. Однако, если бы мне нужно было собрать какой-то другой вид грибов, мне нужно было бы, в какой-то степени, рискнуть: подыскать другой лес, расспросить людей (хотя секретные места не разглашаются так просто, если вообще разглашаются), произвести еще больше исследований и, возможно, мои поиски не увенчались бы успехом и я бы не собрала вообще никаких грибов. В тестировании проверка одних и тех же областей продукта снова и снова означала бы, что ваше тестовое покрытие продукта ограничено. Вы вряд ли найдете что-то новое в этих областях, если только ваш продукт не является крайне нестабильным. Но если вы много времени тратите на ограниченные участки продукта, вы действительно хорошо их знаете, что позволяет проводить вам более углубленное тестирование. Всегда существует дилемма, как именно распределить время, но мы можем определить, на чем нужно сфокусироваться в зависимости от цели: нужно ли выявить новые сведения (грибы) и протестировать прежде не покрытые тестами части продукта или нет? Подготовка Планируя отправиться за грибами, я обычно слежу за прогнозом погоды и новостями, публикующимися на различных ресурсах, чтобы узнать, грибной ли в настоящее время сезон. Если пойти собирать грибы поздней осенью, когда в лесу все больше и больше пожелтевшей листвы, то есть риск большого количества “ложных результатов” (вы думаете, что нашли гриб, но … это всего лишь лист). В тестировании я также стараюсь быть в курсе всех последних изменений, которые внесены в продукт, и прислушиваться ко всем новостям и мнениям с ним связанным. Это необходимые данные, которые я могу использовать для идентификации, что именно нужно протестировать до того как приступить к тестированию. Я убеждаюсь, что взяла свои резиновые сапоги, подходящий нож и ведро или корзину. Корзина должна быть не очень маленькой (каждая смена одной корзины на другую сопровождается походом к машине и отнимает много времени) или слишком большой (она становится слишком тяжелой, когда наполняется). Некоторые люди также берут небольшую щетку, чтобы очистить грибы тут же (я никогда не трачу на это время в лесу и, скорее, сделаю это после). Аналогично, я подумаю об инструментах, которые мне понадобятся для решения проблем тестирования. Нужен ли мне какой-либо или мне нужна помощь для освоения одного из них? Знакома ли я с наиболее подходящими решениями или нужно провести исследование? Знание оракулов Одним из важнейших принципов, которым меня обучали при сборе грибов - это как отличить ядовитые. Это занятие действительно является делом жизни или смерти: если вы положите в корзину не тот гриб, а потом съедите, то можете погибнуть. И точка. Поэтому знание оракулов для опознавания ядовитых грибов крайне важно. Когда я была ребенком, меня учили: у ядовитого гриба есть кольцо вокруг ножки. Это утверждение соответствует действительности в отношении красного мухомора, который легко узнать по шляпке, и других видов поганок. Таким образом, в принципе, можно считать этот факт хорошей эвристикой для того, чтобы не собирать такие грибы. Однако, у одного из моих любимых грибов, который не является ядовитым и который легко можно засолить или заморозить (после термической обработки для испарения лишней влаги), есть кольцо вокруг ножки. Он называется “колпак кольчатый” (Cortinarius caperatus). Много раз я видела как люди собирают другие виды грибов, а этот гриб оставляют. Хотя, я, собственно, не возражаю… Эвристика “кольцо означает яд” полезна для выживания, но если это единственный используемый оракул, сложно оценить ситуацию со всех сторон. Существует гораздо больше признаков для определения багов (и ядовитых грибов), чем один (цвет шляпки, тип, тип ножки и т.д.). Следовательно, нужно задать себе вопрос, имеется ли какая-то другая информация, способствующая выявлению бага, и что, вероятнее всего, упускается из вида. С другой стороны, придерживаясь только одной определенной эвристики, мы минимизируем риски. Я знаю, что я тоже прохожу мимо большого количества вполне съедобных грибов, но, поскольку у меня не нашлось времени для более тщательного изучения и приходится осваивать новые территории, то я оставляю такие грибы нетронутыми. В тестировании мы должны брать на себя большое количество рисков, задавать вопросы, изучать и прилагать усилия. Это может являться, в той или иной степени, вопросом “жизни и смерти”. Количество и качество Значит, если вы идете по лесу с самым большим ведром, наполненным грибами, вас можно считать наиболее успешным “заклинателем грибов”? Ну, как сказать. Это зависит от качества собранных грибов. Если несезон и грибы подпорчены червями, то вы, скорее всего, не соберете много хороших грибов, поэтому, возможно, вам придется снизить планку в отношении понятия качества. Может быть, вы станете не очень тщательно осматривать грибы, чтобы не замечать червоточины… Может быть, вы будете пытаться внушить себе, что этот гриб не так уж и плох… Но вернувшись домой, вам придется выбросить большую часть грибов, когда вы сможете более детально оценить их качество. Также, если вы собрали большое количество грибов, много времени отнимает чистка, нарезка и приготовление. Разные грибы готовят по-разному (некоторые нужно варить, некоторые нужно замачивать перед варкой и т.д.). Аналогично, тот факт, что вы нашли большое количество багов не делает вас великим “заклинателем багов”. Некоторые из них не являются багами. Некоторые не представляют серьезной опасности. Некоторые недостаточно хорошо описаны. И возможна ситуация, когда вы, выявив слишком много багов и предоставляя их на рассмотрение команде один за другим, приостанавливаете прогресс команды. Собирая грибы, вы должны оценивать состояние шляпки (по ней можно определить старые грибы), ножку на предмет наличия червоточин (иногда подпорчена только нижняя часть ножки, но нужно сделать надрез, чтобы убедиться, что оставшаяся часть не повреждена; иногда нужно разрезать шляпку). А иногда нужно пройти мимо такого гриба. При тестировании вы тоже должны непрерывно оценивать - что именно вами найдено, копнуть глубже, не воспринимать все буквально, фильтровать поступающую информацию и возвращаться снова к тому, что представляет ценность. Что делать, когда вы обнаружите один Эвристика для ситуации, когда вы нашли гриб, заключается в принципе “искать похожие” поблизости. Хороший пример такого гриба - лисичка. Вы должны знать, что они часто прячутся под слоем мха, поэтому нужно тщательно рассматривать и окапывать его. Но бывает так, что вы не можете найти другие, т.к. стоите на них. Или же поставили на них свое ведро, наклоняясь за тем, который привлек ваше внимание. Тогда я применяю эвристику “посмотреть через плечо”, покидая место находки. Угол падения солнечных лучей меняет видимость предметов и нужно рассмотреть местность под другим углом. Если вы еще только начинающий сборщик грибов, запомните место, где вы нашли гриб. Осмотрите близлежащую местность. Какая растительность здесь встречается? Высокая ли она, преимущественно встречается мох или трава? Находится ли эта местность на возвышенности или в низине? Встречается ли здесь какой-то определенный вид деревьев? Так вырабатывается “нюх на грибы” - запоминание отличительных признаков и их комбинаций, которое поможет вам ориентироваться в будущем даже в незнакомом лесу. В тестировании мы обращаем внимание на схожие элементы. Где вероятнее всего возникновение багов? Какие характеристики имеют такие участки продукта? Какие ошибки могут группироваться? Со временем так вырабатывается “нюх на баги”. Но только если вы обращаете внимание на детали и развиваете свои наблюдательные способности. *** И наконец, я замечаю, что для меня представляет сложность объяснение того, как именно я нахожу грибы (и как я нахожу баги). У меня накопилось какое-то количество неявных знаний, но они эффективны только в том случае, когда я проявляю наблюдательность. Также бывает сложно объяснить, почему два человека идут в один и тот же лес и возвращаются с разным количеством грибов. Это просто удача? Или же навыки, которые развивались на протяжении долгого времени? |