Разумное парное тестирование |
05.02.2019 00:00 |
Авторы: Оля Фазулзянова, тестировщик Контур.Экстерна и Оля Изюрьева, тестировщик Контур.Биллинга и организатор курса тестировщиков. Девушки рассказали о парном тестировании, о задачах, которые оно помогает решить, и привели пример неудачного использования практики. В методологии XP есть практика — парное программирование. Во многих источниках написано о массе его преимуществ: высоком качестве кода, взаимозаменяемости разработчиков и т. д. Если парное программирование настолько эффективно, то почему бы не применить аналогичные принципы в тестировании? Да, это можно сделать, парное тестирование существует давно и хорошо себя зарекомендовало. Но не стоит забывать, что любая практика является всего лишь инструментом для решения каких-либо задач. В Википедии нет термина «парное тестирование», но есть определение для парного программирования, которое можно взять за основу. Тогда, на наш взгляд, мы получаем следующее. Парное тестирование — это техника, при которой тестирование одной функциональности производится парой людей за одним рабочим местом. Один тестировщик («ведущий») управляет компьютером, второй («штурман») непрерывно следит за работой первого. При этом на всем протяжении работы над задачей они обмениваются идеями и обсуждают их. Любая практика — всего лишь инструмент. Мы не хотим забивать гвозди микроскопом, поэтому всегда отталкиваемся от задачи. Давайте рассмотрим те задачи, для которых релевантно использование практики «парное тестирование». Задача: наставничествоВ любой момент в команду может прийти новый человек. Ожидания команды от него — достаточно быстрое погружение в коллектив и в специфику проекта и, конечно, качественное выполнение своей работы. Чтобы ожидания стремительно превращались в реальность, во многих компаниях существует процесс наставничества. А вот что будет, если наставничество реализовать через парное тестирование? Пример:В проект пришел новый тестировщик, с опытом или нет — не важно. Вы, как наставник, садитесь с ним за ваш рабочий компьютер и начинаете выстраивать процесс следующим образом: в самом начале за вами закреплена ведущая роль, и первоочередная цель — познакомить новичка с процессами проекта и предметной областью. Знакомство может быть через рассказ, презентацию или сразу через совместное тестирование задач. Начать можно с обсуждения сути задачи, поиска ответов на вопросы и проработки плана тестирования. Когда все готово для тестирования, вы берете клавиатуру и мышь и показываете, как тестировать, а новичок наблюдает. Никто не запрещает меняться ролями и рабочими местами на последующих задачах. Главное, не менять суть — совместное тестирование задач за одним рабочим местом до тех пор, пока вы не будете уверены в своем напарнике. Профит:
Мини-вывод:Практика подойдет, если напарник — человек без опыта и нужно его быстрое преобразование из новичка в специалиста. Профит есть и при работе с опытным новичком: обучаются все, включая наставника. Ведь каждый человек работает по-своему и мыслит уникальным образом, используя свои практики и инструменты. Задача: повышение квалификацииМы можем столкнуться с тем, что для успешного выполнения своей работы нам нужно обладать знаниями смежных специализаций: уметь составлять документацию, автоматизировать задачи и т. д. Как быстро и недорого нарастить компетенции? Обратиться к члену своей команды. Пример:Вам как тестировщику приходит задача, которую целесообразнее покрыть юнит-тестами, но у вас не хватает квалификации, и вы идете к разработчику за помощью. Вы садитесь с ним за один рабочий компьютер и начинаете выстраивать процесс следующим образом: в самом начале ведущая роль обязательно за разработчиком, ведь он должен познакомить вас с кодовой базой и имеющимися тестами. Затем вы вместе накидываете сценарии и начинаете их автоматизировать. Первые тесты пишет разработчик, а вы наблюдаете, а следующие вы уже берете в свои руки. Профит:
Мини-вывод:Работа в паре позволяет получать знания в новой сфере быстро и эффективно, сразу закрепляя их на практике. Задача: избавление от незаменимости (bus-factor)Очень часто в командах есть люди — единственные носители определенных знаний. Зачастую таким человеком становится тестировщик, ведь он знает всё: пользовательские сценарии, как реализованы сервисы, что необходимо настроить на тестовой и многое другое. Но в жизни бывают ситуации, которые могут лишить проект источника знаний (увольнение, отпуск, больничный...). Следовательно, чтобы минимизировать последствия, можно подстраховаться и заранее расшарить знания из одной головы в несколько. Как? Через парное тестирование, конечно! Пример:Вам как тестировщику нужно погрузить в свои задачи любого члена команды, передав сакральные знания. Вы садитесь с ним за один рабочий компьютер и начинаете выстраивать процесс следующим образом: за вами всегда закреплена ведущая роль, в самом начале вы рассказываете и/или показываете источники информации, по ходу актуализируя, подбираете и разбираете задачи, которые помогут закрепить полученные знания. Профит:
Мини-вывод:Если есть узкие специалисты, то парная практика для вас. Она повышает взаимозаменяемость и передачу актуальной информации. Задача: получение обратной связиЕсли команда тестирования состоит из нескольких человек, то применима практика обратной связи. Парное тестирование — подходящий инструмент для ОС. Пример:Вам или вашему коллеге необходима обратная связь. Вы садитесь с ним за один рабочий компьютер. Как выстраиваете процесс, не важно, главное — работать вместе. Профит:
Мини-вывод:Парные сессии дают тестировщикам возможность понаблюдать за работой коллег, в результате чего обратная связь будет более достоверной. Мы разобрали задачи, при решении которых может помочь парное тестирование. Случай из жизни, или Не делай как мыНа одной из ретроспектив команды тестировщиков были выявлены следующие проблемы:
Сформулировав эти проблемы, мы поставили перед собой задачи:
Договорились, что для их решения воспользуемся практикой парного тестирования. Я и моя коллега вдвоем приступили к одной задаче тестирования.
Все это нужно было сделать с нуля. Сев за один компьютер, мы начали читать аналитику. Договорились прочитывать один абзац или часть текста, а затем обсуждать возникшие вопросы и уже накидывать первые тест-кейсы. Поскольку аналитика была довольно слабо проработана и содержала в себе вперемешку бизнесовую и техническую часть, порой на обсуждение 10 строк текста уходило 15–20 минут. Кроме того, чтобы окончательно разобраться с каждым вопросом, требовались уточнения от аналитика, разработчика или специалиста техподдержки. Все эти сообщения и письма писались тоже в паре. Новая предметная область была достаточно сложной, поэтому составление тест-кейсов требовало настройки сложной среды и подготовки части тестовых данных. Тут тоже не обошлось без множества вопросов и совместных уточнений. Столкнувшись со всем этим, мы решили притормозить и провести встречу, чтобы обсудить ход работы и успешность парного тестирования. На встрече мы поняли, что, начав применять практику, мы совершенно забыли о цели ее использования. Все внимание сконцентрировалось только на тестировании, точнее даже, на подготовке к нему, так как до самого прогона тест-кейсов дело не дошло. В ходе работы у нас не получилось провести полноценное ревью друг друга, ведь все действия мы выполняли вместе, перед этим их обсудив. Мы не подмечали ход мысли и действия напарника при раскручивании новой задачи. Не получилось и обменяться знаниями, так как предметная область была новой для нас обеих. Строго говоря, поделиться знаниями получилось, но это были мелочи вроде:
Этими знаниями можно делиться и не прибегая к такой дорогой практике. К концу встречи мы сделали для себя выводы:
Существует множество разных практик. Какие из них применять в работе, зависит только от вас. Главное, не забывайте, зачем вы их применяете, и не используйте практики ради практик. |