О чем спрашивать, унаследовав тест-автоматизацию |
11.01.2022 00:00 |
Автор: Деннис Мартинез (Dennis Martinez) Погружение в уже идущий проект с целью помочь с автоматизацией может быть непростой задачей. Чем раньше вы зададите правильные вопросы, тем выше шансы на успех. Как контрактник и консультант, я в том числе помогаю организациям улучшить тест-автоматизацию и покрытие существующих проектов. Я также сталкивался с этой ситуацией, работая на полную ставку – меня просили помочь другим командам с внедрением автотестов. Немножко концентрации, немножко организации тестирования – и проект на грани провала встает на уверенный путь к долгосрочному успеху, это всегда потрясающее зрелище. Проекты, которые я наследовал, варьировали от хорошо описанных и развитых в своей области продуктов до проектов, находящихся в состоянии грубых черновиков и требующих заботы и внимания. Некоторые проекты уже внедрили хорошие тест-практики, и все, что им было нужно – немного калибровки, чтобы получить максимум от существующих процессов. В других проектах тест-процессы практически не были поставлены – ни автоматизированные, ни иные – и они требовали куда больше внимания. В любом проекте по разработке ПО вы найдете смесь хороших и плохих практик. Вне зависимости от типа вашего наследного проекта и того, работаете ли вы как фрилансер, консультант или полноценный сотрудник, вам нужно понимать текущее состояние проекта до того, как вы приступите к работе. Как можно раньше полученное знание, во что вы ввязываетесь – это один из факторов успеха. Правильная информация, полученная с самого начала, даст вам наилучший шанс на достижение целей команды. Если вы присоединяетесь к новому проекту, то, скорее всего, получите от команды массу информации, помогающей вам приступить. Однако этой информации часто недостаточно, чтобы получить полное представление о том, почему компания пригласила вас в проект, и что именно нужно сделать. Детали любой документации теряют актуальность или теряются вообще по мере развития проекта. В результате у всех есть лишь частичная картина текущего состояния проекта. Вам нужно задавать правильные вопросы, чтобы выявить специфику всего, что с шансами отсутствует в документации. Ниже – ряд полезных вопросов, которые можно задать, чтобы успешно достичь проектных целей. Вопрос 1. Чего вы ожидаете от меня? Для большинства проектов это довольно общий вопрос, но на самом деле это мощное средство для старта любого взаимодействия. Обсуждение ожиданий на старте позволит всем знать, куда вам следует направиться. Ответ также может дать вам массу информации о том, на чем концентрироваться, и вы сможете хорошо стартовать и поддерживать темп на протяжении всего проекта. Как правило, у организации есть список задач и проблем, над которыми вам нужно поработать. Если вы его получили, то это хороший знак. Зачастую это означает, что компания потратила хоть немного времени, размышляя над тест-автоматизацией и ее пользой для проекта. Эти размышления сильно упростят вашу работу, потому что вас с шансами поддержат в ваших решениях. Однако не удивляйтесь, если в ответ повиснет гнетущая тишина. Вы можете обнаружить, что вы первый, кто спросил, что нужно сделать, чтобы внедрить сильные процессы тестирования. Иногда компании имеют общее представление об автоматизации и знают, что она им поможет, но не знают, как получить этот результат. В этом случае объяснять придется вам. Расскажите им, что автоматизация может и не может сделать для их проекта, объясните потенциальные решения, - станет яснее, что они получат в результате. Делайте все возможное, чтобы убедиться, что в ходе проекта не возникнет сюрпризов. Вопрос 2. Как сейчас выглядит ваша автоматизация? Главная задача этого вопроса – понимание текущего состояния тестирования в проекте. Вам надо знать, что уже внедрено и как оно работает, чтобы лучше понимать свою задачу. Это как инвентаризация в магазине, торгующем физическими предметами – вам надо знать свои запасы, прежде чем начать их пополнять. Знание, что у компании уже есть, прояснит вам дальнейший путь. Если компания нанимает вас, или вы подключаетесь к существующему проекту для помощи с автоматизацией, то с шансами у них нет хороших процессов, и им нужен ваш опыт. Возможно, у них есть полусырой процесс, который плохо работает. В некоторых случаях у них не будет ничего. В конце концов, если бы у них уже была хорошо настроенная и работающая автоматизация, вас бы не пригласили в проект. Ответ на этот вопрос в основном помогает вам сконцентрироваться на том, с чего нужно начать. Зная существующие процессы и возможности, вы не будете тратить на них время. Вы также сбережете время на внедрение задач, требующих предварительных условий. К примеру, нет смысла внедрять непрерывную интеграцию или поставку в проекте, в котором нет стабильной тест-автоматизации. Это как закладывать кирпичи в стену, поддерживающую другую структуру – выгоднее всего настраивать новые процессы для поддержки уже имеющихся. Вопрос 3. Какие главные области нужно покрыть автотестами? Вопрос, какие области проекта организация считает высокоприоритетными, поможет вам понять, что важнее всего для успеха ее продукта. Начать с приоритезации этих областей – хорошая идея, потому что эти области должны быть надежными, как скала, и иметь минимальные повреждения. Любая автоматизация этих областей даст максимальную выгоду и поможет вам быстро атаковать болевые точки, а в результате клиент или менеджер будет счастлив. Вопрос также полезен, потому что он с шансами выявит потенциальные проблемные места, о которых вам следует знать. По моему опыту критическая функциональность, для которой нет автотестов – стопроцентный знак того, что тестируемость проекта низкая. Это может быть сложный участок приложения с множеством перемещающихся частей, или хрупкая база кода, разваливающаяся от малейшего изменения. Неважно, в чем причина – это следует знать, чтобы изолировать риски и закладывать дополнительное время на разрешение этих проблемных ситуаций. Задавая этот вопрос, стоит опасаться размытых ответов вроде "нам нужно автоматизировать все!" или "Я не знаю, я думал, вы мне расскажете?" Эти ответы означают, что компания все еще не очень понимает, что автоматизация может сделать для проекта, и надеется, что вы решите все ее проблемы при помощи автотестов. На этом этапе нужно вернуться на пару шагов назад и рассказать им про тест-автоматизацию, управляя их ожиданиями. И вы, и компания должны кристально ясно понимать, что происходит, если вы хотите, чтобы работа приносила пользу. Вопрос 4. Как сейчас организовано взаимодействие разработки и QA? Даже если вас пригласили в проект как QA-специалиста или единственного инженера-автоматизатора, вы не должны считать, что работаете в одиночку – и от вас не должны этого требовать. Тестирование – командный труд, и к нему должны подключаться члены команды из разных областей. Вам нужно знать, какой вклад в тестирование вносят отделы сейчас. Эта информация поможет вам понять, нужно ли вам становиться мостиком между разными командами, чтобы добиться требуемой в тестировании помощи. Так как разработка и QA – это две основные ответственные за качество финального продукта группы, то начать нужно с их взаимодействия. В идеале между ними есть некоторый уровень постоянного взаимодействия – например, регулярные встречи или совместная работа над проблемами и баг-репортами. Можно также поинтересоваться, насколько QA вовлечены в другие области – продукт или дизайн, однако разработка и тестирование тесно взаимосвязаны просто по природе разработки ПО. Вначале проверьте, как связаны эти два отдела. К сожалению, разногласия между тестировщиками и разработчиками – не редкость. Если это ваш случай, это сильно затруднит вашу работу, если проблемы не будут сглажены. Возможно, вы не сможете исправить все напрямую, особенно если пришли со стороны. Однако обсуждение этого вопроса с вовлеченными лицами даст им пищу для размышлений. Иногда все, что нужно командам – это признать, что их подход не очень хорош, и они найдут решение. Заключение Подключение к проекту, дабы помочь с тест-автоматизацией существующего проекта или усилить ее – задача зачастую непростая. Помимо того, что вы погружаетесь во что-то новое, вам придется лавировать по существующим процессам, предубеждениям и другим невидимым силам, которые могут столкнуть вас с пути. Если вы заранее зададите правильные вопросы, это поможет вам справиться с проблемами на дальнейшем пути. Спросите, чего от вашей работы ожидает организация, и заранее установите планку ожиданий. Иногда они не знают ответа, поэтому прояснить его – ваша задача. Выясните, какие инструменты уже используются, чтобы не терять время на существующие процессы или работу, требующую предварительной подготовки. Не игнорируйте существующие взаимодействия между членами команды – тестирование должно быть командной работой. Без посторонней помощи ваши задачи вряд ли сильно помогут делу. Эти вопросы и ответы на них – лишь некоторые примеры того, о чем нужно спросить до начала работы. Ваши обстоятельства могут потребовать другого набора вопросов, лучше подходящего к ситуации. Коммуникация в таких случаях очень важна, и хорошие вопросы всегда дадут вам всю нужную для успеха информацию. Неважно, о чем вам нужно узнать – ключевой фактор тут в достижении понимания на старте, а также передаче этого понимания тем, кому вы помогаете. |