banner

Новости

Nov 05, 2023

Применение теста

Домашняя страница InfoQ Новости Применение разработки через тестирование в облаке

Этот товар на японском языке

25 мая 2023 г., чтение на 4 минуты

к

Бен Линдерс

В облаке разработка приложений может осуществляться комплексно с сопутствующей инфраструктурой. Это позволяет использовать разработку через тестирование (TDD) и рефакторинг всего приложения, что может снизить затраты на обслуживание.

Михал Свобода выступит с докладом о разработке облачных приложений через тестирование на XP 2023. Эта конференция пройдет 13–16 июня в Амстердаме, Нидерланды.

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

Задержка и асинхронный характер облака могут стать проблемой. Ожидание выделения ресурсов или истечения тайм-аутов препятствует быстрому циклу TDD. Свобода предлагает перейти на модель инкрементного обновления, т.е. не уничтожать ресурсы в конце каждого теста и иметь чистое развертывание только при интеграции:

Методы ускорения тестирования были взяты из нашего набора трюков TDD. Несколько примеров — тактическое использование тестов на основе состояния или тестирование только измененных частей кода. Стоит помнить, что препятствия в тестировании обеспечивают полезную обратную связь для всего цикла разработки. Эта обратная связь заставила нас тщательно взвесить нашу архитектуру и процедурный выбор.

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

InfoQ взял интервью у Михала Свободы о разработке облачных технологий с использованием TTD.

InfoQ: Как облако повлияло на то, как мы предоставляем инфраструктуру?

Михал Свобода : с помощью API облачные ресурсы можно создавать и уничтожать полностью автоматически. (Строго говоря, это не просто облако. Облачные провайдеры просто делают эту функцию чрезвычайно доступной.) Нам не нужно думать об «инфраструктуре», как в случае с серверами и сетями, существующими независимо от приложений. «Инфраструктура» больше не требует особого подхода.

Помимо классической инфраструктуры облако предоставляет узкоспециализированные услуги, такие как хранилище, функции или потоки. Многие облачные приложения не просто работают в облаке, они состоят из облака.

InfoQ: Как вы осуществляете разработку облачных приложений через тестирование?

Свобода : TDD облачных приложений аналогичен TDD других приложений. Вместо вызова конструкторов и функций для создания объектов в памяти мы вызываем API для создания ресурсов в облаке. Тест «организовать, действовать, утвердить» для ресурса потока показан в псевдокоде ниже:

[Проверьте, что поток можно записывать и читать]

Это очень простой функциональный тест. Тесты на основе состояния можно выполнять с помощью вызовов API, которые «запрашивают конфигурацию» ресурсов. Более сложные настройки ресурсов можно протестировать по тому же принципу.

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

InfoQ: С какими проблемами вы столкнулись и как вы с ними справились?

Свобода : Имеющиеся инструменты были проблемой. Чтобы этот подход TDD в облаке работал хорошо, код развертывания ресурсов должен быть первоклассным на выбранном языке программирования. Современные инструменты предоставляют интерфейсы командной строки для модели на своих языках в виде «облачного Makefile». Поскольку эти инструменты следуют парадигме «отдельной инфраструктуры», взаимодействие с ними может оказаться затруднительным. Это также была отличная обратная связь на ранних этапах нашей разработки, которая повлияла на наши решения по инструментам и поставщикам.

ДЕЛИТЬСЯ