Разделы портала

Онлайн-тренинги

.
Как исследовать намеренно: самоуправление в исследовательском тестировании
19.03.2017 23:39

Автор: Маарет Пиаярви (Maaret Pyhäjärvi)

Оригинал статьи: https://dojo.ministryoftesting.com/lessons/how-to-explore-with-intent-exploratory-testing-self-management

Перевод: Ольга Алифанова

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

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

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

Другие – например, я – занимаются исследовательским тестированием постоянно. В этом режиме тест-кейсы (если они вообще существуют) – это результат процесса, а не его исходная точка, и они создаются, когда мы знаем о фиче или продукте максимально много. Мы многому научаемся, когда завершаем тестирование.

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


Переплетение различных видов деятельности по тестированию

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

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

Практический пример

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

Вам показали три педали, и когда вы поразмыслили, вы поняли, какая из них за что отвечает. Вы опознали коробку переключения передач, и ясно без слов, что рулевое колесо делает то, что должно делать рулевое колесо (конечно, если вы едете вперед). И наконец настает момент, когда вы самостоятельно садитесь за руль.

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

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

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

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

Научиться управлять собой

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

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

В свое время я тестировала с блокнотом под рукой по очень практической причине – каждый день в блокноте символизировал реальный день тестирования и давал мне механизм для отслеживания моей работы. Страница делилась на четыре части с невидимыми заголовками, которые я им присваивала – Миссия (почему я вообще тут), Чартер (что я собираюсь делать сегодня), Детали (что мне нужно фиксировать детально), и Другие Чартеры (что мне нужно сделать до того, как я закончу?).

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


Миссия

В верхнем левом углу я прикрепляю наклейку со своей миссией, целью, или, как я люблю об этом говорить, песочницей, в которой мне дали поиграть. Чего ждет от меня моя компания, какой информации, нанимая меня как исследовательского тестировщика? Как описать это в трех словах?

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

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

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

Чартер

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

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

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

Детали

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

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

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

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

Другие чартеры

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

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

Все у вас под контролем

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

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

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

Как человек, который активно чему-то учится, вы будете становиться лучше каждый день как тестировщик. Исследовательское тестирование рассматривает тест-дизайн, запуск тестов и обучение как параллельные, взаимодополняющие и поддерживающие виды деятельности, чтобы найти "неизвестные неизвестные". Делать что-то параллельно довольно трудно, и тестирование должно подстроиться под личный уровень навыка и стиль. Ваш навык управлять своим трудом и своим обучением – делая обучение и размышления привычкой – это именно то, что отличает опытное исследовательское тестирование от сбрасывания в одну кучу разных деятельностей по тестированию.

Я верю, что то, что выделяет нас, тестировщиков – это обучение. То же самое – у программистов. Те, кто учится, работают лучше, чем те, кто сидит на месте. Обучение – это сердце исследовательского тестирования.

Про Маарет

Маарет Пиаярви – профессионал разработки ПО с упором на тестирование. Она определяет себя как эмпирического технолога, тестировщика и программиста, катализатор для улучшений и спикера. Она работает в небольшой компании по разработке ПО как специалист по тестированию. Еще она преподает исследовательское тестирование и дает обратную связь проектам, которые сильно завязаны на автотесты, в плане исследовательского тестирования. Она не только тестировщик и преподаватель – она еще и регулярно волонтерит в различных мероприятиях, посвященных ПО. Ее блог: http://visible-quality.blogspot.fi

Обсудить в форуме