ClearCase и ClearQuest
Данный набор продуктов позволяет разработчикам не просто исправлять определенные версии файлов, выводя их для этого в состояние Check-out, но и ассоциировать то или иное исправление в соответствии с теми дефектами, которые описаны в системе. Кажущийся сам по себе простым, данный механизм поможет извлечь из проекта всю информацию по ошибкам и изменениям, приведшим к их исправлению либо к порождению новых. Всю информацию можно извлечь подобно поднятию виноградной грозди за верхушку, рассматривая ее с разных сторон!
Здесь скрывается первый подводный камень - Rational предлагает для решения проблем с "change set" две методики: UCM (Unified Code Management) и ClearCase Base. О достоинствах каждой из них мы поговорим в одной из следующих статей, а сейчас остановимся только вот на чем: UCM предлагает универсальный подход и содержит в себе правила быстрого построения проектов установленного образца. UCM уже предопределил все роли и действия, а также осуществил интеграцию ClеarCase с ClearQuest. UCM - это попытка Rational осуществить унифицированный подход к тестированию. Но в погоне за универсальностью UCM потерял ряд важных черт, главная из которых - гибкая настройка под конкретный процесс. Тем не менее UCM развивается, улучшается, но для больших компаний со сложной инфраструктурой пока не совсем пригоден. Поэтому мы рассмотрим вариант интеграции ClearCase Base с уже сконфигурированной базой в ClearQuest.
Сначала проведем интеграцию, а потом поговорим о концепции.
"Внедрение" продуктов друг в друга - процесс двусторонний. Сначала ClearCase настраивается с помощью модуля ClearCase ClearQuest Integration. В появившемся окне необходимо указать, с каким VOB будет проведена интеграция и какие операции будут попадать в базу. Например, можно сделать так, что в базу будут попадать только действия check-out, связанные с ветвью DEBUG, и так далее (рис. 2).
Рисунок 2. Диалог интеграции ClearCase. Слева изображен список вобов, а в центре типы запросов. Здесь можно отметить, что интеграция со стороны ClearCase проходит на уровне инсталляции в VOB триггеров, вызывающих ClearQuest
То есть здесь мы настраиваем реакцию ClearCase на то или иное событие.
Соответствующим образом для каждого события будет вызываться список дефектов из ClearQuest, с которыми нужно проводить ассоциацию. Но этой настройки мало. Теперь схему ClearQuest необходимо "научить понимать" события ClearCase. Делается это следующим образом.
- Запускается ClearQuest Designer.
- Загружается схема, по которой была сгенерирована база данных.
- Через меню Package подключается интеграция с ClearCase.
- Схема сохраняется.
- Делается обновление базы.
- Один файл, несколько проассоциированных дефектов.
- Несколько дефектов на основе одного файла.
- Разработчик создает работающий код.
- Тестировщик (или разработчик) обнаруживает ошибку:
- заносит описание ошибки (defect) в базу данных;
- вносит тип ошибки и ее критичность;
- назначает ответственного.
- Разработчик исправляет ошибку:
- отыскивает в базе модуль и дефект;
- выводит соответствующий файл в состояние CheckOut и ассоциирует его с одним или несколькими дефектами;
- исправляет ошибку и помечает ее как исправленную (fixed).
- Руководитель проекта получает полную статистику о наличии ошибок в проекте, степени их локализации и критичности.