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

TL;DR
  • Ценность тестировщика не в «прогоне кейсов», а в мысли перед действием: анализ рисков, формулировка точных вопросов, выбор стратегий.

  • Единого «майндсета» не существует: нужны переключения между режимами — исследовательским, научным, риск-ориентированным, инклюзивным, критическим и др.

  • Работа с допущениями и неоднозначностью — базовый навык; упражнение с «Mary had a little lamb» показывает, как ловить скрытые трактовки.

  • Тестирование — интеллектуальный труд: результатом часто становятся ясность, стратегия и качественный баг-репорт, а не только артефакты.

  • Практика: осознанно анализируйте собственное мышление, комбинируйте разные подходы по контексту — так растет ценность и качество ПО.

Странно получать деньги за то, что задействуешь свой мозг, правда?

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

Тестировщики и разработчики могут так себя не воспринимать, но мы действительно являемся специалистами интеллектуального труда (knowledge/thought workers). Нам платят за силу нашего мышления и способность думать — не меньше, а иногда и больше, чем за набор конкретных навыков.

Что значит специалист интеллектуального труда?

Я дам такое определение:

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

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

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

Или, если кратко: «ценность — в мысли перед действием, а не только в действии».

Размышления о мышлении

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

Тестировщикам стоит задать себе два вопроса:

  • Сколько на самом деле усилий мы тратим на анализ собственного мышления?

  • Сколько усилий мы тратим на осмысление того, что делаем автоматически или подсознательно, по сравнению с тем, как часто мы углубляемся в предмет осознанно?

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

«Майндсет тестировщика»

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

Чем больше я узнавал о тестировании, тем сильнее убеждался, что мы, тестировщики, не слишком-то умеем понятно рассказывать о нашей профессии другим. Из моих ранних попыток стало ясно: просто и коротко объяснить, что такое «майндсет тестировщика», не выйдет.

Есть разные короткие или упрощённые определения того, что такое тестирование ПО; я и сам пробовал их формулировать, но ни одно не казалось удачным. Как объяснить нечто сложное в паре предложений? Зато я участвовал в интереснейших обсуждениях самого тестирования и «майндсета тестировщика», а ещё я видел содержательные онлайн-дискуссии на эту тему.

В нашем внутреннем сообществе один из участников задал два вопроса.

  • Что для вас значит «майндсет тестировщика»?

  • Каков ваш собственный «майндсет тестировщика»?

К тому моменту, когда он озвучил эти вопросы, за моими плечами было 16 лет в тестировании. Моё понимание того, что составляет «майндсет тестировщика», заметно продвинулось. Вот что я ответил в июне 2019 года.

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

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

Моё мнение о необходимости для тестировщиков использовать несколько майндсетов не поменялось, но оно эволюционировало и стало более чётким. Сейчас я гораздо точнее могу объяснить, что имею в виду под «множественными майндсетами». Ниже — несколько примеров, каждый с кратким пояснением. Возможно, вы захотите предложить свои варианты или разовьёте эти?

11 майндсетов в тестировании ПО

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

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

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

  4. Исследовательский. Выходит за пределы очевидного, чтобы добыть новую информацию. Находит менее проторённые пути в системе, выявляя баги и крайние случаи.

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

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

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

  8. Холистический. Применяет целостный подход и системное мышление для анализа причин и следствий. Выявляет зависимости и непреднамеренные последствия, отслеживает «ряби» по системе от небольших изменений.

  9. Этический. Оспаривает тёмные паттерны и исключающие практики и следит за тем, чтобы стратегия тестирования оставалась этичной.

  10. Выходящий за рамки, свободный. Творческое мышление, не привязанное к практическим ограничениям или только смежным областям. Пробует нестандартные идеи и действия и не боится задавать вопросы «не из этой оперы», на первый взгляд нерелевантные, а иногда и вполне очевидные.

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

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

Размышляя о допущениях

На сайте The four-hour tester я наткнулся на упражнение по интерпретации английского детского стишка «Mary had a little lamb» (У Мэри был маленький ягненок). Что на самом деле означает это предложение? Идея в том, чтобы разобрать каждое слово и наметить разные трактовки, из которых затем можно сложить множество возможных смыслов.

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

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

Кто такая «Mary»?

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

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

В каком значении употреблено слово «had»?

Если смотреть на всё предложение целиком, первая мысль: кто бы ни была Mary, ягнёнка у неё больше нет. «Had» в английском языке обычно указывает на прежнее состояние или прошедшее время. Поскольку «had» — это ещё и прошедшее от «have», нетрудно и предположить, что Mary могла съесть немного баранины.

За что отвечает «A»?

Буква «A» часто образует кратчайшее слово в английском, а именно артикль. Её используют по-разному, например, чтобы указать на принадлежность или членство. Пример: Ady is a Pro member of the Ministry of Testing (Эди — участник сообщества Ministry of Testing уровня Pro). Она может означать кого-то, что-то или «первый». «A man». «A bicycle». Или это вариант ответа (A): «Ady thinks too much?»

Насколько «little» — маленький?

Вопрос справедливый, потому что обычно мы используем «little» сравнительно. Например: «a little bit to drink» — «немного выпить» в сравнении с большим количеством алкоголя. «A little confused» — «слегка запутался», а не «совсем не понимаю». Есть даже фильм 2019 года под названием «Little», хотя не знаю, был ли там ягнёнок.

Кто это, что это — и почему именно “lamb”?

«Lamb» может означать молодую овцу, обычно не старше года. «Lamb» — это также мясо, известное своей нежностью и вкусом. Ещё это ласковое обращение к ребёнку: «isn’t she a little lamb?» — «разве она не лапушка?» Но слово может употребляться и в пренебрежительном смысле — о том, кого легко обмануть или кем легко манипулировать.

Наш ведущий QA-инженер тоже использовала это предложение в своём докладе «404 Talk: Finding test cases in acceptance criteria» («Ищем тест-кейсы в приемочных критериях»). Меняя каждое слово, она показывала, как находить пробелы, крайние случаи и скрытые допущения. Можете посмотреть её выступление с разбором примеров.

Так что же означает «Mary had a little lamb»?

Вот небольшой набор возможных интерпретаций. Их гораздо больше.

  • У Мэри есть ягнёнок (Mary has a lamb)

  • У Мэри больше нет ягнёнка (Mary no longer has a lamb)

  • Мэри съела немного баранины (Mary ate some lamb)

  • Мэри родила ягнёнка (Мэри — овца) (Mary gave birth to a lamb, Mary is a sheep)

  • Мэри присматривала за маленьким ребёнком (Mary used to look after a small child)

А сколько разных смыслов удалось придумать вам?

Неоднозначность повсюду

Нам, людям, по природе свойственно даже на самые сложные вопросы искать простые ответы. Знать и понимать — совсем не одно и то же. Альберт Эйнштейн отмечал, что истинный интеллект проявляется в понимании, а не в простом накоплении знаний: «Любой дурак может знать. Главное — понимать».

Аббревиатуры — настоящие генераторы неоднозначности (впрочем, не только они)

Контекст решает всё, потому что ответ на любой вопрос в тестировании начинается со слов: «it depends».

  • XL: это размер или число 40 римскими цифрами?

  • STD: это sexually transmitted disease (венерическое заболевание), doctor of sacred theology (доктор священного богословия), state transition diagram (диаграмма переходов состояний) или subscriber trunk dialling (междугородняя связь)? И это мы ещё не говорим про Systematic Theological Department.

Это яйца от кур свободного выгула (cage-free eggs)? Или «заключённые в клетки» яйца, которые мечтают вырваться на свободу?
Это яйца от кур свободного выгула (cage-free eggs)? Или «заключённые в клетки» яйца, которые мечтают вырваться на свободу?

Подытожим

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

Другие полезные статьи для начинающих тестировщиков:


Если планируете старт в тестировании, присмотритесь к курсу QA Engineer. Basic. Он закрывает базу: ручное тестирование, SQL, тестовая документация, исследовательские подходы и инструменты вроде Jira, Postman и Docker. Результат — понятный набор навыков для первых проектов и выхода на junior-позицию. На странице курса можно записаться на пробные бесплатные уроки.

А тем, кто настроен на серьезное системное обучение, крайне рекомендуем рассмотреть Подписку — выбираете курсы под свои задачи, экономите на обучении, получаете профессиональный рост. Узнать подробнее

Комментарии (0)


  1. Astrowalk
    24.09.2025 08:39

    Дожили! Статья на Хабре о необходимости думать ☺☺☺.