5 вопросов про e2е-тестирование

Для запуска большой системы может быть недостаточно функционального и интеграционного тестирования. За обилием технических моментов можно упустить важный для бизнеса аспект, который может заставить отложить запуск вроде бы готового продукта (услуги, предложения). Мы говорим про тестирование бизнес-процесса (end-to-end-тестирование или просто e2e). Рекомендуем проводить его целиком, не фрагментируя на спринты и релизы систем, пройти от и до на тестовой среде без риска для пользователей и инфраструктуры.

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

герой м/с "Футурама"
герой м/с "Футурама"

Когда и кому нужно end-to-end-тестирование

У PO и QA есть инструменты, которые позволяют понимать состояние продукта и процессов. Они тестируют, снимают метрики, планируют и автоматизируют независимую поставку изменений пользователю, чтобы сократить time-to-market и быть готовыми реализовать любые потребности бизнеса.

Рассмотрим поставку бизнес-ценностей на примере Scaled Agile Framework, где взаимодействует много внутренних и внешних систем и сервисов, есть вендоры, разный технологический стек, состав команд, функциональность, а значит и субъективный взгляд на бизнес-ценности, когда каждая команда всё видит «со своей колокольни».

Зачастую бизнес-ценность не укладывается в компетенцию одной команды и даже одной системы. Назовем такую ценность capability (высокоуровневое функциональное решение, которое реализуется за один цикл). Кто отвечает за реализацию capability в нескольких системах и командах? Чтобы это не стало общей ответственностью, у capability должна быть ведущая команда. И ей требуется новый инструмент — end-to-end-тестирование (e2e), которое обеспечит поставку ценности.

E2e проверяет работу бизнес-процесса, проходящего через разные системы, например, от регистрации клиента до закрытия сделки. Кажется, всё просто: определили системы, команды и срок запуска, запланировали и провели. Но давайте разберемся, так ли это.

кадр из м/ф "Вовка в Тридевятом царстве"
кадр из м/ф "Вовка в Тридевятом царстве"

Внедрение e2e: как не наступить на грабли

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

И вот QA-специалистов просят оценить задачу «на тестирование» capability, которое реализуется, например, в течение четырех спринтов в трех командах и четырех системах. При этом оценить нужно свою часть тестирования, учитывая имеющиеся ресурсы. Хорошо, если оценивает QA-лид, который имеет опыт тестирования разных систем. При этом PO и аналитики уже проработали зависимости и знают, кто будет участвовать в e2e. Хорошо, если у всех есть опыт е2е-тестирования, всё учтено, и бизнес знает, чего хочет или всегда готов к диалогу. К сожалению, так бывает не всегда.

Рассмотрим ситуацию, когда команда системы «Г», которая поддержала зависимость по capability, проводит подготовку к квартальному планированию. Так может выглядеть диалог PO и QA:

  • У нас планируется e2e по сделкам в армянских драмах. Давайте оценим.
  • А что нужно проверить? – робко интересуется QA.
  • Что сделка в драмах закрывается.
  • А чем это отличается от других сделок? – не унимается QA.
  • Валютой.

QA думает: «Боже, я каждый день на тесте закрываю сделок на 10 млн рублей и на 12 в тенге. Тут что-то не так», – а сам спрашивает:

  • А для чего e2e?
  • Сайт локализуют для Армении и их команда – ведущая в e2e.
  • У них в команде есть QA? Нужен будет его контакт.
  • Да, конечно.
  • Наша доработка по новым валютам уже на проде за фичатогглом (feature toggle – переключатель, настройка доступности функционала на проде). Пусть будет 2 сторипойнта с учетом коммуникаций и оформления отчета.

Дальше всё будет так, как бывает, когда нет тест-плана: забыли включить в тестирование одну из систем, начали е2е до того, как исправили баги и не закрыли сделки. В итоге, в системе «Б» весь спринт проходился раз за разом один и тот же сценарий. В следующем спринте тестирование завершили. Об успешном «сквозном» тестировании сообщили на демо.

Что сделали не так?

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

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

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

В результате такое е2е-тестирование не только тратит ресурсы нескольких команд, но и не достигает цели. Затраты могут быть не оценены, как при планировании, так и в итоге. И пока неясно, по каким метрикам оценивать эффективность e2e, важно должным образом к нему подготовиться, чтобы снизить потери и риски.

ЛАЙФХАК: о тест-дизайне capability можно написать отдельный материал, но опыт показывает, что оптимально использовать попарное и парное тестирования. Первое позволит учесть максимум требований в разных системах. При этом покрытие будет достаточным, так как тестирование релизов проводится параллельно. Парным тестированием (именно QA из разных систем) следует пройти хотя бы один сценарий. Свежий взгляд позволит заметить то, что могли забыть или пропустить.

Подготовка: как сделать эффективнее

В идеале подготовку к e2e при участии QA нужно начинать до планирования и оценки задач. QA могут запросить доступы к тестовым стендам смежных систем, получить тестовые устройства и настроить инструменты. Важно провести установочную встречу с QA из всех привлекаемых команд. Желательно «пройти» бизнес-процесс с аналитиком или с клиентом, который погрузит QA и даст представление о бизнес-ценности.

ЛАЙФХАК: если организовать встречу с клиентом сложно, то это может быть созвон QA-специалистов, работающих в разных системах. Объединив знания о продукте, они смогут получить необходимые сведения для дальнейшего планирования.

Главное – у QA ведущей команды должна собраться информация, которая нужна для проведения тест-дизайна и постановки цели тестирования:

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

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

  • организация, составление тест-кейсов, плана и отчета;
  • прохождение сценариев;
  • утверждение тест-кейсов и проверка результатов в своей системе;
  • настройка тестовых стендов или подготовка тестовых данных.

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

Как доступы могут сэкономить ресурсы

Прекрасно, когда есть все доступы. Можно ввести данные в систему «А» и в ней же, как пользователь, видеть результат, после обработки данных в «Б» и «В». Затем взять тестовое устройство и под другой ролью в системе «Г» продолжить и завершить процесс. В итоге проверить его артефакты в «А» и «Д». Это e2e-тестирование выполняет один специалист — без потерь на коммуникации и синхронизацию между QA из разных команд.

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

Поскольку в тестировании могут участвовать вендоры и команды без QA, доступы помогают концентрировать ответственность и делать коммуникации функциональными.

Запуск: без чего не обойтись

Итак, мы практически подготовили тест-план, получили понимание о бизнес-процессе и представление о цели тестирования. На этом этапе есть сценарии, участники, их роли. На квартальном планировании мы расставили и обсудили зависимости, оценили задачи на разработку, e2e и настройку стендов, возможно даже запланировали «окно», когда настройки нельзя ломать. Теперь мы знаем:

  • цель тестирования относительно бизнес-процесса;
  • что и где будет и не будет проверяться;
  • что и где нужно сделать, чтобы начать проходить сценарии;
  • сами сценарии.

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

ЛАЙФХАК: тест-план не обязательно представляет из себя документ. Можно создать чат, задачу или страницу в confluence для фиксации договоренностей и обмена артефактами, или в системе управления тестами, например, в Test Rail. Важно не пренебрегать коммуникациями, чтобы не только следовать плану, но и вовремя его корректировать.

Исходя из количества неизвестных можно определить критерии завершенности e2e. Например, не обязательно всем участникам проводить ретест по некритичным дефектам или тестировать доработки одной из систем, необходимость которых выявил e2e. Всё это важно обсудить с участниками, зафиксировать в плане. Тогда e2e не станет черной дырой для ресурсов.

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

Подведем итоги

Своевременное подключение QA позволит не потерять бизнес-ценность в ходе e2e-тестирования.

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

Погружение QA в бизнес-процесс позволит запланировать e2e оптимальным образом:

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

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

На уровне команд: ресурс одной не будет тратиться на тестирования функциональности в другой, так как разграничены степень участия и определены критерии начала (готовности). Прописанные критерии завершенности (Definition of Done, DoD) позволят понять, в какой момент общая задача готова и начинаются доработки и исправления в отдельной команде.

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

Больше интересных кейсов — на нашем сайте.

1414
2 комментария

E2E-тестирование (End-to-End тестирование) - это процесс проверки работы всей системы, включая все ее компоненты и зависимости, в условиях, максимально приближенных к реальным. Оно позволяет убедиться в правильной работе всех компонентов системы и их взаимодействии без ошибок. E2E-тестирование проводится перед выпуском продукта в продакшн, чтобы выявить возможные проблемы и устранить их до того, как пользователи столкнутся с ними. Для проведения тестирования используются специальные инструменты, которые автоматизируют процесс и ускоряют его. Это помогает быстро выявлять ошибки и повышать качество продукта, что улучшает пользовательский опыт.

1

По моему самый простой вариант подготовки.
1. Изучить основы e2e тестирования ПО.
2. Ознакомиться с инструментами, такими как Selenium WebDriver, Protractor, TestCafe.
3. Создать простой проект и написать несколько простых тестов.
4. Изучить документацию и примеры кода для выбранного инструмента.
5. Попрактиковаться в написании более сложных тестов.
6. Изучить методы отладки тестов и умение находить и исправлять ошибки.
7. Написать тест-кейсы и план тестирования для своего проекта.
8. Проверить работу своих тестов на различных браузерах и устройствах.
9. Изучить лучшие практики и советы по e2e тестированию.
10. Следить за новыми разработками в области e2e тестирования.

1