Фича или баг: как когнитивные искажения мешают в тестировании

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

Есть много книг о психологии программирования и о том, как психологические аспекты влияют на процесс разработки. Тестирование, в свою очередь, обладает собственной спецификой, и мне захотелось разобраться, как мозг влияет на сам процесс тестирования, на задействованные при этом процессы мышления и принятия решений. Книги «Психология компьютерного программирования» Джеральда Вайнберга и «Ловушки мышления» Чипа и Дэна Хизов только укрепили мой интерес. Своё исследование я начала с когнитивных искажений и их итогового влияния на обеспечение качества программного продукта.

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

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

Задумайтесь, доводилось ли вам принимать решения или совершать действия, о которых вы, спустя некоторое время, пожалели? Когда, осознав последствия, никак не могли понять, почему поступили так? Скорее всего, на ваш выбор повлияло когнитивное искажение. Если человек думает, что у него когнитивных искажений не бывает, это зачастую свидетельствует как раз об обратном.

«Вам стоит работать над уменьшением количества своих предрассудков. И если утверждаете, что у вас их мало, то, скорее всего, их, наоборот, много», — говорил Нейт Сильвер.

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

Предвзятость подтверждения

Предвзятость подтверждения (Confirmation bias) — это фильтр, через который мы видим реальность, находя вокруг подтверждение собственных ожиданий. Он заставляет думать избирательно и, что самое страшное, позволяет предубеждениям препятствовать нашему активному стремлению к фактам. Благодаря предвзятости подтверждения люди склонны слышать или видеть только те аргументы, что способны подтвердить вывод, в который они поверили с самого начала.

Устроено это когнитивное искажение достаточно сложно. В его рамках раздельно или совместно действуют сразу три механизма:

1. Предвзятый поиск информации. Люди в принципе склонны в первую очередь замечать факты, подтверждающие приглянувшуюся им гипотезу. Наиболее ярко этот тип предвзятости иллюстрируют известные всем конспирологи. Например, сторонники теории «лунного заговора», уверенные в том, что «Аполлон-11» никуда не летал, а вся операция по высадке на Луну была сфальсифицирована американцами. Ученые, астро- и космонавты неоднократно выражали сомнения по поводу самой возможности отснять подобные кадры на Земле. Действительно, сделать фальсификацию на столь высоком уровне и скрыть факты о ней чуть ли не так же сложно, как организовать саму космическую экспедицию. Но сторонники конспирологической теории отвергают все, что в нее не укладывается, оперируя отдельными, зато, по их мнению, неопровержимыми доказательствами. «Флаг не должен развиваться в вакууме, остальное уже неважно!» Наверняка вам знакомо множество подобных идей разной степени распространения. А в нынешней ситуации их число дополнили и предположения об искусственном происхождении вируса COVID-19. В любом случае мы сами выбираем, чему верить и какие источники читать. И никто не может помешать человеку пользоваться неподтвержденной или даже явно выдуманной информацией и отвергать альтернативную.

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

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

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

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

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

Когнитивный диссонанс

Когнитивный диссонанс (Cognitive dissonance) — это неприятное чувство, вызванное столкновением противоречивых идей в сознании человека.

Пожалуй, впервые этот эффект был описан в басне Эзопа. Голодная лисица находит виноградную лозу. Но та висит слишком высоко, и как лисица ни старается, достать гроздь винограда ей не удается. Тогда она решает, что виноград еще не созрел, и ей он, пожалуй, ни к чему. Лиса успокаивает себя, меняя восприятие ситуации — признать, что ягоды достаточно сладкие и готовы к употреблению, было бы слишком мучительно. Чтобы примирить две конфликтующие идеи («Я хочу этот виноград», «Я не могу достать этот виноград»), лиса отвергает одну из них. Боль, которую она пытается заглушить, психологи и называют когнитивным диссонансом.

Разумеется, Эзоп писал вовсе не о животных, а описывал человеческие реакции. Вспомните свою первую реакцию на вкус алкоголя или запах (не дай бог!) сигареты. Вам действительно понравилось? Вряд ли. Наша врожденная реакция на них — неприятие, и, например, к пиву человек привыкает только после длительного повторения опыта его употребления. Мы видим, как им наслаждаются другие, и примеряем противоречие («Людям нравится пиво», «Пиво — это невкусно»), научившись разделять общее удовольствие.

С тестированием когнитивный диссонанс тесно связан. Представим, что было две юзер стори для тестирования, обе имеют одинаковый приоритет, и вы выбрали стори A вместо B. Подсознательно стори А была вам больше по душе. И тут приходит коллега и говорит, что приоритет стори B намного выше, несмотря на цифры. С этого момента у вас появляется конфликт и разум должен объяснить, почему выбрано стори А, а не B. Возникают следующие суждения:

  1. Я протестировал стори А, так как для меня это было более важным, именно ее я хотел протестировать.
  2. Стори A более тесно связана с проблемами пользователей, поэтому думаю, что у нее приоритет выше, чем у В.

Вы попытаетесь обосновать причину выбора, который вызвал некоторые сомнения.

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

Я считаю, что когнитивный диссонанс действительно вредит тому, что мы тестируем. Наши ожидания от работы тестируемого программного обеспечения противоречат тому, что оно на самом деле делает. И мы корректируем наши ожидания, чтобы оправдать то, что делает программное обеспечение. Тогда существует опасность пропустить важную ошибку.

Например, мы тестируем согласно требованиям и заводим дефект в случае несоответствия этим требованиям, даже если поведение программы в принципе правильное и дефект в самих требованиях. То есть тестировщик занимается так называемым monkey testing — совершенно не анализируя логику поведения программы и бизнес клиента. Чтобы исключить подобные ситуации, надо тщательно и неоднократно перечитывать требования, поскольку написаны они на естественном языке и задача их интерпретации имеет множество решений.

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

Эффект привязки, или ошибка конъюнкции

Эффект привязки — когнитивное искажение, за счет которого события в связке выглядят более правдоподобно, чем по отдельности.

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

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

  • Req1: если юзер — программист, то на экране должно появится «программист»;
  • Req2: если юзер — программист и любит слушать классическую музыку, то на экране должно появится «музыкальный программист».

Спросите себя, какое требование вы бы тестировали дольше, на чем сосредоточили больше внимания? Я уверена, что ответ — Req2, так как людям свойственно отдавать предпочтение более сложным и запутанным ситуациям. Хотя факт того, что Req1 логически более правдоподобен, чем Req2, доказан наукой.

В тестировании часто уделяют повышенное внимание каким-то edge-cases в ущерб наиболее вероятным, даже если сроки горят. Как раз в результате этого искажения.

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

Когнитивные рамки

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

Еще один яркий пример — общение с разработчиком по поводу какого-то дефекта. Не стоит начинать разговор с претензий, например: «Как ты мог не увидеть, тут же черным по белому написано», или, ещё хуже, сказать, что разработанная фича — сплошной баг, и необходимо все переделывать. От того, как вы преподнесете информацию, будет зависеть дальнейшее взаимопонимание и взаимодействие.

Иллюзия корреляции

Иллюзия корреляции — преувеличение тесной связи между переменными, даже если такой связи нет.

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

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

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

Критическое мышление

Прочитав все вышесказанное, вы, наверное, хотели бы узнать, как уменьшить влияние когнитивных искажений. Инструмент есть — это критическое мышление.

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

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

У человека есть две системы мышления:

  • Система 1 — особенно полезна в знакомых ситуациях, когда времени мало и требуется немедленное действие.
  • Система 2 — более рефлексивная система мышления, полезная для вынесения суждений.

Прочитайте суждение ниже и подсчитайте количество букв F:

FINISHED FILES ARE THE RESULT OF YEARS OF SCIENTIFIC STUDY COMBINED WITH THE EXPERIENCE OF YEARS.

Сколько получилось? Две? Три? Вернитесь и пересчитайте ещё раз.

На самом деле в предложении 6 F, и если вы задействовали систему 2, то получится именно такой результат. Эта система имеет прямое отношение к критическому мышлению — говоря техническим языком, мышление ручное, то есть не автоматическое.

Для тестировщика умение мыслить критически чрезвычайно важно. Эту способность следует развивать и применять на практике как можно чаще. Человек мыслит критически в течение полутора часов, затем нужен перерыв. Поэтому в тестировании главный помощник — пауза. Делайте перерывы на кофе или чай не менее 15 минут. При этом во время перерыва не стоит обсуждать рабочие моменты. Говорите о футболе, отдыхе, в конце концов, о политике. Главное — дать мозгу передохнуть от работы.

Эмоциональное состояние

Эмоция — психологический процесс, который влияет на то, что мы делаем. Задумывались ли вы когда-нибудь над такими вопросами:

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

Слушаете ли вы музыку на рабочем месте? Я думаю, что большинство да. А задумывались ли вы над тем, влияет ли музыка на эффективность работы? Ответ на этот вопрос связан с вопросом выше. От того, какую музыку и как люди слушают, зависит их настроение, а от настроения — эффективность. Я люблю тихонько слушать музыку. Так она не отвлекает меня от работы, а наоборот, создает приятный бэкграунд для выполнения заданий. Если я делаю звук громче, мне музыка начинает мешать, рассеивая внимание. Конечно, это дело каждого: кто как любит, кто как привык — главное, чтобы музыка повышала продуктивность, а не наоборот.

Представим, что вы поспорили с разработчиком по поводу какой-то фичи. Есть ли у вас потом желание ее тестировать? Да, может вы разозлитесь и захотите её сломать, а может, наоборот, не захотите лишний раз общаться с оппонентом и подсознательно предпочтете посмотреть на разработанную функциональность сквозь розовые очки? У меня был такой случай в начале карьеры. Ещё когда я была практиканткой, мне доверили тестирование одной из фич. В ходе анализа требований и написания документации я пошла к разработчику, чтобы уточнить несколько нюансов. Как выяснилось, его мнение от моего отличалось, мои возражения он разнес в пух и прах. Я была очень подавлена и не хотела вообще тестировать эту фичу. Команда тестировщиков на проекте была большая, поэтому я попросила коллегу поменяться задачами. Начав тестирование, он обнаружил дефект. А если бы это свойство тестировала я, дефект пошел бы в прод. Вот такая история.

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

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

Заключение

Хотелось бы подытожить все вышесказанное рекомендациями:

  1. Относитесь к собственным убеждениям, предположениям и мнению других людей в вашей команде с осторожностью. Критическое мышление — это ключик к уменьшению влияния предубеждений.
  2. Будьте осведомлены о вашем эмоциональном состоянии и том, как оно может повлиять на тестирование.
Похожие статьи:
У новому випуску обговорюємо тренд на 4-денний робочий тиждень, розбираємося, чому не «злетіла» ініціатива щодо імміграційних квот,...
[Об авторе: Всеволод Дёмкин — Technical Lead в Grammarly, более шести лет проработал преподавателем в КПИ — читал курс «Операционные системы...
Компания BlackBerry продолжает оптимизацию количества занятого персонала, увольняя работников. Последнее сокращение коснулось двух...
IT Education Center объявляет набор на курс «IP-телефония Asterisk», который стартует 10 октября 2016 года. Данный курс включает в себя всё...
Длительность: 3 месяца. Обучающий онлайн курс JUJA CORE предназначен для начинающих изучать Java или людей с неуверенными...
Яндекс.Метрика