Использование подхода «сдвиг влево»: революция в обеспечении качества при разработке программного обеспечения
26 декабря 2023 г.Добро пожаловать!
Сегодня наше внимание будет сосредоточено на практике ==Shift-Left== и причинах ее необходимости.
В постоянно меняющемся мире разработки программного обеспечения традиционный подход к обеспечению качества (QA) претерпел значительные изменения. Эта метаморфоза была вызвана появлением подхода «сдвиг-влево» — смены парадигмы, которая изменила определение ландшафта обеспечения качества, пропагандируя раннее и непрерывное участие в процессах обеспечения качества на протяжении всего жизненного цикла разработки программного обеспечения.
Здесь вы можете наблюдать расходы, понесенные из-за ошибок зависимостей, в зависимости от этапа, на котором мы их обнаруживаем. Очевидно, что чем раньше обнаружена ошибка, тем меньше понесенные затраты. Устранение проблем в документации до начала разработки оказывается более экономичным, чем устранение осложнений на этапе после выпуска.
А что именно Shift-влево?
Суть ==Shift-Left== заключается в его фундаментальном отходе от традиционного линейного прогресса разработки с последующим тестированием. Вместо этого он поддерживает интеграцию методов обеспечения качества прямо с начальных этапов, встраивая тестирование в каждый этап разработки. Эта проактивная стратегия направлена на обнаружение и исправление дефектов по мере их появления, что резко снижает вероятность того, что проблемы усугубятся и закрепятся на более поздних стадиях разработки программного обеспечения.
Раннее привлечение практик обеспечения качества дает организациям множество преимуществ. Главным из них является сокращение времени выхода на рынок. Выявляя и устраняя проблемы на ранних этапах цикла разработки, этот подход уменьшает накопление дефектов, уменьшая необходимость в обширной доработке на более поздних этапах. Кроме того, сочетание клавиш Shift-Left способствует развитию культуры постоянного совершенствования, обеспечивая итеративные улучшения и более адаптируемый процесс разработки, который точно соответствует меняющимся потребностям пользователей.
Shift-Left на практике
Это процесс разработки, который был реализован мной.
Этап спецификации продукта:
- Иногда участие в тестировании начинается после этого этапа. С помощью Shift-Left QA присоединяется к обсуждению, чтобы заранее понять требования. Сотрудничество с владельцем функции дает QA понимание этой функции, и QA может начать писать тестовую документацию.
Этап технической спецификации:
- QA сотрудничает с дизайнерами/разработчиками/системными архитекторами для проверки дизайна и взаимодействия между сервисами (другими словами, контрактами API).
Этап кодирования:
- Отделы контроля качества и разработчики должны разработать сценарии счастливого пути. Только после того, как разработчики успешно справятся с этими сценариями, отдел контроля качества может взяться за эту задачу.
- Разработчики и специалисты по контролю качества тесно сотрудничают друг с другом для создания систем автоматического тестирования наряду с разработкой кода.
- Все регрессионные автотесты должны быть успешно пройдены перед передачей задачи в отдел контроля качества.
Раннее тестирование:
- Компания QA начинает выполнять тесты разработанных функций параллельно с текущей разработкой.
- Постоянная обратная связь и отчеты об ошибках разработчикам позволяют немедленно вносить исправления.
Этап тестирования:
- Планы тестирования должны быть написаны для каждой функции. Этот документ должен содержать все ответы — каков текущий статус функции:
- Каково тестовое покрытие (единица/интеграция/e2e)
- Сколько открытых ошибок? (приоритизированы и сгруппированы по критичности)
- Что нам нужно делать в случае отката?
- Нефункциональное тестирование (какова ожидаемая нагрузка на сервер и сможем ли мы быстро восстановиться, если сервис выйдет из строя?)
- Есть ли у нас все необходимые технические показатели и оповещения?
- Документация должна быть актуальной после завершения разработки и тестирования.
- Все функции должны быть проверены владельцем функции перед развертыванием в рабочей среде.
Этап развертывания:
- Проверка работоспособности в рабочей среде.
- Отслеживание аномалий совместно с разработчиками (например, с помощью Grafana и других инструментов)
Проблемы и выводы
Однако успешная реализация ==Shift-Left== не лишена проблем. Принятие этого подхода требует культурного сдвига внутри организаций, требующего инвестиций в инструменты, обучение и переориентацию мышления (не все разработчики любят писать автотесты :усмешка: ). Кроме того, для раннего обнаружения проблем требуется надежная система автоматизации тестирования и стратегия упреждающего тестирования, обеспечивающая баланс между автоматическим и ручным тестированием для достижения оптимальных результатов.
На фоне этих проблем привлекательность Shift-Left остается привлекательной. Его проактивный характер идеально соответствует требованиям современной разработки программного обеспечения, формируя парадигму, в которой качество не является второстепенным вопросом, а является неотъемлемой частью всего процесса разработки.
В заключение отметим, что подход ==Shift-Left== представляет собой кардинальную трансформацию методологий контроля качества, переопределяющую контуры качества программного обеспечения. Поскольку организации сталкиваются со сложностями предоставления безупречного программного обеспечения в быстро меняющейся среде, принятие Shift-Left становится не просто вариантом, но и стратегическим императивом. Принятие этого подхода знаменует собой новую эру, в которой стремление к качеству сочетается с импульсом инноваций, что ведет организации к совершенству в разработке программного обеспечения.
Оригинал