![]() |
+7 (495) 229-0436 | ![]() |
shopadmin@itshop.ru | 119334, г. Москва, ул. Бардина, д. 4, корп. 3 | ![]() |
![]() |
![]() |
![]() |
|
|
Применение продукта Rational Quality Manager в конвейере непрерывного выпуска в рамках концепции DevOps14.10.2016 16:49
Автоматизированное тестирование является важной частью конвейера непрерывного выпуска в рамках концепции DevOps. Написать скрипты автоматизации тестирования и организовать их вызов после установки очередной сборки - это достаточно легко. Гораздо труднее поддерживать выполнение группы тестов, осуществлять техническое сопровождение машин для выполнения этих тестов и вести историю результатов тестирования. Эта совокупность задач способна привести в уныние любого специалиста, если для их решения он использует лишь ANT и файлы свойств. В статье описывается процесс применения API-интерфейса ANT для вызова скриптов автоматизации тестирования (test script). Этот подход облегчает поддержку выполнения тестов, техническое сопровождение машин для выполнения тестов и ведение истории результатов тестирования. Продукт IBM® Rational® Quality Manager служит центром коллективной работы по планированию тестирования и управлению его результатами. Как показано на рис. 1, продукт Rational Quality Manager входит в состав решения Rational Solution for Collaborative Application Lifecycle Management, основанного на платформе Jazz™. С помощью продукта Rational Quality Manager можно поддерживать выполняемые в автоматическом и ручном режиме тестовые сценарии (test case), отслеживать соответствие тестовых сценариев требованиям, а также управлять изменениями, например, в соответствии с планами устранения дефектов и планами разработки. Этот продукт хорошо интегрируется с продуктами от других поставщиков. Рисунок 1. Продукты Collaborative Lifecycle Management![]() Понятие фаз непрерывной реализацииНепрерывный выпуск или непрерывная интеграция - это практическая методика, в которой процесс между проверкой программного кода (далее - "код") и развертыванием готового программного продукта на производственном сервере осуществляется в автоматическом режиме. Как правило, между этими двумя фазами не требуется никого вмешательства в ручном режиме. В большинстве случаев между созданием программного кода и его развертыванием имеются различные фазы (см. рис. 2).
Рисунок 2. Простой конвейер выпуска![]() Добавление ворот качестваЧаще всего группы разработки программного обеспечения пользуются хорошо известными системами сборки. Эти системы охватывают диапазон от создаваемых вручную скриптов на ANT и Perl, оркеструющих процесс сборки, до более изощренных коммерческих продуктов, соответствующих концепции DevOps. Ворота качества можно реализовать вне зависимости от типа используемой системы сборки. Эта статья ориентируется на наиболее распространенную ситуацию, когда группы располагают средствами сборки и развертывания, предоставляющими программируемые механизмы отладки/диагностирования кода на различных языках (ANT, Rake, Jython, простой Java™), или какими-либо другими средствами, например, Maven или Hudson. Создание скрипта автоматизацииСтрого говоря, скрипт автоматизации не является обязательной частью процесса добавления ворот качества, однако это критически важный аспект обеспечения качества. В большинстве случаев у разработчиков уже имеются скрипты тестирования, которые они выполняют в своих средах разработки с целью валидации тех или иных функций. Обычно эти скрипты создаются при посредстве какой-либо платформы для написания тестов с использованием таких инструментов практикующего тестировщика, как Selenium, Java JUnit, Rational Functional Tester, HP QTP или других инструментов. Каждый тестовый модуль должен быть достаточно гранулярным, чтобы обеспечить содержательную валидацию конкретного отказа. Следует избегать тестов со слишком широким охватом, поскольку выявляемый с их помощью дефект оставляет под подозрением значительную часть функциональности создаваемого продукта. С другой стороны, следует избегать слишком узкоспециализированных тестов, поскольку они весьма затрудняют написание осмысленных сценариев тестирования (test scenario). В данной статье для иллюстрации используется пример скрипта тестирования, написанный на Java JUnit; однако подход можно распространить и на другие типы скриптов тестирования. Определение скрипта тестированияПосле создания скрипта тестирования начинайте подключать его к продукту Rational Quality Manager, чтобы среда Rational Quality Manager смогла выполнить этот скрипт. Продукт Rational Quality Manager использует концепцию типа скрипта (script type). Каждый тип скрипта соответствует компоненту исполнения под названием адаптер теста (test adapter). В примере на рис. 3 скрипт имеет тип JUnit or Selenium, который используется для указания на тест веб-драйвера Selenium и на тест JUnit. В конвейере непрерывного выпуска JAR-файл скрипта тестирования устанавливается на тестовой машине. Настройка адаптера теста описывается в следующем разделе. Рисунок 3. Создание скрипта тестирования в среде Rational Quality Manager![]() Определение тестового сценарияКак показано на рис. 4, вам нужно добавить скрипт тестирования (test script) продукта Rational Quality Manager к тестовому сценарию (test case) продукта Rational Quality Manager. Тестовый сценарий - это базовый исполняемый объект в среде Rational Quality Manager. Результаты выполнений теста сохраняются со ссылкой на соответствующий тестовый сценарий. Эта запись носит название test case execution results (результаты исполнения тестового сценария). Рекомендуется поддерживать взаимно однозначное соответствие между тестовым сценарием и скриптом тестирования, а также присваивать им одинаковые имена. Адаптер теста можно специфицировать в процессе исполнения. Тестовые сценарии можно группировать по категориям. Категории могут оказаться весьма полезными, если впоследствии вы захотите создать отчеты для определенных продуктов, для определенных компонентов или для любой другой формы группирования по вашему выбору. Рисунок 4. Создание тестового сценария Rational Quality Manager![]() Создание комплектов тестовКомплект тестов (test suite) в Rational Quality Manager (см. рис. 5), - это способ агрегации набора тестовых сценариев. Комплекты тестов позволяют разработчику управлять набором скриптов автоматизации тестирования, которые он хочет выполнить для определенных ворот качества. Например, комплект тестов под названием Build Verification Tests (тесты для верификации сборки) может представлять собой набор скриптов тестирования, позволяющих быстро выявить в приложении дефекты т. н. "зеленых" потоков (green threads). Если создаваемое приложение имеет пользовательский интерфейс, то комплект тестов может включать в себя набор автоматических тестов пользовательского интерфейса, воспроизводящих его важнейшие функции. Рекомендуется применять этот комплект тестов к сборке перед ее передачей на следующую фазу. Кроме того, у вас может быть другая серия комплектов тестов, которые более детально проверяют каждую основную функцию. Например, соответствующий набор тестов API-интерфейса может тестировать обеспечивающие REST-интерфейсы. При выполнении комплекта тестов вы сможете добавить в него все необходимые вам тестовые сценарии. Рисунок 5. Комплект тестов![]() Создание TSER-записей (test suite execution record)Для созданных вами комплектов тестов нужно создать TSER-запись (test suite execution record - запись выполнения комплекта тестов) (см. рис. 6). Как правило, у разработчика уже есть план тестирования (test plan). Добавьте свой комплект тестов к этому плану тестирования. Для каждого плана тестирования нужно создать одну TSER-запись. Рисунок 6. Создание TSER-записей![]() Установка и развертываниеЭтот шаг обычно выполняется вашими средствами поддержки процесса непрерывного выпуска. Для этого вы можете применить пользовательский скрипт сборки IBM® uDeploy® или инструмент, подобный Chef, который устанавливает сборку после ее успешного создания из исходного кода. На этой фазе вы должны установить свое приложение и необходимые тестовые активы (в том числе все Junit-классы и все нужные JAR-файлы) в известном местоположении на целевой машине. Это местоположение используется при определении скрипта тестирования Rational Quality Manager на более позднем шаге. Если вы используете скрипты автоматизации тестирования, например, созданные с помощью IBM® Rational® Functional Tester, вы также можете использовать опцию общего ресурса, поддерживаемую адаптером Rational Functional Tester, чтобы сделать тестовые активы доступными для целевой машины. Адаптер продукта Rational Quality ManagerВ состав продукта Rational Quality Manager входит компонент под названием адаптер (adapter). Это удаленный компонент, который обычно устанавливается на тестовой машине. Этот адаптер взаимодействует с сервером Rational Quality Manager и вызывает скрипты тестирования, которые продукт Rational Quality Manager дает указание выполнять. Затем результаты выполнения этих тестов передаются обратно в Rational Quality Manager. Установка надлежащего адаптераВ этой фазе установки также устанавливается вышеупомянутый адаптер Rational Quality Manager. Если вы пишете скрипты с помощью JUnit/Selenium, то вам нужно установить адаптер Selenium JUnit; если используете Rational Functional Tester, то вам нужно установить адаптер Rational Functional Tester. Указывая имя адаптера при конфигурировании, используйте полностью определенное доменное имя машины, на которой исполняется адаптер. Такой подход облегчает идентификацию адаптера, подлежащего использованию при выполнении тестового сценария и комплекта тестов. Использование API-интерфейса ANT продукта Rational Quality Manager для вызова тестовВозможно, вашим основным средством является ANT-скрипт. Продукт Rational Quality Manager предоставляет API-интерфейс на базе ANT под названием Rational Quality Manager Execution Tool, позволяющий вызывать на исполнение записи выполнения скрипта тестирования и записи выполнения комплекта тестов. Вызов инструмента Rational Quality Manager Execution Tool осуществляется из файла build.xml, ассоциированного с конкретными воротами качества. Идентификатор используемой TSER-записи сохраняется как свойство в ассоциированном файле свойств. Например, код в листинге 1 вызывает интеграционные тесты Rational Quality Manager. Листинг 1. Вызов интеграционных тестов Rational Quality Manager<executeTestSuiteExecRecord userId="${rqmUser}" passwordFile="${root}/${rqmPasswordFile}" rqmServerUrl="${rqmServerUri}" projectName="${rqmProjectName}" testSuiteExecRecordId="${rqmTestSuiteERId}" suiteStepAdapterIds="${testClientServer}" arguments="-passVariables=true -exitOnComplete=true -variables=com.ibm.rqm.oslc.test.serverHost:${deployedServer},server:$ {deployedServer},buildLabel:${buildLabel}" />
Любую информацию о конфигурации или о выполнении можно передать в тесты с помощью опции Используйте результаты для перехода к следующему шагу циклаПосле того как выполнение завершено, ANT-задача инструмента Rational Quality Manager Execution Tool задает два свойства, отражающие состояние выполнения и ссылку на результаты выполнения. Это свойства
В листинге 2 показан пример кода для записи результата и его URL-адреса в журнальный файл. Листинг 2. Запись результатов в журнальный файл<echo file="${root}/QMIntegrationTestsLog.txt" > Verdict: ${rqmExec:verdict} Execution Result: ${rqmExec:result_url} </echo>
В листинге 3 показан пример кода для настройки свойства на основе состояния исполнения. Листинг 3. Настройка свойства на основе состояния исполнения<condition property="QMExecStatus" value="OK" else="ERROR"> <equals arg1="${rqmExec:verdict}" arg2="com.ibm.rqm.execution.common.state.passed"/> </condition>
В листинге 4 демонстрируется присоединение журнального файла к записи сборки. Листинг 4. Присоединение журнального файла к записи сборки<logPublisher repositoryAddress="${repositoryAddress}" userId="${jazzUserId}" passwordFile="${jazzPasswordFile}" buildResultUUID="${buildResultUUID}" filePath="${root}/QMIntegrationTestsLog.txt" label="QM Integration Test Log" status="${QMExecStatus}" />
В листинге 5 демонстрируется присоединение ссылки на результаты теста к записи сборки. Листинг 5. Присоединение результатов к записи сборки<linkPublisher repositoryAddress="${repositoryAddress}" userId="${jazzUserId}" passwordFile="${jazzPasswordFile}" buildResultUUID="${buildResultUUID}" url="${rqmExec:result_url}" label="Rational Quality Manager Execution Result" componentName="Rational Quality Manager Execution Result" /> Анализ результатовПосле начала цикла тестирования для конкретной сборки можно перейти из раздела Test Suite Result (результат комплекта тестов) в раздел Test Case Result (результат тестового сценария) и посмотреть на результаты (см. рис. 7). (Ссылка на результат комплекта тестов добавляется к сборке с помощью Рисунок 7. Подробные результаты тестового сценария![]() После накопления достаточного объема результатов данные можно подвергнуть углубленному анализу. Эта возможность доступна только в таких инструментах управления качеством, как Rational Quality Manager (без такого инструмента разработчику доступны только файлы результатов в файловой системе). Например, инструмент управления качеством позволяет рассмотреть состояние выполнения по категориям (см. рис. 8). Категории описываются в разделе Определение тестового сценария. Рисунок 8. Анализ результатов по категориям![]() ЗаключениеПродукт Rational Quality Manager предоставляет весьма структурированный и удобный способ управления тестами, выполняемыми в конвейере непрерывного выпуска согласно концепции DevOps. Этот продукт можно использовать при поэтапном построении полнофункционального DevOps-предложения без необходимости каких-либо переделок. Управление тестовыми сценариями и анализ результата тестирования -два весьма существенных преимущества по сравнению с написанием скриптов тестирования в ручном режиме с помощью обычных средств сборки. |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
О нас |
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.
На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям. Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе. В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.
|
119334, г. Москва, ул. Бардина, д. 4, корп. 3 +7 (495) 229-0436 shopadmin@itshop.ru |
|
© ООО "Interface Ltd." Продаем программное обеспечение с 1990 года |