IBM Rational CQTM(ClearQuest TestManager)可以與 RMT(Rational Manual Tester)或 RFT (Rational Functional Tester)集成。通常,測試人員需要先在 RMT 或 RFT 中編寫(xiě)腳本,然后在 CQTM 中,將此腳本關(guān)聯(lián)到一個(gè) TMTestCase 或 TMConfiguredTestCase。在很多情況下(例如測試用例數量眾多,或是迭代次數較多),這樣的工作會(huì )很耗時(shí),并且往往有大量重復性勞動(dòng)。本文介紹了三種從 Test Case 列表批量生成 CQTM Test Case 的解決方案,其核心思想是通過(guò)使用 CQ(ClearQuest)所提供的 API 來(lái)實(shí)現自動(dòng)化的批量生成 TMTestCase 并將相應的腳本與之關(guān)聯(lián)起來(lái)。通過(guò)本文所提供的解決方案 , 可以節省測試人員在 CQTM 中手動(dòng)創(chuàng )建 Test Case 的大量重復性工作,提高生產(chǎn)力。經(jīng)過(guò)測試,在局域網(wǎng)內的 CQTM 中創(chuàng )建 Test Case,每個(gè)用例大約花費的時(shí)間在 3-5 秒之間,相對于以前由測試人員手動(dòng)添加并編輯測試計劃、測試用例,效率提高在 90% 以上。
我們已成功實(shí)現了 RMT 和 CQTM 的這種整合,因此本文主要討論根據 RMT 的腳本列表如何批量生成,但文中所描述的方案同樣適用于 RFT。本文中,我們結合我們的思路提供了部分示例代碼,讀者可以根據具體的應用需求來(lái)實(shí)現和定制自己的代碼。
注 : 文中有關(guān) IBM Rational ClearQuest TestManager 的示例代碼為非官方代碼,IBM 不對其提供支持。使用示例代碼需自行承擔風(fēng)險。作者強烈建議在使用前先在虛擬項目中對代碼進(jìn)行測試。
1. 通常的使用場(chǎng)景
圖 1 展示了結合使用 CQTM 和 RMT 的通常場(chǎng)景。測試主管(Test Lead)在 CQTM 中創(chuàng )建 Asset Registry,Test Plan,Configuration 和 Iteration。測試人員(Testers)在 RMT/RFT 中編寫(xiě)腳本,然后在 CQTM 中創(chuàng )建 Test Case,并將相應的腳本與之關(guān)聯(lián)。測試人員根據 Test Case, Configuration 和 Iteration 生成 Configured Test Case。在測試執行過(guò)程中,測試人員為每個(gè) Configured Test Case 創(chuàng )建 Test Log。
圖 1. 通常的使用場(chǎng)景
現在我們深入分析一下測試人員如何創(chuàng )建 RMT 腳本和 CQTM Test Case,即圖 1 中紅框所包含的部分。
首先,測試人員在 RMT 中編寫(xiě)一些腳本并將它們放在某個(gè)共享目錄下,例如,\\SharedMachine\SampleProject。為了更好的組織這些腳本,測試人員在此目錄下創(chuàng )建了一個(gè)名為“FVT”的子目錄,以標識這些腳本是用于 FVT 的;然后在“FVT”目錄下再創(chuàng )建一個(gè)子目錄“Function1_Scripts”用于存放關(guān)于組件“Function1”的腳本。對于每個(gè) RMT 腳本,使用一些描述性的命名以表示其功能,例如“TestCase3.rmt”。如圖 2 所示。
圖 2. 創(chuàng )建 RMT 腳本
接下來(lái),在 CQTM 中,測試人員需要先定義 Asset Registry 和 File Location,才能開(kāi)始添加 Test Case 并與 RMT 腳本相關(guān)聯(lián)。圖 3 展示了在這個(gè)場(chǎng)景中所定義的 File Location。
圖 3. 創(chuàng )建 File Location
當 Asset Registry 和 File Locations 都準備好之后,測試主管創(chuàng )建一個(gè)名為“FVT”的 Test Plan, 并在其下創(chuàng )建一個(gè)名為“Function1”的子計劃。然后測試人員就可以開(kāi)始在“Function1”下創(chuàng )建 TMTestCase。測試人員需要把每個(gè) TMTestCase 與一個(gè) RMT 腳本相關(guān)聯(lián),為了保持一致性,TMTestCase 的標題與 RMT 腳本的名字一樣。如圖 4 所示。
圖 4. 創(chuàng )建 CQTM Test Case
回頁(yè)首
2. 上述場(chǎng)景中的問(wèn)題
通過(guò)觀(guān)察圖 2 和圖 4,可以發(fā)現其樹(shù)結構和命名規則都是極其類(lèi)似的。因此在 CQTM 中所做的工作其實(shí)是一種重復性勞動(dòng)。我們?yōu)楹尾荒軐で笠环N自動(dòng)完成這些工作的方法呢?
基于以上考慮,我們通過(guò)編程的方法,根據 CQTM 提供的 API 與之進(jìn)行交互,開(kāi)發(fā)了一個(gè)工具來(lái)實(shí)現自動(dòng)化,以消除這些重復工作。
假定將 ClearQuest 安裝在 C:\Program Files\Rational\ClearQuest 目錄,則可以在 C:\Program Files\Raitonal\ClearQuest\doc\books 目錄下找到 cq_api.pdf 文件。在這個(gè)文件中,所有的 API 都采用 Basic 語(yǔ)言和 Perl 語(yǔ)言進(jìn)行了描述,但這些 API 也提供對 Java 語(yǔ)言的支持;旧,使用 ClearQuest 客戶(hù)端所能進(jìn)行的所有操作,都能通過(guò)這些 API 來(lái)編程實(shí)現。這為 CQ 用戶(hù)實(shí)現工作的自動(dòng)化提供了充分的可能。
在以下章節中,我們針對上述場(chǎng)景中 CQTM 用戶(hù)所面臨的問(wèn)題,提出了三種解決方案。3.1 節是一個(gè)普通方案,可以節省測試人員在 CQTM 中創(chuàng )建 Test Case 和 Configured Test Case 所需的工作。3.2 節是一個(gè)高級方案,將測試準備和測試用例(test case)的生成更徹底的結合在一起。3.3 節是一個(gè)更為綜合的方案,它提供了一個(gè)包含所有相關(guān)信息的模板以用于測試準備和審查,并且除批量生成 CQTM 測試用例以外,還會(huì )批量生成相應的 RMT 腳本。
在實(shí)際使用中,我們在不同的項目的測試中已經(jīng)實(shí)踐了這三種解決方案。對于普通方案,我們開(kāi)發(fā)了一款名為 RMT2CQ 的工具。對于高級方案,我們往 RMT2CQ 工具中增加了一些特性。對于綜合方案,我們設計了一個(gè)模板,并開(kāi)發(fā)了另一款名為 GenRMT 的工具與 RMT2CQ 結合起來(lái)使用。
在本文中,我們以 RMT2CQ 的一些示例代碼來(lái)闡述我們的思路。讀者可以根據自己的項目情況來(lái)定制代碼。對于第三種方案中所涉及的模板和 GenRMT 工具,將會(huì )有其他的文章進(jìn)行更詳細的描述。
注:示例中所使用的是 CQTM 7.0.0.0 和 Common Schema CQTMCS_V1。
使用 API 建立查詢(xún)的技巧:通過(guò) API 在 CQTM 中創(chuàng )建新的實(shí)體(entity)之前,必須進(jìn)行查詢(xún)(query)以防止重復。在建立查詢(xún)時(shí),可以使用 session.BuildSQLQuery() 或 session.BuildQuery()。
如果使用 BuildSQLQuery(),當前會(huì )話(huà)(session)的登錄用戶(hù)應當具有“SQL Editor”特權,這是由于用戶(hù)需要傳入正確的 SQL 語(yǔ)句。如果用戶(hù)對于 SQL 語(yǔ)句的語(yǔ)法不太確定,可以通過(guò) CQ 的 Eclipse 客戶(hù)端得到提示。用戶(hù)可以在客戶(hù)端中創(chuàng )建類(lèi)似的查詢(xún),并右鍵單擊該查詢(xún),選擇“SQL”,然后選擇“View SQL”,如圖 5 所示。該查詢(xún)相應的 SQL 語(yǔ)句將會(huì )顯示出來(lái),如圖 6 所示。在我們的工具以及本文的示例代碼中,我們使用的是這個(gè) API。
圖 5. 查看 SQL
圖 6. 顯示 SQL
如果使用 Buildquery(),其代碼非常類(lèi)似于用戶(hù)從客戶(hù)端創(chuàng )建查詢(xún)的過(guò)程?梢允褂 BuildField() 來(lái)指定要顯示的域,并使用 BuildFilterOperator() 和 BuildFilter() 來(lái)指定查詢(xún)標準。
文章來(lái)源于領(lǐng)測軟件測試網(wǎng) http://kjueaiud.com/