|
IBM CSDL Rational ClearCase , 測試小組, IBM
2005 年 8 月 18 日
Rational ClearCase是一個業(yè)界領(lǐng)先的軟件配置管理工具,Rational ClearQuest則是IBM Rational在變更管理和缺陷跟蹤方面的軟件。業(yè)界對于變更管理軟件和配置管理軟件的集成有著強烈的需求,因此IBM Rational也提供了ClearCase和ClearQuest集成的功能,。
1 概述
Rational ClearCase是一個業(yè)界領(lǐng)先的軟件配置管理工具,Rational ClearQuest則是IBM Rational在變更管理和缺陷跟蹤方面的軟件,。業(yè)界對于變更管理軟件和配置管理軟件的集成有著強烈的需求,,因此IBM Rational也提供了ClearCase和ClearQuest集成的功能。
所謂Base ClearCase和ClearQuest的集成,,就是將ClearQuest中的變更請求(Change Requeset)關(guān)聯(lián)到一個或多個ClearCase中元素(Element)的版本(Version)上,。一個變更請求可以被關(guān)聯(lián)到一個或多個版本上,實施變更的這些版本的集合被稱作變更請求的變更集(Change Set),。一個版本可以被關(guān)聯(lián)到一個或多個變更請求,,這些變更請求的集合被稱作版本的請求集(Request Set)。
集成對于不同的角色,,有以下不同的功能:
一個項目經(jīng)理指定在什么情況下需要讓用戶關(guān)聯(lián)版本到變更請求,。也可以指定關(guān)聯(lián)變更請求的VOBs,,branches,,以及element types。
ClearQuest的管理員添加ClearCase的定義到ClearQuest的schema中,。這使得變更請求可以顯示與它關(guān)聯(lián)的變更集,。
使用ClearCase進行開發(fā)的人員,可以在Check Out或者Check In一個版本的時候,,將這個版本關(guān)聯(lián)到一個或者更多的變更請求上,。也可以查看一個變更請求的變更集。
在這篇文章中,,我們將對Base ClearCase與ClearQuest集成的設(shè)計原理和運行環(huán)境的搭建與設(shè)置進行介紹,,最后再提供一些操作范例。
2 基本概念
2.1 集中方式(Central Server)
所謂的Central Server就是將所有的腳本文件及配置文件放在一個目錄,,當(dāng)進行集成的時候,,ClearCase就會在這個目錄中尋找配置文件(config.pl)、cqcc_launch腳本以及其他的代碼,,而不是使用本地默認目錄的相應(yīng)文件,,因此提高了安全性和可維護性,。與之對應(yīng)的本地方式(Local Server)則是使用本地ClearCase目錄中的配置文件、腳本以及其他代碼,。
2.2 批處理(Batching Enabled)
就是將一個ClearCase操作中的所有與ClearQuest相關(guān)的操作,,記錄到一個批處理文件中,ClearCase操作完成之后,,再將這些操作一次性寫入到ClearQuest中,。從而降低了登陸ClearQuest和在查詢ClearQuest的次數(shù),大大的提高了性能,。
2.3 序列(Batching Series)
批處理序列是將批處理的概念進一步擴展的產(chǎn)物,。ClearCase認為所有進行的ClearCase都是在一個批處理當(dāng)中,它記錄所有與ClearQuest相關(guān)的操作到批處理文件當(dāng)中,,以便在以后的某個時間完成與ClearQuest相關(guān)的操作,。
2.4 檢入后提交(Postcheckin commit)
就是在ClearCase的Check in完成之后,再進行ClearQuest的操作,。一般的情況下,,在ClearCase的Check in操作完成之后,才進行與ClearQuest相關(guān)的操作,。這樣在Check in操作失敗的情況下,,會造成ClearCase和ClearQuest的數(shù)據(jù)不一致。啟用此功能則可以避免這種錯誤,。
2.5 自動關(guān)聯(lián)(Auto-association)
就是在將變更請求關(guān)聯(lián)到某個版本的時候,,不需要手工選擇,而是靠預(yù)先設(shè)置的請求ID或者根據(jù)ClearCase操作的注釋自動提取請求ID,,來決定關(guān)聯(lián)的請求,。
2.6 使用CQWeb方式的集成
在本地沒有安裝ClearQuest,或者不愿意使用本地的ClearQuest的情況下,,可以使用CQWeb的方式使用CQWeb Server上的ClearQuest來實現(xiàn)ClearCase和ClearQuest的集成,。
3 何時采用Base ClearCase
我們知道UCM是一種對版本控制的配制管理流程,而UCM是基于Base ClearCase的管理流程演變而來的,。因此掌握并了解Base ClearCase的管理就顯得至關(guān)重要,。Base ClearCase包含了一系列功能,它們能夠使開發(fā)人員做到并行開發(fā),,項目管理者也能通過制定相關(guān)的規(guī)則來使開發(fā)工作有序的進行,。
在開發(fā)過程中,Base ClearCase應(yīng)用"分支(Branch)"的方法來允許開發(fā)人員進行并行開發(fā),。任何在配制管理下的元素(Element),,例如:文本文件,程序原代碼等,,都會生成一個主分支,,而主分支下還可以有多個下屬分支,,它們的作用是用來支持在主分支上的開發(fā)。Base ClearCase 允許創(chuàng)建復(fù)雜的分支體系,。在開發(fā)過程中,,通過視圖(View)可以訪問特定元素集的特定版本,而這通過修改視圖的規(guī)則(Config Specification)就可以實現(xiàn),。UCM也使用"分支"的方法,,但是這些分支不需要用手工來操作,而是通過"流(Stream)"來實現(xiàn),,通常情況下,,一個項目存在一個集成流和多個開發(fā)流。
在項目管理方面,,我們通過對項目的源文件打基線(Baseline)來呈現(xiàn)項目早期較穩(wěn)定版本的雛形,,并且基線可以用來連接一系列相關(guān)的源文件,比如像源代碼,,測試計劃等等,。UCM自動完成基線的創(chuàng)建,而Base ClearCase則通過對元素(Elements)的版本打標簽來創(chuàng)建基線,。
通過以上對UCM和Base ClearCase的比較,,因此在一個項目不是很大,并且業(yè)務(wù)流程相對簡單的情況下適合用Base ClearCase,。
4 運行環(huán)境的搭建與設(shè)置
4.1 運行環(huán)境的搭建
在Base CCCQ集成的過程中,,運行環(huán)境的搭建尤為重要。
圖 (01) 系統(tǒng)結(jié)構(gòu)圖
首先,,需要在ClearCase客戶端和ClearCase注冊服務(wù)器安裝ClearCase,。在ClearQuest Unix服務(wù)器和ClearQuest Windows服務(wù)器安裝ClearQuest。準備數(shù)據(jù)庫服務(wù)器,。在ClearQuest Unix服務(wù)器上配置好DBSet,,并添加User DB,。之后就可以配置集成了,。
4.2 ClearCase與ClearQuest集成的配制
集成的配置需要在ClearCase和ClearQuest上分別進行配置,才能完成,。在ClearCase側(cè),,需要對VOB配置。當(dāng)對一個VOB配置了集成之后,,針對與這個VOB的ClearCase相關(guān)操作(例如CheckOut, CheckIn)都會激發(fā)腳本對ClearQuest數(shù)據(jù)庫的訪問,,進而完成Base CC和CQ的集成。
在ClearQuest側(cè),,需要在數(shù)據(jù)庫中添加ClearCase的定義,,只有加入了定義之后,,數(shù)據(jù)庫中的請求的變更集才能夠顯示出來。
下面具體介紹配置過程,。
4.2.1 將ClearCase package加入到一個ClearQuest DBset
由于ClearQuest schema包含了一些與多個ClearQuest user databases相關(guān)聯(lián)的特性,,例如數(shù)據(jù)記錄的類型,區(qū)域,,和形式,。在開發(fā)人員將ClearCase中文件的版本與ClearQuest用戶數(shù)據(jù)庫中的變更請求相聯(lián)系的時候,必須將ClearCase的特性也加入到ClearQuest schema,,此過程要在Windows端完成且過程如下所述:
- 開始 -> 程序 -> Rational Software -> Rational ClearQuest -> ClearQuest Designer
- 在ClearQuest Designer中,,點擊Package -> Package Wizard
- 在安裝Package向?qū)е校业紺learCase 1.0和ClearCase Upgrade 1.0,,如果這些Packages沒有列出,,則點擊"More Packages",并將上述的兩個Packages添加到列表中,。
- 選擇ClearCase 1.0 Package并點擊"下一步"
- 選擇一個將會應(yīng)用ClearCase 1.0 Package的schema e.g. Defect Tracking,,點擊"下一步"
- 選擇數(shù)據(jù)紀錄的類型并點擊"完成"
- 選擇File -> Check In來保存schema的最新版本
- 選擇Database -> Upgrade Database把schema的最新版本升級到ClearQuest user database中
4.2.2 在ClearCase VOBs上安裝觸發(fā)器(Triggers)
CCCQ的集成應(yīng)用到了針對cleartool checkin, checkout和uncheckout操作的觸發(fā)器,觸發(fā)器的安裝與配制需要在Windows端配制,,該Windows的Registry Server必須與UNIX上建VOBs的那臺Server指向同一臺Registry Server,。具體配置過程如下所述:
4.2.2.1 同步UNIX與Windows上的ClearCase Regions
1) 在Windows上新建一個Region,名稱與需要同步的UNIX上的Region名稱相同,,這時UNIX上的Region就在Registry Server上注冊了,。
2) 運行 -> cleartool -> mkregion -tag <UNIX region>
3) 開始 -> 程序 -> Rational Software ->
4) Rational ClearCase‘Administration‘Region Synchronizer
圖 (02) 導(dǎo)入Unix服務(wù)器上的VOB
5) 選擇需要同步的Windows Region和UNIX Region, 在Import Type一項上選擇"VOB Tags"并且選中"Show full storage directory paths.
6) 在"Unix VOB tags not found in the Windows region"列表中選擇需要引入的VOB,點擊"Import",,這時"Create VOB Tag"對話框會顯示出來,。在"Global Storage"一項中輸入在UNIX服務(wù)器上的VOB的網(wǎng)絡(luò)存儲路徑,并且在"Hostname"一項中輸入在Region內(nèi)能夠解析的主機名,。
圖 (03) 創(chuàng)建Tag
4.2.2.2 將一個VOB安裝上Trigger
當(dāng)一個VOB被引入(Import)后,,我們可以對其安裝Trigger 在ClearCase中,點擊開始 -> 程序 -> Rational Software‘Rational ClearCase‘Administration‘Integrations‘ClearQuest Integration Configuration. 這時出現(xiàn)如下圖所示的對話框,。
圖 (04) 應(yīng)用Trigger
在"ClearCase - ClearQuest Integration Configuration"對話框中,,我們可以看到所有在UNIX服務(wù)器端建立好的VOBs,并且可以對其中任何一個VOB安裝trigger,。在這里,,我們對VOB int4安裝Checkout和Checkin的trigger。Trigger的配制文件在config.pl中有詳細說明,,關(guān)于trigger選擇的詳細內(nèi)容可以參看上一章節(jié),。
提示:
- 觸發(fā)器使用config.pl配制文件來控制本地集成的配制參數(shù)。當(dāng)選擇V2觸發(fā)器時,配置應(yīng)用程序會將config.pl文件路徑設(shè)為CQCC/config.pl,,在這個路徑中CQCC代表了本地的cc-home-dir/lib/perl5/CQCCTrigger/CQCC這個路徑,,用戶可以根據(jù)需要將這個路徑改變?yōu)橐粋€UNC路徑,因此所有的集成操作將調(diào)用一個中心配制文件config.pl,。
- 在安裝觸發(fā)器時,,只有VOB的所有者才可以對自己創(chuàng)建的VOB安裝觸發(fā)器。如果一個用戶e.g. Harry登陸Windows,,他想對Andy在UNIX上創(chuàng)建的VOB安裝觸發(fā)器,,這時會出現(xiàn)"無法得到觸發(fā)器類型"等警告。如果Harry希望可以對VOB安裝觸發(fā)器,,那么需要執(zhí)行以下兩步:
- 在DOS模式下運行Runas /user:RATIONALCC\Andy cmd.exe命令,,這個命令將以Andy的身份打開一個DOS窗口,并提示輸入用戶名和密碼,。
- 在驗證通過登陸后,,另一個DOS窗口將會打開,在這個窗口中,,運行"cqconfig"來以Andy的身份在VOB上安裝觸發(fā)器,。
4.2.3 核心文件config.pl的配置
config.pl文件的配置在Base ClearCase與ClearQuest集成的操作中起到重要的作用。config.pl文件中包含了一系列變量及參數(shù)的設(shè)置,,設(shè)置的描述,,以及在哪里可以配制這些參數(shù)(是在config.pl文件本身中設(shè)置還是在系統(tǒng)環(huán)境變量中設(shè)置)。
config.pl文件在不同操作系統(tǒng)上的存儲路徑: Windows:C:\Program Files\Rational\Clearcase\lib\perl5\CQCCTrigger\CQCC\config.pl UNIX: /usr/atria/sun5/lib/perl/CQCCTrigger/CQCC/config.pl
下面就一些重要的參數(shù)配置進行詳細的說明:
4.2.3.1 定義用戶數(shù)據(jù)庫
&SetConfigParm("CQCC_DATABASE_ENTITY_LIST","SAMPL: defect"); CQCC_DATABASE_ENTITY_LIST參數(shù)定義了一個或多個數(shù)據(jù)庫和數(shù)據(jù)庫所支持的數(shù)據(jù)紀錄類型,。當(dāng)定義多個數(shù)據(jù)庫時,,參數(shù)的使用格式為:dbname1: entity1,entity2; dbname2: entity3,entity4。值得注意的是數(shù)據(jù)紀錄類型必須為在schema中已定義好的內(nèi)容,。
4.2.3.2 定義DBsets
&SetConfigParm("CQCC_DATABASE_SET", "<db_set_name>"); 在ClearQuest中,,當(dāng)建立有多個DBsets時,即有多個schema存儲空間時,,CQCC_DATABASE_SET參數(shù)用來指定一個當(dāng)前可以使用的schema存儲空間,。
4.2.3.3 選擇集成模式: 文本模式或圖形模式
&SetConfigParm("CQCC_GUI_ENABLE", "OFF"); 此參數(shù)是一個開啟Perl/TK GUI圖形界面的開關(guān)。如果設(shè)置為"ON"(默認情況下),,那么圖形界面會在需要的情況下顯示,,例如,在運行xclearcase時,。如果設(shè)置為"Always",,那么圖形界面會在命令行操作的形式也顯示,。如果設(shè)置為"OFF",,那么圖形界面將永遠不顯示,因此只可以用命令行操作。
4.2.3.4 開啟DEBUG模式
&SetConfigParm("CQCC_DEBUG", "1");
此參數(shù)用來控制在運行時模式下DEBUG報告的輸出級別,。0 - 代表沒有輸出,;1 - 代表基本輸出(針對高級別的操作);2 - 代表細節(jié)輸出,。
提示:其他參數(shù)設(shè)置的詳細說明請參看config.pl文件,。
4.2.4 執(zhí)行Base CCCQ集成的最后檢驗
此時,根據(jù)以上所提供的信息,,我們應(yīng)能夠完成cqcc檢驗,,檢驗ClearCase與ClearQuest是否能夠很有效的結(jié)合,并可以開始完成一些簡單的操作,。
在UNIX客戶端運行:cqcc_launch -test
此時,,cqcc_launch命令將會調(diào)用config.pl里的參數(shù)并試圖連接ClearQuest,如果連接成功,,exit_status會顯示0,,否則將顯示1(如下圖所示)
圖 (05) 驗證配置
5 在Windows的平臺上的操作范例
可以說,Base ClearCase的基本操作,,就是Check Out和Check in兩個操作,,下面就簡單介紹一下這兩個操作。
5.1 Check Out
1) 在ClearCase Explorer中,,選中一個文件,,進行Check Out操作。如果是配置完成后第一次進行操作,,需要輸入ClearQuest的用戶名和密碼,。
圖 (06) 登陸窗口
2) 登陸成功后,就會出現(xiàn)QSW(Query Association Window)窗口,,顯示滿足條件的缺陷,。選擇缺陷,點擊Association按鈕,,可以將其放到上側(cè)窗口中,,點擊OK,即可完成關(guān)聯(lián),。
圖 (07) 關(guān)聯(lián)窗口
3) 關(guān)聯(lián)成功后,,在ClearQuest中打開相應(yīng)的缺陷,在ClearCase頁中,,可以查看到關(guān)聯(lián)的文件,。
圖 (08) 在ClearQuest中查詢關(guān)聯(lián)的文件
4) 在ClearCase Explorer中右鍵點擊被關(guān)聯(lián)的文件,,選擇版本屬性,,查看被關(guān)聯(lián)的缺陷。
圖 (09) 在ClearCase中查詢關(guān)聯(lián)的問題
5.2 Check In
1) 在ClearCase Explorer中選中文件,,進行Check Out操作,彈出QSW窗口,。
圖 (10) 關(guān)聯(lián)窗口
2) 在ClearQuest中查看被關(guān)聯(lián)的文件,。
圖 (11) 在ClearQuest中查詢關(guān)聯(lián)的文件
3) 在ClearCase中查看被關(guān)聯(lián)的缺陷。
圖 (12) 在ClearCase中查詢關(guān)聯(lián)的文件
參考資料
- Base ClearCase Integration with ClearQuest Design Specification
- Introduction to Base CCCQ Integration Test
- Rational ClearCase - Managing Software Projects
關(guān)于作者
|
|
|
IBM CSDL Rational ClearCase測試小組
|
|