В каскадной модели разработки ПО тестирование стоит на последнем месте. Бизнес-аналитики и продакт менеджеры часто не понимают, зачем привлекать команду тестирования на ранних стадиях, — продукт ещё даже не готов, стало быть и тестировать нечего. Однако если какой-то из этапов занимает больше времени, чем планировалось изначально, все сроки сдвигаются «вправо» — и расплачиваются за это обычно именно тестировщики. Если вам знакома ситуация, когда за два дня до релиза продакт менеджер в панике просит что-нибудь протестировать, вам следует попробовать методологию shift-left. О том, как с ней работают в ПСБ, мы сейчас расскажем.
Что такое shift-left тестирование, и когда можно его применять?
Shift-left тестирование переводится на русский язык громоздким словосочетанием «сдвиг процессов тестирования влево». Такой подход к работе предполагает, что тестирование начинается не в тот момент, когда разработчики уже написали продукт, а еще на этапах формулировки бизнес-требований, аналитики и разработки.
Зачем на этих этапах нужны тестировщики? Как правило, команда тестирования — это самые большие эксперты во всем продукте, связующее звено между бизнесом и разработкой. Они знают продукт от «А» до «Я» и понимают, как новая логика может его сломать. Вовлечение команды тестирования на ранних стадиях разработки позволяет находить ошибки как можно раньше и исправлять их с меньшими затратами ресурсов. Участие в процессах разработки продукта и формулировки бизнес-требований также будет полезным и для тестировщика — он получит необходимый контекст, который поможет ему грамотно протестировать финальный продукт: составить план тестирования, оценить необходимые объемы и тестовую модель.
Внедрение shift-left методологии в компании не всегда проходит гладко — под нее необходимо переделывать существующие бизнес-процессы, а также, возможно, потребуется пересмотр и расширение задач для всей команды, участвующей в разработке на разных этапах. Shift-left можно применять в любой системе, главное — оценить, на каком этапе она покажет себя наиболее эффективно. Давайте мы рассмотрим несколько ситуаций, когда shift-left помог ПСБ.
![](https://habrastorage.org/getpro/habr/upload_files/d78/369/287/d78369287fb38a3b6d97b093e37f2545.png)
Классическое тестирование в ПСБ
Процесс тестирования в ПСБ построен по стандартной схеме, которая включает в себя пять этапов тестирования:
На стенде разработки пишется и отлаживается программный код, а также проводится юнит-тестирование;
На стенде тестирования проводится функциональное тестирование и тестирование интеграций;
Стенд «препрод» предназначен для регрессионного тестирования и проверки работоспособности программы после внесения изменений;
Наконец, стенд «прод» — основной стенд, которым пользуются конечные пользователи;
Для критически важных систем используются также нагрузочный стенд, который необходим для проверки системы на отказоустойчивость (нагрузочное тестирование) в условиях повышенной нагрузки.
Помимо тестирования при разработке важные системы ПСБ ежегодно проходят DRP-тестирование (disaster recovery program). Это тестирование имитирует падение отдельных элементов системы в результате серьезного инцидента, например, отказа отдельных серверов или дата-центров, нарушения контура безопасности. Таким образом проверяется восстанавливающая способность критически важных систем банка.
Инструментарий тестировщика в ПСБ включает в себя стандартный набор: Postman для тестирования API, системы управления тестированием TestIT. Много времени в ПСБ уделяется тест-дизайну.
![](https://habrastorage.org/getpro/habr/upload_files/554/7c8/a1e/5547c8a1e372b786e3595b177a860c45.png)
Shift-left тестирование в ПСБ
В банковской сфере часто приходится иметь дело со старыми монолитными приложениями. Их очень трудно масштабировать, а сбой в одном из модулей может привести к отказу всего приложения, поэтому банки активно переходят на микросервисную архитектуру. Такой подход позволяет декомпозировать приложение на отдельные сервисы, каждый из которых развивается независимо.
Монолитные легаси-приложения очень сложно покрыть тестами целиком, но при разработке нового продукта можно начать тестирование сразу, с использованием методологии shift-left. В ПСБ на стадии декомпозиции системы для среднего и малого бизнеса команда тестирования смогла вовлечься в процесс разработки и сместить значительную часть проверок «влево», из этапа тестирования в этап разработки. Благодаря этому, скорость разработки выросла, а количество ошибок уменьшилось.
Еще одним примером использования методологии shift-left тестирования в ПСБ может быть тестирование требований. Тестирование требований – это методика выявления ошибок в бизнес-требованиях или технических зданиях на этапе их формирования и разработки. Зачастую при формировании бизнес-требований не учитываются технические детали реализации применительно к системе, идеи рождаются как бы в «вакууме», что очень часто приводит к тому, что конечная реализация не соответствует ожиданиям. Новые фичи таким образом могут быть не согласованы к выпуску, их приходится переделывать, что увеличивает трудозатраты, а значит, и их стоимость.
Тестирование требований с привлечением коллег от тестирования и разработки позволяет заранее обнаружить и исправить эти ошибки, тем самым приводя реализацию фичи к согласованности между всеми участниками процесса – бизнесом и производством.
Другой пример сдвига тестирования влево – привлечение тестировщиков на момент проектирования системы архитекторами. Это дает тестировщикам понимание архитектуры системы и ее работы, а также позволит понять, как архитектура влияет на функционал системы, какие накладывает ограничения. Это позволяет подготовить необходимые тесты заранее, с учетом всех необходимых проверок. Хорошее знание функционала позволит тестировщикам подсветить риск возникновения фундаментальных дефектов проектирования, это может быть очень показательно на системах с микросервисной архитектурой, где сервисы распределены, связаны определенным образом и это все влияет на работу системы.
Заключение
У тестировщика в команде есть одно важное преимущество — представление обо всем продукте целиком, в том числе и в технической составляющей проекта. Тестировщики обладают видением всего продукта, понимают где и в каком случае что-то может пойти не так. Это преимущество необходимо грамотно использовать. Благодаря shift-left тестированию команды могут сохранять вовлеченность и глобальный взгляд на продукт, а тестировщики — оценивать временные затраты на тестирование, предупреждать о возможных проблемах заранее и увеличивать покрытие продукта тестами. ПСБ активно использует shift-left методологию в работе, что позволяет нашему банку уже много лет радовать клиентов безотказным сервисом.
State transition — техника, используемая в тестировании для проверки системы при изменении ее состояния. Благодаря этому методу можно выявить ошибки, возникающие в процессе перехода системы из одного состояния в другое.
Decision table — таблица, в которой строки соответствуют входным данным, а столбцы содержат их возможные значения. С ее помощью можно проверить все возможные комбинации данных и результатов, увеличив покрытие тестирования.
![](https://habrastorage.org/getpro/habr/upload_files/38c/6fd/07a/38c6fd07a64319f9881f6d91a27cc094.png)