Ловушки мышления в тестировании

Несколько месяцев назад мой коллега Макс прислал мне заинтересовавшую его ссылку со списком когнитивных искажений человека. Читая описания разнообразных ловушек мышления, я понимала, что вижу проявления многих из них как в повседневной жизни, так и на работе. Изучив вопрос, решила поделиться с коллегами: впервые статья вышла на английском языке в журнале компании Logeek Magazine, сейчас же я хочу поделиться с более широкой аудиторией, разместив на DOU.

«You should work to reduce your biases, but to say you have none is a sign that you have many» — Nate Silver

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

Ловушками мышления называют стандартные, шаблонные отклонения в мышлении человека, основывающиеся на деформированных убеждениях.

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

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

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

Как много багов, очевидных другим, мы пропускаем?

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

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

Ловушка подтверждения

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

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

Подход срабатывает: в более рисковой области вы находите серьезные проблемы, а в менее рисковой области проблем, как и ожидалось, нет.

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

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

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

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

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

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

Ложная конъюнкция

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

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

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

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

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

Люди нередко проводят иллюзорные корреляции в различных областях жизни. Вспомним, хотя бы, Билла Гейтса и Марка Цукерберга, бросивших учебу и основавших многомиллиардный бизнес. И мы помним эти случаи, ставим их в пример. Но слышали ли мы истории недоучившихся студентов, не создавших всемирно известные компании? Нет. В потоке информации мы заостряем внимание на экстраординарных случаях, игнорируя остальные.

Самый распространенный пример в тестировании — лишние шаги в багрепорте.

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

Когнитивная иллюзия

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

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

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

Ошибка выжившего

Ошибка выжившего — склонность недооценивать недоступные прямому наблюдению данные по группе «погибших».

Это ловушка, о которой стоит помнить, когда мы не уверены в полноте информации, предоставленной для анализа.

Впервые она была зарегистрирована в США, во время Второй Мировой войны. Решив укрепить самолеты, тем самым уменьшив число потерь, изначально приняли логичное, на первый взгляд, но неправильное решение: у вернувшихся самолетов больше всего пробоин было на крыльях и хвосте, их и решили укреплять. Вмешался статистик Абрахам Вальд, объяснив, что крылья и хвост — сильные места, ведь самолеты, подбитые в эти зоны, вернулись на базу, в отличие от самолетов, получивших пробоины в других местах.

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

В тестировании нередко проявляется, когда тестировщик готовит тестовые данные однобоко, выбрав легкий и явно видимый вариант. Еще одним примером может быть тестирование по принципу «в прошлый раз так делали — и все хорошо». Чтобы избежать этой ловушки, не забудьте поискать альтернативы, спросив себя «а что, если?» и, прежде чем принимать важные решения, подумайте о полноте информации — со всех ли сторон рассмотрен вопрос?

Лжепаттерны

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

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

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

Иллюзия фокусировки

Чем больше человек о чем-то думает, тем более важным ему это кажется. Человек не обращает внимания ни на что, кроме какой-то конкретной области.

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

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

Негатив

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

Может в тестировании проявляться в двух случаях:

  1. Страх изменения (заставляет говорить «нет» на какие-либо изменения). С одной стороны, это хорошо, так как заставляет сторонников нововведения продумывать аргументы и еще раз подумать о необходимости изменения. С другой стороны — плохо, так как может тормозить развитие в целом.
  2. Недоверие разработчикам. С одной стороны, работа тестировщика заключается в «доверяй, но проверяй». В то же время, избыточные проверки требуют времени, которого может не быть.
    Например, многим очень сложно закрыть тестирование задачи, если не было найдено ни одного, пусть даже маленького дефекта.

Большие ожидания

У негатива есть обратная сторона — позитив, оптимизм, большие ожидания.

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

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

Эмоции

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

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

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

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


Существует огромное количество заблуждений и искажений, которые я не упомянула в статье. Зато на www.fallacyfiles.org/taxonomy.html их упомянута целая куча.

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

Полезные ссылки по теме:

Похожие статьи:
17 вересня Верховна Рада підтримала у першому читанні оновлену версію законопроєкту про підвищення податків. Йдеться про законопроєкт...
Представляємо черговий матеріал з циклу статей про зарплати — хто такі та скільки заробляють українські Project Managers. Якщо коротко:...
В выпуске: новые дата-центры Amazon, Serverless архитектура, статистика популярности реляционных БД, а также несколько руководств...
Ви багато про це думали і все ще вагаєтеся, чи йти в автоматизоване тестування? Приходьте на наш QA Automation TechTalk,...
Популярна система питань і відповідей для професійних програмістів та ентузіастів StackOverflow заборонила будь-яке...
Яндекс.Метрика