Ретроспективные уроки исследовательского тестирования: что такое тестирование? |
05.06.2019 00:00 |
Автор: Виктор Славчев (Viktor Slavchev) После неожиданного успеха цикла статей о ретроспективных уроках автоматизации мне показалось, что нужно уделить больше времени областям, в которых у меня достаточно опыта, и к которым я неравнодушен. Это исследовательское тестирование – или, как я буду называть это далее, просто исследование. Зачем это нужно? Мне кажется, что я посылаю некоторым людям смешанные сигналы – мне пришлось отклонить ряд запросов на консультации по автоматизации, потому что люди решили, что я эксперт в этой сфере. Мне очень льстит быть так высоко оцененным, но положа руку на сердце, я не могу претендовать на эту честь. Я любитель-самоучка, у которого достаточно смелости на то, чтобы иметь мнение, и есть блог, где этим мнением можно поделиться. Что касается уровня моих навыков, я считаю, что они находятся на необходимом минимуме. В любом случае, я не разделяю взгляд на автоматизацию, сконцентрированный на инструментарии, и полагаю, что большая часть проблем, связанных с автотестами, в том, что люди недостаточно хорошо понимают тестирование. Ретроспективные уроки автоматизации отклонились от моей первоначальной цели – создания отсутствующего звена между тестированием и автоматизацией, слишком отойдя к технической стороне автотестов. Если основной задачей цикла была демонстрация, что имеет смысл автоматизировать для помощи тестированию, необходим еще один цикл, показывающий, что наиболее важно с точки зрения тестировщика, и что автоматизаторы должны знать о целях и сути экспертного тестирования. Я решил, что этот цикл будет называться "Ретроспективные уроки исследовательского тестирования". Он также будет полезен тем, кого интересует исследовательская часть тестирования, и кто устал от просьб строго следовать сценариям, хотя толка от этого немного. Почему исследование, а не исследовательское тестирование? Я преподаю исследовательское тестирование почти два года, и вижу, как люди рассматривают его как нечто иное, хипстерское, как какой-то модный способ проводить "ручное тестирование". Это проблема. Я не могу с этим работать. Любое добавление прилагательного к слову "тестирование" заставляет его звучать как нечто совершенно иное, новое, особенное, отличающееся от "обычного" тестирования. Это неверно – тестирование есть тестирование. К нему есть смысл добавлять прилагательные, когда мы описываем различные типы парафункционального тестирования – к примеру, тестирование производительности, безопасности, удобства использования. Все это тест-деятельность со специфическим фокусом. Когда мы говорим об исследовании, то мы ведем речь о ключевом аспекте тестирования, о том, без чего оно не может обойтись. Иными словами, без исследования нет тестирования, и использование термина "исследовательское тестирование" похоже на "мясной стейк". Исследование – неотъемлемая часть тестирования, которая зачастую опускается – или же люди делают вид, что его можно заменить или обойти его, следуя строго определенным сценариям или формализованной документации. Цель этого цикла статей – доказать, что это не так. Избавляемся от словесного мусораИскусство тестирования переполнено плохой терминологией, полуправдами, которые мы принимаем как данность и, что еще важнее, используем как основу для развития навыков. В норме на этом этапе люди начинают спорить, что
Проблема плохой терминологии в том, что она не описывает суть мастерства тестирования, а обращается только к одному из его аспектов – как правило, к выполнению тестов. Я сконцентрируюсь на двух определениях, которые полностью разрушают понимание тестирования.
Это не означает, что в тестировании нет ничего "ручного" – мы проделываем массу ручных задач, но это не значит, что тестирование "ручное" – это ужасное, опасное упрощение. Некоторые любят использовать термин "ручное", чтобы отличить задачи, выполненные человеком, от автоматизированных, но если вы так поступаете – пожалуйста, перестаньте. Общее определение термина "ручное тестирование" для новичков и людей, далеких от тестироавния, звучит как дешевая некомпетентная человеческая деятельность по следованию сценариям – наследство древних времен. Если вы мне не верите, то вокруг нас, в сообществе тестировщиков миллионы примеров тому – просто послушайте, как люди говорят о том, ручные они тестировщики или автоматизаторы, или как перейти из одной категории в другую, чтобы стать эффективнее. Если вас интересует моя позиция по этому вопросу – с ней можно ознакомиться здесь.
Автоматизированное тестирование – еще один термин, который всех путает, давая ложное представление, что это некая высшая форма тестирования, и любой тестировщик должен стать автоматизатором, а то иначе он ни на что не годен. Это ложь! Автоматизация – просто другой тип тестирования, не менее важный, чем исследование, создание хороших сценариев и отчетов о проблемах, и т. п. Знаю, что вы, скорее всего, скажете "Но Виктор, это же очевидно, твою мать!" Уверены? Сходите к руководству – мне все равно, что это за человек – и спросите его, почему автоматизация – это важно. Ставлю на то, что в 99,9% случаев вы получите ответ "потому что так мы сэкономим время и деньги, и не будем прогонять одни и те же тесты вновь и вновь вручную". Бинго! Думаете, у вас есть проблема с автоматизацией? Вот же она – на самом деле это проблема с ожиданиями определенных лиц от автоматизации и ее связи с тестированием. И это наша проблема, и наша вина в том, что кто-то так думает. Избавляемся от мусорных концепцийИзбавившись от терминологии, которая не описывает тестирование, а ограничивает его, неплохо бы определить, что же такое тестирование на самом деле. Начиная преподавать новой группе студентов, я обычно начинаю с такого вопроса: Вы уже имеете представление о тестировании – так что же это такое, почему мы тестируем? В чем цель тестирования? Это также неплохой вопрос для собеседования – он хорошо выявляет, знает ли тестировщик, чем он занимается, или же просто слепо повторяет заученные определения. Как я уже упоминал, мои студенты – новички, и они не могут вывести определение, основываясь на знаниях – они говорят о том, чему их учили, или о том, что они читали или слышали. Поэтому ответы, как правило, звучат так:
А также многое, многое другое. Как можно видеть, знания у начинающих тестировщиков частично основаны на плохо понятом глоссарии ISTQB, частично – на городских легендах, частично – на полном отсутствии понимания взаимоотношений тестирования и качества. Задавая этот вопрос, я четко вижу определенный шаблон:
Проблема тут в том, что это базовые вещи для понимания искусства тестирования. Если мы изначально преподносим их неверно, или не обращаем внимания на то, что это не усвоено – мы строим дом на шатком фундаменте. Для того, чтобы это "раззнать", нужно потом затратить много сил. Так что же такое тестирование?Вот мое определение, на которое повлияли определения Кема Кейнера, Джеймса Баха, Майкла Болтона, Джерри Вайнберга и других экспертов, которым есть что сказать о тестировании. Тестировать – значит постоянно узнавать новые факты, информацию о продукте путем его исследования, экспериментирования с ним, создания ментальных моделей, задавания вопросов. Мы делаем это, исходя из единственной цели – предоставить информацию о проблемах, связанных с рисками, существующих проблемах, угрожающих качеству или своевременному завершению и поставке продукта. Чтобы сделать это, мы собираем информацию из разных источников:
Если вы хотите взглянуть на полную картину того, что же такое тестирование – рекомендую обратиться к отличному списку источников и определений, созданному Майклом Болтоном. Как это связано с исследованием?Все это имеет прямое отношение к исследованию. Самый важный акцент, о котором нельзя забывать, в том, что тестирование – постоянно развивающаяся деятельность. Тестировать означает учиться, а чтобы научиться, нужно исследовать. Как только вы прекращаете получать новую информацию, вы начинаете бегать кругами. Несколько раз мне доводилось говорить, что тестировщики – это разработчики. Каждый раз я получаю гневные комментарии и аллергические реакции, но это так! Мы не разрабатываем код, но мы разрабатываем знания, понимание, навыки и опыт в осуществлении тестирования на экспертном уровне с целью выявить новые аспекты информации о продукте. Это не прямолинейный процесс – в нем много специфичного, и для достижения мастерства требуется время и практика. Хитрость в том, что оно будет совершенно различным для различных проектов. Иными словами, хорошее исследовательское тестирование, или просто тестирование (потому что любое тестирование исследовательское) – это очень, очень трудно. Оно требует времени, терпения, знаний, и прежде всего практики. Это то,о чем вам не расскажут сертификации, академии и продавцы инструментов – потому что трудно продать сертификат, говоря "ну вы знаете, тестировать трудно, это требует времени, знаний и практики, чтобы делать это хорошо". Куда легче сказать "пройдите наш трехдневный курс и станьте гуру тестирования!" Это была вводная статья об уроках исследовательского тестирования, которые я узнал, изучая и преподавая тестирование. Возможно, это слишком общо, но я планирую использовать эти статьи для моих студентов, поэтому намеренно возвращаюсь к основам. В будущих статьях я сконцентрируюсь на аспектах исследования, которые считаю важными. |