Содержание


Повышение качества модульного тестирования путем интеграции eclEmma и Rational Team Concert

Comments

В первом разделе статьи описываются преимущества интеграции EclEmma (широко используемого Java™-инструмента покрытия с открытым исходным кодом для Eclipse) и IBM® Rational Team Concert™. Эта интеграция способствует росту уровня покрытия, повышая качество кода и уменьшая количество дефектов. Статья предназначена для тех, кто ищет пути повышения качества кода, а не для изучения инструментальных средств eclEmma и Rational Team Concert. В последних разделах статьи описываются установка и настройка интеграции, что предполагает знакомство с обоими инструментальными средствами.

Количество кода, выполненного во время разработки, - ключевой показатель многих проектов разработки (в том числе гибкой, IBM Rational Unified Process и каскадной). Этот показатель важен как для разработчиков, так и для тестировщиков, поскольку при создании группами разработки кода с высоким уровнем покрытия группа тестирования получает возможность сосредоточиться на соответствии кода бизнес-требованиям, а не заниматься дефектами кода на низком уровне.

Объем покрытия кода важен в следующих ситуациях:

  • Группа хочет реагировать на бизнес-требования и выполнять изменения с минимальным риском.
  • Сторонние разработчики кода хотят обеспечить возможность оценки качества их работы или измерять качество в соответствии с соглашением об уровне обслуживания (SLA).
  • Контракты между группами (например, разработки и тестирования) позволяют группе тестирования уменьшить усилия на выявление ошибок кодирования.
  • Группы хотят уменьшить технический долг, постепенно повышая число модульных тестов и рефакторинг кода для снижения числа ошибок и сложности.
  • Организации хотят создать программы определения показателей качества и технического долга для выявления тенденций и выполнения улучшений.

Группы гибкой разработки должны обеспечить покрытие модульными тестами большей части кода. Значительное покрытие гарантирует малое число дефектов и возможность рефакторинга кода. (Учитывая тенденцию гибкой разработки к минимизации проектирования, необходимо дополнить процесс разработки подготовленными модульными тестами). Одним из ключевых показателей является объем кода, выполняемого модульными тестами. В данной статье описывается использование Rational Team Concert и eclEmma для измерения и повышения покрытия кода.

Описываемый в статье советчик Code Coverage Advisor предоставляет расширение процесса Rational Team Concert, прерывающее поставку кода в случае недостаточного его покрытия. Требуемый уровень покрытия кода определяет группа разработки, а значения покрытия измеряет eclEmma в клиенте. Перед поставкой кода Rational Team Concert настраивается для проверки покрытия. В статье описывается настройка этого процесса и демонстрируется его использование для повышения покрытия кода в проектах.

В статье рассматриваются три вопроса:

Когда используется Code Coverage Adviso

Есть два основных сценария использования советчика Code Coverage Advisor:

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

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

Поставка кода с использованием нового процессам и Rational Team Concert

Сначала нужно настроить проекты для сбора информации о покрытии кода. В панели инструментов нажмите пиктограмму EclEmma icon (см. рисунок 1) и выберите Coverage Configurations....

Рисунок 1. Нажатие пиктограммы EclEmma и выбор Coverage Configurations
Рисунок 1. Нажатие пиктограммы EclEmma и выбор Coverage Configurations

Откроется диалоговое окно Coverage Configurations (см. рисунок 2). Оно похоже на диалоговое окно Run/Debug Configurations, но имеет вкладку Coverage. Выбрав элементы кода, для которых нужно определить покрытие, нажмите Coverage, чтобы выполнить код и получить информацию о покрытии.

Рисунок 2. Вкладка Coverage в диалоговом окне Coverage Configurations
Рисунок 2. Вкладка Coverage в диалоговом окне Coverage Configurations
Рисунок 2. Вкладка Coverage в диалоговом окне Coverage Configurations

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

Например, при изменении класса HelloWorld.java в случае несоответствия установленным требованиям к покрытию попытка поставки кода завершится неудачно (см. рисунок 3).

Рисунок 3. Ошибка поставки при недостаточном покрытии
Рисунок 3. Ошибка поставки при недостаточном покрытии
Рисунок 3. Ошибка поставки при недостаточном покрытии

Процесс настройки

Пороговые значения покрытия хранятся в процессе Rational Team Concert, что обеспечивает их единообразное централизованное использование членами группы. Однако можно настраивать разные требования к покрытию для разных компонентов. Прежде всего необходимо выбрать роль с полномочиями для изменения процесса в области проекта.

В Eclipse перейдите в перспективу Work Item и откройте представление Team Artifacts. Щелкните правой кнопкой мыши на области проекта, которую хотите настроить, и нажмите Open. Выберите вкладку Process Configuration, чтобы открыть редактор процесса (см. рисунок 4).

Рисунок 4. Редактор настройки процесса
Рисунок 4. Редактор настройки процесса
Рисунок 4. Редактор настройки процесса

Выберите Team Configuration > Operation Behavior. Найдите в списке операций операцию Deliver (client) и отметьте флажок в столбце Everyone (default) (см. рисунок 5).

Рисунок 5. Операция Deliver (client)
Рисунок 5. Операция Deliver (client)
Рисунок 5. Операция Deliver (client)

Теперь все готово для настройки правил проверки достаточности покрытия при каждой поставке кода.

Настройка условия покрытия кода

Добавьте условие для проверки покрытия кода. Нажмите Add в разделе условий и выберите Prohibit Unsatisfactory Code Coverage (EclEmma), как показано на рисунке 6. В левой части диалогового окна Preconditions настраиваются различные уровни покрытия кода. Например, можно указать необходимость покрытия 70% строк для каждого файла. Однако разработчик должен иметь 100% покрытия для каждого типа.

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

Рисунок 6. Настройка неудовлетворительного покрытия кода
Рисунок 6. Настройка неудовлетворительного покрытия кода
Рисунок 6. Настройка неудовлетворительного покрытия кода

Сохраните процесс. Эти новые правила будут применяться при следующих попытках поставки кода.

Загрузка и установка компонентов

Для реализации данного подхода в собственной среде необходимы оба главных компонента, которые можно установить, используя сайты обновлений Eclipse. Установите eclEmma и Code Coverage Advisor с сайта обновления Eclipse.

Представленный здесь код был разработан на DevOps Services (JazzHub) в открытом экземпляре Rational Team Concert. Если у вас есть предложения по усовершенствованию и развитию советчика, свяжитесь с автором или создайте элементы работ в проекте eclEmma Rational Team Concert Code Coverage Advisor.


Ресурсы для скачивания


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Rational
ArticleID=1002745
ArticleTitle=Повышение качества модульного тестирования путем интеграции eclEmma и Rational Team Concert
publish-date=04072015