В этой статье рассмотрим разные способы мышления, которые помогают тестировать лучше, преодолевать предвзятость и приносить больше пользы.
TL;DR
Ценность тестировщика не в «прогоне кейсов», а в мысли перед действием: анализ рисков, формулировка точных вопросов, выбор стратегий.
Единого «майндсета» не существует: нужны переключения между режимами — исследовательским, научным, риск-ориентированным, инклюзивным, критическим и др.
Работа с допущениями и неоднозначностью — базовый навык; упражнение с «Mary had a little lamb» показывает, как ловить скрытые трактовки.
Тестирование — интеллектуальный труд: результатом часто становятся ясность, стратегия и качественный баг-репорт, а не только артефакты.
Практика: осознанно анализируйте собственное мышление, комбинируйте разные подходы по контексту — так растет ценность и качество ПО.
Странно получать деньги за то, что задействуешь свой мозг, правда?
Только мне кажется, или это правда немного странно, что нам платят за «мозги» и то, как мы думаем? Для меня это очень даже характерно: когда в школе тебе говорят, что ты годишься лишь для работ из разряда физического труда, «червячок» синдрома самозванца прочно поселяется в голове. Но довольно о моей неуверенности в себе.
Тестировщики и разработчики могут так себя не воспринимать, но мы действительно являемся специалистами интеллектуального труда (knowledge/thought workers). Нам платят за силу нашего мышления и способность думать — не меньше, а иногда и больше, чем за набор конкретных навыков.
Что значит специалист интеллектуального труда?
Я дам такое определение:
Специалист интеллектуального труда (thought worker), особенно в контексте разработки и тестирования ПО, — это человек, чей главный вклад и ценность проистекают из его когнитивных способностей, а не из осязаемого «ручного» результата. Например, тест-кейс может написать почти любой член команды, но, чтобы он имел ценность, покрывал целевые риски и давал осмысленную обратную связь, нужны серьёзная проработка и критический анализ. Ценность тестировщика — в умении решать сложные задачи, глубоко и критически мыслить о сложных системах, выявлять возможные проблемы и неоднозначности, а также связывать на первый взгляд разрозненные идеи — порой не меньше, а то и больше, чем в любых «физических» навыках, которые он применяет.
Подумайте об этом в таком ключе. Даже если разработчик часами пишет код, а тестировщик долго и упорно проводит тесты по написанным сценариям, их настоящая ценность — в умственной гимнастике, которая предшествует этим действиям. Во внимательном выборе паттернов проектирования, скрупулёзном планировании стратегий тестирования, точной дедукции при поиске неуловимой ошибки и творческом полете мысли, который приводит к появлению новой фичи. Это способность предугадывать будущие проблемы, понимать сложные модели поведения пользователей и синтезировать информацию из разных источников в цельное решение.
Результатом работы специалиста интеллектуального труда часто становятся ясность, стратегия, точный вопрос, изящное решение или точный баг-репорт. Их время лучше всего посвящать глубокой сосредоточенной работе, разбору проблем, а не просто выполнению рутинных операций. Признание вклада такого специалиста — это умение ценить колоссальный интеллектуальный капитал, который он привносит. Создание среды, поощряющей глубокое мышление и решение проблем, — ключевое условие для действительно качественного и инновационного программного обеспечения. Речь о том, чтобы ценить мозг за клавиатурой.
Или, если кратко: «ценность — в мысли перед действием, а не только в действии».
Размышления о мышлении
На этом месте можно углубиться в моральную философию Иммануила Канта, в которой поступок определяется мотивом и должен исходить из морального основания или чувства долга. Можно обсудить внутреннюю и внешнюю ценность мышления: сам процесс мысли обладает внутренней ценностью, а порождённое им действие — внешней. Исследования в области физиологии показывают сильную связь между мыслями и действиями — вплоть до влияния жестов на само мышление.
Тестировщикам стоит задать себе два вопроса:
Сколько на самом деле усилий мы тратим на анализ собственного мышления?
Сколько усилий мы тратим на осмысление того, что делаем автоматически или подсознательно, по сравнению с тем, как часто мы углубляемся в предмет осознанно?
Именно эти вопросы я задавал себе, когда размышлял о том, как я думаю во время тестирования и что для меня значит «майндсет тестировщика». Они не дают мне покоя уже много лет — с тех пор, как я начал создавать учебные материалы и преподавать тестирование.
«Майндсет тестировщика»
С самого начала моей карьеры в тестировании ПО в 2003 году я постоянно слышал о «майндсете тестировщика». Определений было очень мало, и ни одно мне не подходило. Я пытался выяснить, кто именно впервые ввёл этот термин, но похоже, он сформировался постепенно.
Чем больше я узнавал о тестировании, тем сильнее убеждался, что мы, тестировщики, не слишком-то умеем понятно рассказывать о нашей профессии другим. Из моих ранних попыток стало ясно: просто и коротко объяснить, что такое «майндсет тестировщика», не выйдет.
Есть разные короткие или упрощённые определения того, что такое тестирование ПО; я и сам пробовал их формулировать, но ни одно не казалось удачным. Как объяснить нечто сложное в паре предложений? Зато я участвовал в интереснейших обсуждениях самого тестирования и «майндсета тестировщика», а ещё я видел содержательные онлайн-дискуссии на эту тему.
В нашем внутреннем сообществе один из участников задал два вопроса.
Что для вас значит «майндсет тестировщика»?
Каков ваш собственный «майндсет тестировщика»?
К тому моменту, когда он озвучил эти вопросы, за моими плечами было 16 лет в тестировании. Моё понимание того, что составляет «майндсет тестировщика», заметно продвинулось. Вот что я ответил в июне 2019 года.
Я не считаю, что нам, тестировщикам, следует или вообще возможно придерживаться одного-единственного майндсета. Способность мыслить по-разному и смотреть с разных точек зрения — одна из наших суперспособностей.
Один из наименее рассматриваемых, недооценённых и при этом крайне ценных — инклюзивное мышление. На мой взгляд, очень важно смотреть, как люди с разным опытом и потребностями взаимодействуют с нашими системами.
Моё мнение о необходимости для тестировщиков использовать несколько майндсетов не поменялось, но оно эволюционировало и стало более чётким. Сейчас я гораздо точнее могу объяснить, что имею в виду под «множественными майндсетами». Ниже — несколько примеров, каждый с кратким пояснением. Возможно, вы захотите предложить свои варианты или разовьёте эти?
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.

Подытожим
Стоит чаще спрашивать себя, сколько внимания мы уделяем собственному мышлению, когда анализируем требования, решаем, что и как тестировать, или рефлексируем над повседневными задачами. Важно осознавать себя специалистами интеллектуального труда и ценить способность учиться, понимать и применять знания осознанно. И главное — признавать, что у нас есть несколько «майндсетов» тестирования, и именно то, как мы их комбинируем и какое мышление при этом задействуем, позволяет приносить реальную ценность и делать качественное ПО.
Другие полезные статьи для начинающих тестировщиков:
Если планируете старт в тестировании, присмотритесь к курсу QA Engineer. Basic. Он закрывает базу: ручное тестирование, SQL, тестовая документация, исследовательские подходы и инструменты вроде Jira, Postman и Docker. Результат — понятный набор навыков для первых проектов и выхода на junior-позицию. На странице курса можно записаться на пробные бесплатные уроки.
А тем, кто настроен на серьезное системное обучение, крайне рекомендуем рассмотреть Подписку — выбираете курсы под свои задачи, экономите на обучении, получаете профессиональный рост. Узнать подробнее
Astrowalk
Дожили! Статья на Хабре о необходимости думать ☺☺☺.