2019/09/03 12:12:17

Непрерывное тестирование для бизнеса:
как сократить time to market и сохранить качество ПО

ИТ-команды всё больше задумываются о внедрении непрерывного тестирования (continuous testing, CT), но лишь единицы достигают успеха в его реализации. Чаще всего неудачи связаны с неверной постановкой целей, выбором подрядчиков с недостаточной экспертизой, отсутствием финансовой поддержки и доверия со стороны руководства. Как компаниям ускорить выпуск новых продуктов, сохранив при этом качество ПО? Разберёмся в этом вопросе вместе с экспертами a1qa, которые протестировали более 1000 программных продуктов.

Содержание

Предпосылки возникновения подхода continuous testing и его актуальность

Программное обеспечение – один из факторов, который позволяет получить конкурентные преимущества на рынке. Именно поэтому появился и остаётся актуальным глобальный тренд по цифровизации.

Конкурентные преимущества получает тот, кто:

  • внедряет новые ИТ-системы и улучшает текущие быстрее других;
  • при этом способен обеспечить высокий уровень качества ПО.

Иными словами, в процессе разработки ИТ-систем важны 'гибкость', 'скорость' и 'качество'. Ниже мы поговорим о том, как их достичь.

Continuous testing для бизнеса: как сократить time to market и сохранить качество ПО

Использование Agile

Agile – это эталонная методология разработки, применение которой необходимо для обеспечения гибкости. Для больших трансформационных программ используется наиболее популярная её адаптация – SAFe (Scaled Agile Framework).

Внедрение DevOps

Набор практик DevOps нацелен на то, чтобы помогать организациям быстрее создавать и обновлять программные продукты и услуги. В рамках DevOps реализуется CI/CD pipeline (Continuous Integration (CI) – непрерывная интеграция, Continuous Delivery (CD) – непрерывная доставка).

Применение continuous testing

Что касается качества, то относительно недавно появился подход continuous testing (CT), который направлен на обеспечение качества в условиях повышенных скоростей. Часто под CT понимают процесс запуска автоматизированных тестов в рамках CI/CD pipeline с целью исключить бизнес-риски при выпуске системы в продуктив. Действительно, автоматизация тестирования занимает здесь центральное место, но это лишь часть подхода. СТ закрывает весь жизненный цикл ПО, начиная с unit-тестов и заканчивая функциональным мониторингом.

Специалисты a1qa отмечают, что наиболее эффективные реализации непрерывного тестирования подразумевают покрытие автоматизированными тестами более 85%. При этом важная роль отводится unit-тестам, API-тестам. Доля тестов через пользовательский интерфейс сильно сокращается, закрывая только сквозные сценарии для проверки критической функциональности.

Что предусмотреть при внедрении continuous testing?

Проработать бизнес-цели

Правильно поставленная цель – залог успеха. В процессе реализации вы будете влиять на смежные процессы; вам потребуются инвестиции в инфраструктуру. Чтобы заручиться поддержкой от коллег и руководства, важно понимать, как continuous testing сможет работать на бизнес-цели вашей компании.

Приведём пример такой связки из практики.

  • Один из клиентов a1qa ставил цель расширить долю рынка.
  • Сделать это планировалось, в том числе за счёт ускорения выпуска новых продуктов (t2m, time to market).
  • Была поставлена задача сократить t2m в 7 раз за 2 года. Для этого был запущен трансформационный проект, в ходе которого изменился ИТ-ландшафт, были применены принципы SAFe и реализован CI/CD.
  • При этом остро встала проблема обеспечения требуемого уровня качества. Для её решения использовали подход непрерывного тестирования. Одними из целевых показателей была продолжительность запуска автоматизированных тестов, процент покрытия.

Реализовать минимально жизнеспособный продукт и масштабировать решение

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

Упрощённо шаги по внедрению continuous testing выглядят следующим образом:

1. Определение целевых показателей, связь с бизнес-целями компании.
2. Оценка стоимости и необходимых ресурсов.
3. Прототипирование решения, оценка готовности к масштабированию.
4. Масштабирование.

В идеальных условиях реализация этапов 1-3 занимает около трёх месяцев. Масштабирование определятся сложностью ПО и возможностями подрядчика по увеличению проектной команды. Это один из обязательных критериев, которые необходимо учитывать при выборе партнёра по качеству.

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

Вывод

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