Использование подхода «сдвиг влево»: революция в обеспечении качества при разработке программного обеспечения

Использование подхода «сдвиг влево»: революция в обеспечении качества при разработке программного обеспечения

26 декабря 2023 г.

Добро пожаловать!

Сегодня наше внимание будет сосредоточено на практике ==Shift-Left== и причинах ее необходимости.

В постоянно меняющемся мире разработки программного обеспечения традиционный подход к обеспечению качества (QA) претерпел значительные изменения. Эта метаморфоза была вызвана появлением подхода «сдвиг-влево» — смены парадигмы, которая изменила определение ландшафта обеспечения качества, пропагандируя раннее и непрерывное участие в процессах обеспечения качества на протяжении всего жизненного цикла разработки программного обеспечения.

Здесь вы можете наблюдать расходы, понесенные из-за ошибок зависимостей, в зависимости от этапа, на котором мы их обнаруживаем. Очевидно, что чем раньше обнаружена ошибка, тем меньше понесенные затраты. Устранение проблем в документации до начала разработки оказывается более экономичным, чем устранение осложнений на этапе после выпуска.

Cost to fix bugs

А что именно Shift-влево?

Shift Left methodology

Суть ==Shift-Left== заключается в его фундаментальном отходе от традиционного линейного прогресса разработки с последующим тестированием. Вместо этого он поддерживает интеграцию методов обеспечения качества прямо с начальных этапов, встраивая тестирование в каждый этап разработки. Эта проактивная стратегия направлена ​​на обнаружение и исправление дефектов по мере их появления, что резко снижает вероятность того, что проблемы усугубятся и закрепятся на более поздних стадиях разработки программного обеспечения.

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

Shift-Left на практике

Shift-Left on Practice

Это процесс разработки, который был реализован мной.

Этап спецификации продукта:

  • Иногда участие в тестировании начинается после этого этапа. С помощью Shift-Left QA присоединяется к обсуждению, чтобы заранее понять требования. Сотрудничество с владельцем функции дает QA понимание этой функции, и QA может начать писать тестовую документацию.

Этап технической спецификации:

  • QA сотрудничает с дизайнерами/разработчиками/системными архитекторами для проверки дизайна и взаимодействия между сервисами (другими словами, контрактами API).

Этап кодирования:

  • Отделы контроля качества и разработчики должны разработать сценарии счастливого пути. Только после того, как разработчики успешно справятся с этими сценариями, отдел контроля качества может взяться за эту задачу.
  • Разработчики и специалисты по контролю качества тесно сотрудничают друг с другом для создания систем автоматического тестирования наряду с разработкой кода.
  • Все регрессионные автотесты должны быть успешно пройдены перед передачей задачи в отдел контроля качества.

Раннее тестирование:

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

Этап тестирования:

  • Планы тестирования должны быть написаны для каждой функции. Этот документ должен содержать все ответы — каков текущий статус функции:
  • Каково тестовое покрытие (единица/интеграция/e2e)
  • Сколько открытых ошибок? (приоритизированы и сгруппированы по критичности)
  • Что нам нужно делать в случае отката?
  • Нефункциональное тестирование (какова ожидаемая нагрузка на сервер и сможем ли мы быстро восстановиться, если сервис выйдет из строя?)
  • Есть ли у нас все необходимые технические показатели и оповещения?
  • Документация должна быть актуальной после завершения разработки и тестирования.
  • Все функции должны быть проверены владельцем функции перед развертыванием в рабочей среде.

Этап развертывания:

  • Проверка работоспособности в рабочей среде.
  • Отслеживание аномалий совместно с разработчиками (например, с помощью Grafana и других инструментов)

Проблемы и выводы

Однако успешная реализация ==Shift-Left== не лишена проблем. Принятие этого подхода требует культурного сдвига внутри организаций, требующего инвестиций в инструменты, обучение и переориентацию мышления (не все разработчики любят писать автотесты :усмешка: ). Кроме того, для раннего обнаружения проблем требуется надежная система автоматизации тестирования и стратегия упреждающего тестирования, обеспечивающая баланс между автоматическим и ручным тестированием для достижения оптимальных результатов.

На фоне этих проблем привлекательность Shift-Left остается привлекательной. Его проактивный характер идеально соответствует требованиям современной разработки программного обеспечения, формируя парадигму, в которой качество не является второстепенным вопросом, а является неотъемлемой частью всего процесса разработки.

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


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE