Новая веха в ALMФормирование портфеля продуктов для управления жизненным циклом приложений (Application Lifecycle Management, ALM) началось для Hewlett-Packard еще в 2006 году с приобретением компании Mercury Interactive, которая первоначально занималась тестированием совместимости программного и аппаратного обеспечения сторонних разработчиков. В 1991 году Mercury вышла на рынок с первым в мире инструментарием для автоматизации процессов тестирования приложений, и, несмотря на то что первые инструменты были достаточно просты, они оказались востребованы рынком. К середине 90-х продукты Mercury уже стали официальным стандартом тестирования программного обеспечения во многих ведущих компаниях-разработчиках. Успеху продуктов Mercury способствовала и «Проблема 2000 года», поднявшая волну модернизации и тестирования унаследованных приложений. Вовремя обратив внимание на набирающую силу электронную коммерцию, в Mercury также предложили решения для тестирования интернет-приложений.

Компания не ограничивалась задачей автоматизации тестирования и расширила спектр предложений, добавив к своему продуктовому портфелю системы для управления качеством и производительностью работы приложений, рисками и расходами на ИТ, а также для проверки соответствия правовым нормам. Еще одной сферой интересов Mercury стала сервисная архитектура (Service Oriented Architecture, SOA), что подвигло ее к приобретению в 2006 году Systinet, пионера технологии SOA Governments. Сейчас продукты Systinet входят в платформы SOA всех ведущих производителей решений интеграции. В 2006 году сама Mercury была приобретена НР. Пакет ALM, входящий в продуктовый стек Business Technology Optimization (BTO), был представлен на тот момент уже своей восьмой версией.
В 2007 году в состав НР вошла компания SPI Dynamics, а ее программный продукт WebInspect стал базой для решения НР Application Security Center. Позже в 2010 году была приобретена компания Fortify, дополнившая стек ALM пакетом инструментов для тестирования безопасности.
После завершения череды приобретений HР выпустила девятую и десятую версии пакета ALM, которые содержали скорее косметические изменения и не давали заказчикам возможности понять направления дальнейшего развития наследия Mercury. Развеять сомнения, очевидно, предстоит версии ALM 11, выпущенной в конце 2010 года и обещающей стать для НР новой вехой в развитии этого направления ПО. Около 30% компонентов, представленных в ALM 11, — это новые решения, еще 60% были существенно модифицированы, а остальные были переведены на новые платформы. В результате был создан полноценный стек продуктов автоматизации всех этапов жизненного цикла приложений, от разработки и тестирования до внедрения и эксплуатации (рис. 1).
 
Рис. 1. Предметная область ALM

 

ALM: версия НР

Решение HP ALM 11 призвано ликвидировать разрывы во взаимодействии между различными подразделениями и командами, а также рабочими процессами, относящи­мися к планированию проектов, управлению требованиями, разработке и тести­рованию, управлению качеством и готовностью приложений к выпуску. На протяжении всего жизненного цикла приложений (рис. 2) все задачи должны плавно переходить от одного этапа к другому, а изменения при этом быть прозрачными для всех участников проекта, что помогает сократить сроки подготовки приложений к выпуску, избежать недопонимания и связанных с этим лишних затрат.
 
Рис. 2. Подход НР к управлению жизненным циклом приложений

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

В ALM 11 поддерживается любая методика разработки приложений, среди которых Waterfall и Scrum. Поскольку методы «скорой» (agile) разработки сейчас приобретает все большую популярность, заказчикам ALM 11 предлагается готовое решение для скорых проектов — HP Agile Accelerator (текущая версия — 4.0). Данный пакет-акселератор устанавливается на платформу Quality Center (базовую часть пакета ALM 11) и содержит все необходимые формуляры, методики, процессы, права пользователей, отчеты, графики и пр.
 

Возможности ALM 11

Основная идея ALM 11 — организация сквозного управление изменениями, подкрепленного возможностями для коллективной работы и средствами гарантированного обеспечения качества выпускаемых продуктов.
 
Рис. 3. Структура пакета ALM 11

 

Управление требованиями

Управление требованиями — «путеводная нить» ALM, которая используется на каждом этапе жизненного цикла приложений, связывая с помощью единого централи­зованного хранилища описания задач бизнеса, приложения для их реализации, управление качеством и безопасностью, причем все это с поддержкой версионности самих требований, программных кодов и тестов. Точно и полно описанные требования к реализации задач бизнеса позволяют изначально правильно расставить приоритеты и сосредоточиться на удовлетво­рении важнейших бизнес-потребностей, помогая принимать решения на основе взвешенной оценки рисков, поэтому модуль HP Requirements Management — основной компонент ALM 11.

В области управления требованиями в версии ALM 11 имеется возможность интеграции с платформой ARIS для моделирования бизнес-процессов, что позволяет тестировать практически любые бизнес-процессы, а не только полностью автоматизированные, но включающие в себя в качестве отдельных этапов любые физические действия (подписание бумажного документа, взвешивание товара на весах и т.п.). Описания бизнес-процессов импортируются в ALM 11 из ARIS в виде XML-файлов, а каждой ветви процесса ставится в соответствие свой набор тестов.

Кроме описания требований в собственном внутреннем формате ALM 11 в виде строк с набором типовых реквизитов (автор, дата, приоритет), которые использовались для связи с наборами тестов и трассировкой в отчетности, в ALM 11 имеются инструменты импорта/экспорта требований в обычные текстовые документы с использованием различных преднастроенных шаблонов, составленных, например, в Microsoft Word. Это облегчает поддержку документооборота в актуальном состоянии в соответствии с принятыми в компании регламентами и требованиями стандартов. Тесная взаимозависимость между требованиями и наборами тестов позволяет проводить анализ готовности релиза к выпуску, например, в виде графика, отражающего процент покрытия набора требований пройденными (или не пройденными) на текущий момент тестами.

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

Разработка

У НР нет собственной среды разработки, что, однако, подается не как пробел или недостаток, а как дополнительный фактор гибкости и независимости, позволяющий одинаково легко и успешно работать с любыми современными языками программирования. Для разработчиков в ALM 11 предусмотрен инструментарий, позволяющий в единой среде выстраивать сквозные процессы взаимодействия между бизнес-аналитиками, архитекторами и проектировщиками, менеджерами проекта, тестировщиками, ответственными за безопасность и другими участниками проекта. Не выходя из своей среды разработки, программист может просматривать список поставленных перед ним задач, изменять их текущий статус (исправлена, будет исправлена в следующем релизе и пр.), комментировать передаваемые ему сообщения об ошибках (например, причина, по которой этот дефект не может быть сейчас устранен).

При необходимости решение ALM 11 может быть интегрировано со сторонней системой управления исходными программными кодами (Source Code Management). Например, если в нескольких файлах необходимо исправить код, связанный с одной и той же ошибкой, то можно зафиксировать сделанные изменения в журнале, запомнить их автора и время внесения изменений и связать их с описанием конкретной ошибки. Таким образом, версионность программного кода увязывается с версионностью требований и тестов. Кроме того, подробная история изменений может оказаться полезной с учетом сложности большинства современных проектов и распространенности проблемы текучести кадров.

Тройное тестирование

В ALM 11 имеются средства автоматизации тестирования трех видов: функциональное (ручное и автоматизированное), нагрузочное и тестирование защищенности на уровне приложения.

Управление ручным тестированием осуществляется с помощью инструментов для описания ошибок, написания сценариев тестов, ввода данных, распределения задач между тестировщиками и оценки результатов, однако эти инструменты не обеспечивают процессу ручного тестирования желаемой четкости, скорости и удобства. В ALM 11 включено решение Sprinter, повышающее качество ручного тестирования путем автоматизации многократно повторяющегося ввода тестовых данных, а также поддерживающее зеркальное тестирование — одновременное выполнение тестов в нескольких рабочих средах (например, на разных операционных системах или в разных браузерах), что радикально сокращает сроки тестирования. Кроме того, Sprinter позволяет делать снимки экрана и комментировать их, записывать видео, фиксировать результаты тестов и передавать разработчикам сообщения об ошибках. Все это помогает свести к минимуму риски непонимания между участниками проекта и делает процесс ручного тестирования прозрачным и контролируемым.

С помощью Sprinter может быть реализован метод «свободного поиска», особенно популярный в скорых методиках. Этот метод эффективен в случаях, когда нет возможности формально описать все требования к разрабатываемому продукту и, следовательно, подготовить исчерпывающие наборы тестов. При таком подходе приложение на определенных стадиях готовности передается на тестирование пользователям, ответственным за бизнес-задачу, а затем отправляется на доработку в соответствии с их пожеланиями и обнаруженными недостатками. Как правило, этот процесс проходит несколько итераций, за которые продукт постепенно приобретает желаемое качество.
Для проведения автоматизированных тестов в состав ALM 11 включен продукт QuickTest Professional, позволяющий проверять качество реализации сложных процессов, обеспечивая независимое друг от друга тестирование отдельных шагов, которые потом будут связаны между собой в единое целое. Описание таких процессов «рисуется» по принципу буксировки, что делает этот инструмент достаточно наглядным. Кроме того, QTP адаптирован для тестирования приложений Web 2.0, что предполагает выполнение большого объема действий не на сервере, а на стороне клиента.
 
Для нагрузочного тестирования предлагается два инструмента: LoadRunner, запускаемый на одном ПК, и более мощное средство корпоративного уровня — Performance Center, предназначенное для крупных компаний, имеющих богатую гетерогенную ИТ-инфраструктуру. Благодаря механизму записи и воспроизведения на раз­личных архитектурных уровнях (от уровня графи­ческого пользовательского интерфейса до уровня транспорта и сокетов) данные инструменты позволяют приме­нить рабочую нагрузку к тестовой среде, а затем фиксировать время реакции конечных пользователей при выполнении операций основных бизнес-процессов и транзакций, чтобы установить, соблюдаются ли соглашения об уровнях обслу­живания (Service Level Agreement, SLA) и достигаются ли бизнес-резуль­таты.
 
В ALM 11 добавлена технология TruClient для проверки работоспособности приложений Web 2.0, которая встраивается непосредственно в браузер, записывает выполняемые пользователем действия и сразу же визуально их отображает, что облегчает понимание и корректировку. Созданные таким образом сценарии используются для генерации нагрузки на сервер. Другой модуль — Diagnostics позволяет выявлять узкие места на уровне Java-кодов или SQL-запросов, а непосредственно в процессе отработки теста выдает рекомендации по оптимизации.
В версии ALM 11 можно отметить календарь для планирования выполнения тестов, что позволяет командам разработчиков резервировать промежутки времени для тестов и исключить накладки во время проведения важных испытаний. Учитывая, что в многокомандной среде сложно управлять общими ресурсами, в том числе и площадкой для проведения нагрузочных испытаний, данная функция может оказаться достаточно полезной. При ручном запуске теста система автоматически блокирует временное окно в календаре и по заданным параметрам теста вычисляет его длительность.
 
Для наблюдения за поведением системы в процессе нагрузочного тестирования в ALM 11 предлагается инструмент SiteScope, осуществляющий постоянный мониторинг всех слоев инфраструктуры в рабочей среде: можно «нарисовать» топологию системы, отобразить все Web-серверы, серверы приложений и баз данных, сетевые компоненты и пр. Подключенные к этим объектам мониторы SiteScope позволяют в реальном времени контролировать нагрузку на каждый компонент инфраструктуры, оценивать его работоспособность в конкретных условиях и с помощью индикаторов-«светофоров» графически отображать эти показатели вместе с основными параметрами системы. Таким образом можно выявить слабые места и обнаружить компоненты, которые необходимо усовершенствовать или перенастроить для повышения производительности системы.
 
Инструменты ALM 11 позволяют решать задачи тестирования безопасности приложений, рассматривая продукт как «черный ящик» (с помощью WebInspect) и анализируя его исходные коды (используя продукты Fortify). Cканер безопасности WebInspect предназначен для оценки защищенности Web-служб и приложений, позволяя выявить большинство существующих уязвимостей и сформировать отчет об обнаруженных «дырах». Кроме того, WebInspect обнаруживает дефекты, связанные с нарушением доступа к персональным данным. Интеграция WebInspect с инструментами Fortify позволяет проследить выявленную ошибку вплоть до строчки в исходном коде.

Внедрение и эксплуатация

В самом ALM 11 нет инструментов управления внедрением приложений, поэтому HP предлагает для этих задач другие свои продукты, построенные на принципах ITIL. Существует также ряд партнерских решений, автоматизирующих создание в виртуализованной среде тестовых площадок, непосредственно интегрируемых с ALM. В состав ALM 11 входят средства управления версиями, помогающие менеджерам определить объем задач для конкретного релиза с учетом имеющихся ограничений по срокам и финансовым затратам. Можно построить график работ, определить контрольные точки, отслеживать ключевые показатели в привязке к заданным срокам и т. п. Привязка сроков к требованиям и тестам позволяет эффективно распределять ресурсы и избежать лишней работы (например, отложить тестирование исправлений, которые решено не включать в текущую версию). Особенно полезны эти инструменты при подготовке комплексных релизов, когда одновременно выпускается целый пакет взаимосвязанных продуктов и необходимо согласовать между собой большое число изменений, координируя их по срокам.
Завершая разговор о жизненном цикле приложений, нельзя обойти финансовый вопрос, который проявляется в двух аспектах: учет расходов на разработку и внедрение и управлени закупками нового оборудования. Здесь потребуется интеграция ALM с модулем Asset Management (пакет ITFM) и решением Project & Portfolio Management.

Управление SOA

Продукты SOA Systinet позволяют управлять всем комплексом корпоративных ИТ с точки зрения сервисов и их жизненного цикла: от возникновения, согласования и утверждения до эксплуатации, контроля безопасности и эффективности и интеграции в единый ландшафт SOA. Основу SOA Systinet составляют расширя­емое хранилище и пользовательская среда, которые вместе упрощают процесс описа­ния и публикации сервисов, использование их как отдельных компонентов приложений, а также внедрение и исполнение различных политик. SOA Systinet умеет автоматически обнаруживать сервисы в ИТ-среде, выявлять связи между ними, отображать их структуру в наглядном графическом виде и оценивать соответствие текущим бизнес-потребностям.
Продукт HP SOA Systinet востребован в США и Европе, где для многих крупных компаний он стал одним из основных инструментов управления ИТ, и хотя в России пока нет промышленных проектов на его основе, этим решением уже заинтересовались заказчики из банковской сферы и телекоммуникаций, традиционно эксплуатирующие десятки тысяч внутренних и внешних сервисов.
 

Проблемы и ограничения

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

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

ALM для Delta Air Lines

Для авиакомпании Delta Air Lines технологии самообслуживания пользователей через Интернет стали сегодня основой ведения бизнеса: все приложения и службы, связанные с составлением маршрутов и приобретением билетов, должны безотказно работать в любой ИТ-среде и при обращении с любого устройства.

До внедрения ALM вся тестовая документация ограничивалась ведением журнала дефектов: описания тестов хранились в обычных текстовых файлах и электронных таблицах, поэтому все эти тесты были одноразовыми и запускались вручную. С помощью HP Quality Center и QuickTest Professional были автоматизированы 250 типовых тестовых сценариев, которые можно запускать удаленно и по расписанию (в том числе назначить их проведение на ночное время). Сотрудникам при этом не приходится дежурить на рабочем месте и контролировать выполнение тестов — система сама формирует отчеты о выявленных ошибках. В результате сроки тестирования удалось сократить на 52%, и сегодня большая часть рабочего времени сотрудников, отвечающих за качество приложений, уходит на подготовку к внедрению новых продуктов, а не на доработку и повторное тестирование старых кодов. После объединения авиакомпаний Delta и Northwest на ИТ-службу легла двойная нагрузка по сопровождению и интеграции ПО обеих компаний. Использование HP LoadRunner облегчило выполнение нагрузочного тестирования, и подготовленная инфраструктура успешно справилась с дополнительным трафиком, бесперебойно обслуживая клиентов обеих компаний. Для проверки защищенности приложений в Delta Air Lines внедрили модуль WebInspect, который помогает тестировщикам анализировать причины дефектов, выявляемых в системе безопасности, и передавать программистам подробное описание ошибок. «Внедрение WebInspect позволяет нам реагировать на инциденты практически мгновенно», — утверждает Дэвид Мозес, ответственный за качество ПО Self-Service & CRM компании Delta Air Lines.