Как войти в новый проект: взаимоотношения с командой и пользователями, тестовая лаборатория

Автор — Александр Селяев

Как войти в новый проект

За последнее время мне удалось «поосваивать» — в хорошем смысле слова — несколько разных по сложности командных проектов. Каждый проект — уникальный. А задачи с созданием группы тестирования — вроде бы одни и те же…

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

Знакомиться с новыми людьми.

Изучить новый продукт.

Построить свою работу с нуля.

Как не утонуть в новом хаосе?

Как бы вы начали входить в новый проект? Или вопрос опытным — как вы входили в новый проект? С чего бы начинали? Были бы это технологии или проблемная область? На какой стратегический вопрос хотели бы сперва найти ответ? Столько направлений, столько мыслей, столько желаний…Со временем у меня сформировался свой набор эвристик вхождения в проект — своего рода записная книжка товарища Селяева маленьких шагов (побед?) к достижению стратегических целей в тестировании нового проекта. Со временем я выделил несколько стратегических направлений, которые и пытаюсь «пробежать» за как можно быстрое время (ASAP): 

  • Взаимоотношения с командой и пользователями
  • Тестовая лаборатория
  • Учет работ и планирование
  • Документация и База знаний
  • Визибилити и Отчетность

В этой статье поговорим про взаимоотношения и тестовую лабораторию. Мой опыт. Мои евристики.

Взаимоотношения с командой и пользователями

Как войти в новый проект

Как живете? Первый вопрос команде

Знаете, какой мой первый вопрос к новой команде? Ни о технологиях, ни о практиках, ни о хотелках менеджеров этот вопрос. И, кстати, я его никогда не произношу, никому не задаю, но «подразумеваю» постоянно. Главное, что я хочу понять с самого первого шага в проекте:

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

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

Нужно ли Мне теперь тестировать самому? И вот на эти вопросы приходится отвечать уже мне и отвечать, отвечать, отвечать… Не ждать нежданчиков — узнать, чего хотят.

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

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

Спроси, чего ждут от тебя начальники и команда — договорись что будешь делать в первую очередь, пусть это не будет нежданчиком для тебя и для них.

У меня в календаре стоят даты, когда я набираюсь смелости и задаю в лоб менеджерам вопросы:

  • Вам хорошо от того, что делают тестировщики?
  • Вы довольны достигнутыми результатами?
  • Что еще могут сделать тестировщики?
  • Когда вы хотите это иметь?

А потом смотрю на список и произношу: м-да… А теперь, когда мы все поняли, что хотим очень многого, давайте расставим приоритеты. Понять, чего хочет «начальника», поможет не наступить на мозоль или грабли. В первом случае можно сделать неприятно кому-то, а во втором случае — заработать шишку себе. Шишка — не орден — гордиться нечем.

Делиться опасениями, рисками и проблемами

Как войти в новый проект

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

На работе, в отличие от семьи, есть две крайности:

  • Ну ты же ничего не говорил.

и

  • Ну тебя же взяли, чтобы ты проблемы решал, а не рассказывал о них.

Когда-то меня подобные ответы заставляли выпучивать глаза и глотать ртом воздух: они что, ничего не видели?

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

Если человек говорит, что он решает проблему и планирует решить ее к определенному сроку, определенным способом, можно либо посоветовать, как сделать быстрее, либо не мешаться под ногами.

Хотя всегда могут найтись излишне инициативные сослуживцы и начальники. И ведь лесом их не пошлешь.

Команда — мой круг. Мой первый круг. Второй, третий…

Как войти в новый проект

Знакомиться активно

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

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

Позже вы будете складировать людей в свои круги, но сперва попытайтесь найти среди этих сильных личностей тех… кто любит печеньки. Нет, честно — ни одна команда разработчиков так и не устояла перед анекдотами, историями из жизни и печеньками. Программисты как дети, ей Богу!

Запоминать новых людей

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

В текущем новом проекте за три месяца мне уже пришлось общаться кроме своей команды (15 человек в 6 странах) еще с 7-ю специалистами из 5 параллельных проектов. Из 23-х специалистов три месяца назад я знал только двоих. С 6-ю я общался всего один раз. Без записи — как вспомнить имя Rohit Gnapnadesh и что именно он отвечает за Emma сервисы на UAT?

Не бояться быть дураком и задавать вопросы

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

Быть дураком — не стыдно. Стыдно продолбать баг на 300 килоевро из за своей скромности.

Кто такой конечный пользователь?

Как войти в новый проект

Познакомиться с пользователями

Еще жив в моей памяти проект, в котором мы не знали своих пользователей. Вернее, не знали всех пользователей. А их были десятки… К тому времени, как сменилось две команды разработки, 3 ITPM-а, несколько вендоров, и, наконец, пришел я — остался список из 7 проектов, которым мы и предоставляем услуги передачи и обработки данных. Про проблемы остальных мы узнавали, только когда релизили новую версию продукта. Узнавали весьма с печальными последствиями. Это, конечно, редкий случай, но каждый раз, когда я появляюсь в проекте, я хочу знать, кто использует нашу программу и как он ее использует.

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

Найти способ собирать жалобы пользователей

Я сразу пытаюсь присосаться к любому каналу связи, где пользователи жалуются. Нет ничего полезнее, чем крик души от пользователя. Желательно, чтобы этот канал был единственным и широким — там должны быть все. В этом похожи все сервисы — и продажа товаров, и туристические туры, и разработка ПО.

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

Жалобы пользователей — это не тот случай, когда молчание — золото.

Тестовая лаборатория

Как войти в новый проект

Где тестировать?

Разработчик может сказать: «У меня баг не воспроизводится… Будем закрывать?»

Тест-менеджер может спросить: «Нашел проблему?… А как работало раньше — в предыдущей версии?»

Проект-менеджер может поинтересоваться: «А насколько данные в тестовой лаборатории близки к тем, что на проде?»

Вопросы не редкие, единого рецепта нет, и задуматься нужно уже с самого начала.

Отказаться от «не воспроизводится»

Разные данные, разные способы установки/запуска приложений, разные наборы компонент — все это очень сильно влияет на конечный результат. Если в системе может быть разным вообще все — утверждать, что тестировщик в описании бага не упомянул главные детали конфигурации не совсем честно. Кстати, сохранять целиком конфигурацию тоже не всегда возможно (объем данных, архитектура компонент и т.п и т.д)

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

Слова «у меня не воспроизводятся» стоят дорого. От их причин нужно избавляться. Моя первая задача в этом случае выбить себе тестовую лабораторию. Вторая задача — выбить тестовую лабораторию для программистов. Третья задача — сделать их похожими. Понимать, как работало раньше, в предыдущих версиях.

Бывает, что баги живут несколько релизов. Поэтому приоритеты у таких багов, как правило, но не обязательно — ниже, чем у регрессионных.

Понять — как работало в предыдущем релизе — еще одна задача, связанная с настройкой тестовой лаборатории. И не всегда эта задача простая. Ох, не всегда.

Игра «давайте сделаем одну тестовую лабораторию» нередко проходит с крайностями: Раньше и без этого обходились — т.е., и сейчас нам это не нужно. Давайте сделаем все, как на проде — т.е., не важно, сколько времени нам понадобится, не важно, что мы пока не знаем, что именно нужно, но не начнем тестировать, пока не будет все прям как на проде. И вот такие бальные танцы бегемотиков между двумя полярными мнениями порой и называют стратегией развития отдельно взятой тестовой лаборатории. Цена и риски — это два основных существительных в споре.

Тестер: Будет лучше?

Менеджер: Да

Тестер: Сколько мы потратим на это времени или денег?

Менеджер: Нужно тратить деньги и время? Все работы связанные с тестовой лабораторией нужно свести к минимиму:

  • Легко и быстро установить с нуля
  • Легко и быстро переустановить
  • Легко и быстро настроить
  • Легко и быстро скопировать
  • Легко и быстро перегрузить
  • Легко и быстро получить сообщения об ошибках
  • Легко и быстро прочитать логи

Тратить на поддержку тестовой лаборатории мало, ибо есть много других вещей, которые нужно сделать.

От кого берем, куда отдаем

Как войти в новый проект

Построить карту приложения

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

Поиск зависимостей, upstream/downstream приложений — еще один важный вопрос. Ибо это практически то же самое, что искать и разговаривать с клиентом. Понять — можно ли использовать псевдозаменители приложений.

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

  • Выкатиться, не протестировав связку приложений

или

  • Отложить релиз

Псевдозаменители, симуляторы, заглушки — одно из дешевых решений.

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