Коротко про Shift Left Testing

Коротко про Shift Left Testing

t.me/qa_chillout

В традиционном подходе к разработке программного обеспечения тестирование проводится на завершающих стадиях разработки. Однако в последние годы становится все более популярным подход «Shift Left Testing», который предлагает переместить тестирование на более ранние этапы жизненного цикла разработки ПО. Это позволяет обнаруживать и устранять дефекты на более ранних стадиях, что способствует улучшению качества продукта и снижению затрат на исправление ошибок.


Shift Left Testing – это методология разработки программного обеспечения, при которой тестирование выполняется как можно раньше в процессе разработки. Название «Shift Left» (сдвиг влево) связано с тем, что на временной шкале процесса разработки (от планирования до выпуска продукта) тестирование сдвигается ближе к началу.

Преимущества Shift Left Testing

  1. Shift-left testing позволяет предусмотреть и предотвратить часть ошибок, поскольку тестовая документация проектируется до начала разработки. Это способствует выявлению и устранению ошибок на ранних стадиях, что значительно дешевле и менее трудозатратно по сравнению с исправлением ошибок, обнаруженных на поздних этапах разработки или уже в продакшене.
  2. Все участники проекта, включая разработчиков, тестировщиков и аналитиков, становятся более вовлеченными в процесс обеспечения качества.

Основные практики Shift Left Testing

1. Анализ требований и тестирование

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

2. Интеграция тестирования в процесс разработки

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

3. Автоматизация тестирования

Автоматизация позволяет проводить тесты на каждом этапе разработки, начиная с самого раннего. Это помогает быстро выявлять дефекты и снижать трудозатраты на ручное тестирование.

4. Разработка через тестирование (TDD)

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

5. Непрерывная интеграция (CI)

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


Процесс внедрения Shift Left Testing

Внедрение Shift Left Testing требует комплексного подхода и изменений в процессах разработки и тестирования. Рассмотрим этапы внедрения такого подхода.

1. Изменение мышления команды

Первый шаг к внедрению Shift Left Testing – это изменение культуры и мышления команды. Важно, чтобы вся команда, включая разработчиков, тестировщиков, аналитиков и менеджеров, осознала важность раннего тестирования и была готова изменить свои привычные подходы к работе.

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

2. Вовлечение тестировщиков на ранних этапах

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

3. Интеграция автоматизации

Автоматизация тестирования является ключевым элементом Shift Left Testing, позволяющим быстро и эффективно проводить тесты на всех этапах разработки.

4. Применение методик TDD и BDD

Разработка через тестирование (TDD) и разработка, основанная на поведении (BDD), помогают интегрировать тестирование в процесс разработки на самых ранних стадиях.

  • TDD – написание тестов перед написанием кода позволяет разработчикам сосредоточиться на создании функционала, который соответствует требованиям тестов.
  • BDD – используйте BDD для создания тестов, которые описывают поведение системы с точки зрения конечного пользователя. Это помогает лучше понять требования и ожидания от продукта.

5. Коммуникация

Коммуникация между всеми членами команды являются критически важными для успешного внедрения Shift Left Testing.

6. Постоянное улучшение процессов

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

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


Применение Shift Left Testing на примере добавления новых эндпоинтов в API.


Традиционная модель

Ситуация: Требуется обновить API, добавив новые эндпоинты.

Шаги:

  1. Разработка новых эндпоинтов.
  2. Тестирование новых эндпоинтов после завершения разработки и создание автотестов при их наличии.
  3. Проверка взаимодействия с существующими модулями после деплоя.

Результат:

  • Потрачено время на тестирование – 3 часа.
  • Возможны проблемы с интеграцией, выявленные на поздних этапах.


Модель Shift Left

Шаги:

  1. Обсуждение изменений API с разработчиками и аналитиками на этапе проектирования.
  2. Создание тестовых сценариев на основе требований к новым эндпоинтам.
  3. Автоматизация тестирования новых эндпоинтов.
  4. Тестирование интеграции новых эндпоинтов с существующими модулями на ранних стадиях разработки.

Результат:

  • Потрачено время на тестирование – 3 часа, однако в данном случае тестирование погружено глубже в процесс разработки фичи, в детали и у вас больше уверенности, что ничего не забыли и реализованный функционал не поломал существующий.
  • Предотвращены проблемы с интеграцией (частично или полностью) благодаря раннему тестированию.


Гибридный подход

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


Преимущества гибридного подхода:

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


Заключение

Shift Left Testing – весьма современный подход к тестированию, который позволяет улучшить качество программного обеспечения и снизить затраты на его разработку. Внедрение этой методологии требует изменения мышления команды, обучения новым практикам и инструментам, а также интеграции тестирования на всех этапах разработки. Shift Left Testing помогает создавать более качественные и стабильные продукты, ускоряет время выхода на рынок и повышает удовлетворенность клиентов.

Обсудить статью, узнать больше можно в телеграм канале «Тестировщики нужны».

Report Page