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

0
251
views
Photo by Annie Spratt on Unsplash

В сфере IT я уже более десяти лет, пять из которых работаю инженером по обеспечению качества в компании DataArt, — пишет Оксана Шатабилова, Senior QA Engineer в DataArt, в своей статье на DOU.UA. — Училась на факультете кибернетики, но психология интересовала меня еще со студенческих лет. Думаю, вполне естественно, что, приобретя профессиональный опыт как 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 в ущерб наиболее вероятным, даже если сроки горят. Как раз в результате этого искажения.

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

Photo by Mimi Thian on Unsplash

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

Фрейминг (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. Будьте осведомлены о вашем эмоциональном состоянии и том, как оно может повлиять на тестирование.

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here