Байка–26. Думай как тестировщик.
(Из ленты 255 ступеней)
– Привет всем. Как праздники? Как походы? – c ходу начал Заяц.
– У меня все норм, – тут же откликнулась Соня. – Прошлись на байдарках. Сложность выбрали поменьше, зато позагорали, покупались. Рыбалка, опять же. В стрейкбол погоняли.
– А ты че кислый? – Заяц хлопнул Оруженосца по плечу.
– Аллергия на пыльцу, – проворчал тот, – ладно хоть в офисе остался. Подменил ребят на первой линии на всякий случай. Звонков было мало, сидел штудировал Вигерса, Коберна и Лефингуена. А еще Шухарта, Деминга и Готратта. Зачем мне это? Я ж тестировщик?
– Будешь аналитиком, – ответил Шляпник и налил очередную порцию зеленого чая. – Отличный дополняющий навык.
– Не дополняющий, а совершенно необходимый, – вмешалась Королева, – И тебе, и команде. И даже не знаю, кому больше.
– Не совсем понял…
– По поводу команды – помнишь развод Зайца на «сбалансированную производственную цепочку»?
– Да, зрелище было еще то. Квази тогда просто позеленел.
– Каждый дополнительный рабочий центр ухудшает производство. Универсалы лучше узких специалистов.
– Но если человек специализируется в какой-то одной области, то он более производителен? А, стоп. Задачка про заборостроителей. Начинаю понимать.
– И да, и нет, – продолжила Королева. – Да – потому что про задачку ты правильно вспомнил, а нет – потому что узкая специализация ограничивает сотрудника в развитии. Чтобы стать очень хорошим тестировщиком, нужны навыки в смежных специальностях. Самое логичное – системный и бизнес анализ.
– Угу, – вышла из полудремы Соня, – а главное, нельзя стать аналитиком, не став хорошим тестировщиком.
– Упс, – пробормотала ошарашенная Синичка.
– Смотрите, коллеги. То, что сказала Соня, – гипотеза. А теперь давайте из гипотезы Пуанкере сделаем теорему Перельмана, – предложил Чеширский. – Начинай, Армигер. Каковы основные навыки тестировщика?
– Знание Jira. Не, это ерунда. За два часа элементарно учится. Может, Селениум?
– Нет. Главные навыки: умение видеть ошибки, умение описывать ошибки и делать предположения о том, где водятся ошибки. Последний навык еще называют владением техниками тестдизайна. Например, «Тестирование граничных условий».
– А, пожалуй, соглашусь. – Оруженосец энергично кивнул и потянулся за очередной плюшкой.
– Может ли аналитик быть хорошим, если он не в состоянии определить, ошибка это или нет?
– Не может, – синхронно ответили Синичка и Армигер.
– А если он не может сделать описание ошибки?
– Такой вообще не нужен, – откликнулся Заяц, – я таких видел. Их ТЗ без слез читать было нельзя. Читал и рыдал. Рыдал и читал.
– А если инженер не владеет навыками тестдизайна?
– Не-не-не, – испугался Шляпник. – Спасибо. Не надо нам таких ТЗ. Лучше я сам напишу. Или Соню попрошу, если Королева занята.
– Это про навыки. Но есть еще более важный аспект, – продолжила Королева. – Чтобы написать хорошее ТЗ, нужно уметь сознательно переключать контексты мышления. Их еще называют аспектами мышления, а Щедровицкий называл их досками мышления. Надеюсь, про «Куб Неккера» все помнят. Когда я пишу план проекта, я работаю в контексте составления плана. Когда пишу график проекта – в контексте составления графика. Генерация идей и критика идей – разные контексты. Это одна из причин, почему на начальной стадии мозгового штурма запрещена критика. Эх. Еще бы кто это объяснял…
– Но вы то, Королева, можете мыслить одновременно на нескольких досках, – вкрадчиво мурлыкнул Чеширский.
Королева только отмахнулась от комплимента:
– Могу, но не хочу. Вернемся к теме. Чтобы сделать хорошее ТЗ, нужно научиться переключать контексты мышления. Тестировщик учится работать в режиме критики. Аналитик – в режиме генерации. Оба навыка жизненно необходимы и для одной, и для другой специальности. Поэтому аналитик обязательно должен быть тестировщиком, а тестировщику необходимо быть аналитиком. – Королева взяла паузу и задумчиво добавила: – Наверное. А может, это и не так.
– Королева совершенно права. Это может быть так, может быть не так, а может быть одновременно и так, и так. А может быть одновременно не так, – подхватил Чеширский. – Мыслесхема у нас получилась отличной. Но этого недостаточно. Нужен подтверждающий эксперимент.
– Игра 2–4–6! – осенило Шляпника. – Стандартная аналитическая задача, которую лучше решают тестировщики, чем аналитики. Хоть это и выглядит очень странным.
– Для решения этой игры нужен контекст критики. И знание техник тестдизайна.
– Угу. – протянула Соня. – Классический тестдизайн, когда мы меняем только один параметр. Классика из классик. Неужели аналитики так не делают?
– Так вообще мало кто делает. Вопрос в статистике. Инженеры какой специальности делают это чаще. И вроде как лидерство за теми, кто проходил обучение на тестировщика.
– Для хорошего аналитика очень важно уметь думать разными способами. Возьмем, к примеру, опыт Второй Мировой. Сломаем шаблон. Возьмем примеры из совершенно другой области. Во время бомбежек немецких заводов погибало довольно много самолетов союзников. Было требование уменьшить потери. Эксперты изучили пробоины и предложили сделать дополнительное бронирование там, куда чаще попадают. Но нашелся человек, который мог думать по-другому. Он сказал, что если с пробоинами в этих местах самолеты возвращаются, то эти пробоины не слишком опасны. Гораздо опасней попадания в другие места. И вот их-то и надо дополнительно бронировать. Этот человек думал как тестировщик. Или, если угодно, тестировщики должны научиться думать как он.
– Ошибка выжившего, – проворчал Шляпник.
– Да, – внезапно вмешался Время. До этого момента казалось, что его нет в комнате. – Но была предложена и другая мера. Сомкнуть строй.
Оруженосец удивленно посмотрел на Время:
– Но ведь так же все и летали.
– Не совсем так, не настолько плотным. Чем плотнее строй, тем больше гибнет от «дружественного огня». Это очень тяжело принимается. Это другой уровень. Мы должны убивать своих, что бы враги не могли убить больше. Очень плотный строй и централизованное управление огнем приводит к уменьшению потерь от противника, но одновременно к увеличению потерь от своих.
В кухне повисла тишина.
Время оглядел всех.
– Я вам предлагаю подумать вот над чем, – и Время указала на высокую стройную женщину, сидящую в углу и читающую распечатки ГОСТ-ов.
– Кудряшка, – поморщилась Королева.
– Кто это? – спросил Оруженосец.
– Моя сестра, Белая Королева. Процессник.
– Так у нас же все прекрасно, – удивился Оруженосец. –– Есть джира и конфлюенс. Мы прекрасно находим и исправляем дефекты.
– Да все верно – согласился Время. – Но на своем уровне. А если вам надо подняться на несколько уровней выше? Сможет команда универсалов это сделать – или только команда узких профессионалов?
Второй раз воцарилась тишина; все задумались.
Королева посмотрела на прическу сестры и вздохнула:
– Моя сестра катализатор этого. Она либо усложняет, либо упрощает систему. По задаче, конечно. Она убивает одни функции в системе ради создания других и строит связи. –– Королева посмотрела на Армигера. – Не в коде, конечно. Например, при каком-то изменении процесса разработки перестает существовать функция программирования.
– Генетический код, – поежился Шляпник.
– Да, система сама себя создает, нам надо лишь убедиться, что потомок работает «правильно», и в противном случае сделать выбраковку.
Жестом заядлого фокусника Чеширский достал колоду карт и разложил по столу.
– Ой, какая прелесть, – восхитилась Соня и начала цитировать фильм “Трасса 60″:
– Черные червы, красные пики, но это же обман?
– Опыт приучил вас думать, что все червы красные, а пики черные… Мы видим то, что ожидаем увидеть, а необязательно правду. Дети, не игравшие в карты, легко проходят этот тест.
– Хороший фокус. Но игр с черными червами и красными пиками нет.
– А откуда вы знаете?
– Именно. Думай как тестировщик. Вне зависимости от того, что говорит программист, и вне зависимости от того, что написано в ТЗ, тестировщик должен быть настроен скептически. Вне зависимости от того, что говорит заказчик, аналитик должен быть настроен скептически. Аналитик должен научиться думать как тестировщик.
Заяц с завистью посмотрел на колоду:
– Где взял?
– В «Мосигре» https://www.mosigra.ru/Face/Show/krasnye_piki/. Время уже заказал 42 колоды. Так что всем хватит. Сказал, что эти карты отлично выбивают из зоны интеллекта в зону разума.
– Вернемся к далекому будущему. Как проверять такие системы?
– Да точно так же, как и сейчас, для нас же ничего не меняется.
– Меняется хотя бы то, что больше нет исходного кода. Меняется весь процесс.
– Возьми паузу, подумай, – предложила Королева Оруженосцу, – учись смотреть на систему под другим углом. Думай как тестировщик, и станешь хорошим аналитиком.