Оптимизация разработки с помощью сценариев

Источник: ibm

Возможности сценариев

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

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

Результаты работы инфраструктуры автоматизации сводятся в отчеты для взаимодействия с группой разработчиков:

  • Подробная информация о реализации
  • Подробная информация об ошибках
  • Текущее состояние

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

Автоматизация процесса разработки полезна для текущего проекта, а ее реализация также служит основой для оптимизации жизненного цикла разработки будущих проектов.

Преимущества процесса автоматизации

  • Снижение стоимости разработки
  • Снижение затрат на обслуживание
  • Уменьшение количества ошибок
  • Повышение качества кода
  • Готовность к выполнению изменений

Существует множество инфраструктур автоматизации (или IDE) различных производителей, но сценарии дешевле и проще в изучении, внедрении и обслуживании. Эти преимущества существенны для разработчиков, занимающихся сложными программными системами, поскольку найти готовые решения по автоматизации непросто. Сценарии можно использовать с платформами и методиками гибридной разработки, их можно адаптировать под различные требования организаций и приложений. Например, представьте себе Java-систему, которую нужно протестировать на двух различных платформах (iOS и Linux). Центральный тестовый компьютер может подключиться к двум подопытным машинам с разными платформами, установить тестируемую систему и выполнить одинаковые контрольные тесты.

Рекомендации по использованию сценариев для автоматизации

По существу, сценарий представляет собой последовательность команд. Для создания специализированной инфраструктуры автоматизации с использованием сценариев необходимо выполнить три основных шага:

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

Выделение строительных блоков

Этот первый шаг имеет решающее значение. Анализ и планирование архитектуры и потока работ является основой построения эффективной инфраструктуры автоматизации.

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

Идентификация задач для автоматизации

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

  • Повторяющиеся действия по управлению исходными кодами
  • Непрерывная интеграция
  • Форматирование файлов
  • Анализ исходного кода
  • Автоматическое тестирование
  • Нагрузочное тестирование
  • Формирование отчетов

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

Определение корректного интерфейса вызова

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

В качестве языков сценариев часто используются Python, JavaScript, Ruby, Perl, Bash и Korn Shell. Иногда логика автоматизации может оказаться сложной, а ее реализация при помощи сценариев проблематичной. В этом случае полезно выделить сложную часть и реализовать ее на распространенном языке программирования универсального назначения, например Java или C++. Затем можно сгенерировать исполняемый файл для этой части логики и вызывать его из сценария. Кроме того, в одной инфраструктуре автоматизации можно использовать несколько языков сценариев, как показано на рисунке 1.

Рисунок 1. Пример гибридной инфраструктуры автоматизации

Рисунок 1. Пример гибридной инфраструктуры автоматизации 

Специализированная инфраструктура автоматизации в действии

Представленные здесь рекомендации являются результатом моей работы в группах глобализации и локальной поддержки. Нам приходилось ежегодно поддерживать сотни языков. При исполнении вручную это потребовало бы огромного объема работы по редактированию, компоновке и тестированию. Такая работа могла бы занять недели и даже месяцы.

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


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=37843