В первой части своей статьи на Highload я рассказывал о финансовом обосновании инвестиций в автотесты. Теперь сосредоточимся на том, как построить процесс оценки выгоды от автоматизации тестирования.
Поверьте, заинтересовать клиента в этом вопросе можно не только экономией денег.
Вместе с проектным менеджером, QA, разработчиком продукта и экспертом по автоматизации вы должны пройти несколько этапов. Вот они.
Прежде всего, нужно понять, готов ли проект к покрытию тест-кейсами. На старте это невозможно, но можно на будущее предусмотреть для автоматизации необходимые технические возможности.
В некоторых случаях почти невозможно автоматизировать тесты (например, видео). Иногда автоматизация неоправданно сложна или дорога (для той же капчи). Оцените весь объем усилий по внедрению автоматизации.
Для этого расспросите разработчиков о технологиях, используемых в приложении. В идеале у вас должен быть полноценный стек.
Следует знать интерфейсы взаимодействия с системой и ее архитектуру, понимать, реально ли предсказать ожидаемое поведение системы. На базе собранных данных продумайте варианты реализации автотестов. Можно даже создать Proof of Concept.
Это основной этап, когда у вас будет прогноз оправдания инвестиций. Говорить о конкретных показателях вряд ли стоит.
На одном проекте вы сможете продать автоматизированные тесты при 3%, а на другом и 20% будет мало.
Иногда автоматизация тестирования имеет смысл даже при ROI меньше нуля. Просто здесь целесообразность автотестов измеряется не в финансовой плоскости. Больше об этом расскажу дальше.
Для начала нужно ответить себе на три вопроса:
Чем больше вы можете сами себе объяснить, тем лучше вам удастся разработать тест-план и выделить приоритетные направления автоматизации. На основе этих ответов вы сможете правильно подобрать стек технологий и построить роадмап.
А главное — это покажет заказчику ваше понимание бизнес-целей, что может положительно сказаться на обсуждении вашего предложения.
Деньги — не единственная «приманка» инвестиций. Некоторые компании позволяют себе не экономить бюджеты. Но в общем-то любые инновации на проекте клиенты воспринимают как риск. Они нуждаются в вводе в команду новых ролей, сложных процессов и потоков данных. Поэтому прибыльному бизнесу невысокий ROI не всегда интересен. Для таких заказчиков необходимо искать другие преимущества автоматизированного тестирования.
Достаточно погуглить, и вы увидите десятки исследований, подчеркивающих выгоды от такого тестирования. Я же хочу выделить несколько наиболее важных, на мой взгляд.
Заказчик будет быстрее получать релизы благодаря тому, что паузы между разработкой, поиском дефектов и их устранением станут короче.
Автоматизированное тестирование длится гораздо меньше по сравнению с мануальным. При этом обратная связь в команде становится более плотной.
Разработчику не нужно тратить много времени на изучение своего кода, который он писал несколько недель или даже месяцев тому назад. В результате получим удешевление багов и всей разработки.
Название этой модели означает, что тестирование смещается по временной шкале слева. В качестве примера можно вспомнить подход Test Driven Development, когда тесты пишутся еще до начала разработки функционала.
В идеале автоматизированное тестирование проходит сразу после написания кода. Например, при наличии smoke-тестов
С автотестами регрессионное тестирование можно проводить чаще при разработке. Сами же регрессии будут менее «болезненными». Ведь автоматизированное тестирование стандартизовано и исключает человеческий фактор. Так что риски появления ошибок и их возврат значительно ниже, чем при мануальном тестировании. К тому же, более частые запуски не приведут к существенному повышению стоимости проекта.
Внедрение автоматизации позволяет разработчикам создать инструменты, которые упростят тестирование.
Благодаря активному взаимодействию девелоперов и тестировщиков может появиться совершенно новый функционал для тестирования.
К примеру, айдишники в UI, с которыми проще написать локаторы при создании автотестов. Или программы, которые создают сущности в системе, чем обычно занимаются мануальные QA. Таким образом специалисты могут сосредоточиться на других, более сложных задачах. И это опять же позволит оптимизировать бюджеты.
С появлением автоматизации на мануальном проекте QA смогут приобщиться к новому виду тестирования. Они познакомятся с новыми технологиями и подходами, возьмутся за интересующие их задачи и будут развиваться в новых направлениях. При автоматизации рутинных тестов мануальные специалисты могут сосредоточиться на поиске необычных и дорогостоящих ошибок в системе. Так что автоматизация тестов — это еще и простор для развития команды.
Напоследок мой простой совет: будьте честными. Если видите, что выгода от автоматизированного тестирования на проекте невелика или есть риски, прямо говорите об этом. Клиенты ценят прозрачность и честность.
Ваша открытость станет шагом к построению доверительных отношений с заказчиком. А это уже основа для продолжительного и плодотворного сотрудничества.
В благословенные офисные времена, когда не было большой войны и коронавируса, люди гораздо больше общались…
Вот две истории из собственного опыта, с тех пор, когда только начинал делать свою карьеру…
«Ты же программист». За свою жизнь я много раз слышал эту фразу. От всех. Кто…
Отличные новости! Если вы пропустили, GitHub Copilot — это уже не отдельный продукт, а набор…
Несколько месяцев назад мы с командой Promodo (агентство инвестировало в продукт более $100 000) запустили…
Пару дней назад прочитал сообщение о том, что хорошие курсы могут стать альтернативой классическому образованию.…