王云鵬,何肖慧
(中鐵信弘遠(yuǎn)(北京)軟件科技有限責(zé)任公司 技術(shù)管理部,北京 100844)
在軟件開發(fā)的生命周期中,軟件測試是一個至關(guān)重要的環(huán)節(jié)。軟件測試是軟件質(zhì)量保證工作的一個重要組成部分,也是重要的質(zhì)量控制手段。為了保證所提交的軟件產(chǎn)品能夠滿足客戶的需求,以及在使用中的可靠性,就必須對所開發(fā)的軟件進(jìn)行系統(tǒng)而全面的測試。
為了保證軟件產(chǎn)品的質(zhì)量,需要對測試過程進(jìn)行控制,軟件測試管理就是通過一定的管理方法和工具來對整個軟件測試過程進(jìn)行監(jiān)控,從而提高軟件測試的工作效率。
隨著各企業(yè)軟件測試工作的不斷深入,傳統(tǒng)使用Word進(jìn)行測試管理的工作方式既無法實(shí)現(xiàn)對需求的覆蓋分析、又不能對測試執(zhí)行情況進(jìn)行監(jiān)控,不能對測試結(jié)果、缺陷、測試效率進(jìn)行統(tǒng)計分析,已遠(yuǎn)不能滿足測試人員需要,為了更好的對軟件測試過程進(jìn)行監(jiān)控管理,保證軟件產(chǎn)品的質(zhì)量,逐漸引出了測試管理的問題。
軟件測試工作也有流程,流程的定義將影響整個測試過程,QC是在一個基于瀏覽器的應(yīng)用中,將測試過程流水化,實(shí)現(xiàn)從測試需求,測試計劃,測試執(zhí)行,到測試缺陷的雙向跟蹤;它可以通過各種圖表完成對測試需求、測試用例、測試缺陷的分析,提高了測試的工作效率,使測試人員、開發(fā)人員可以在一個集中的測試管理系統(tǒng)中參與到整個測試過程。 QC測試流程如圖1所示。
圖1 QC測試流程
測試需求是整個測試的基礎(chǔ),來源于軟件需求規(guī)格說明書,驅(qū)動整個測試過程。QC 的Web界面簡化了需求管理過程。測試人員通過對軟件需求的理解,整理軟件需求為測試需求,在QC的需求管理功能中,通過測試需求樹建立一個詳細(xì)的測試需求列表,這樣,即方便測試人員理解整個系統(tǒng)的構(gòu)成,又可以通過將測試需求轉(zhuǎn)換為測試計劃,創(chuàng)建該需求對測試用例的追蹤,根據(jù)生成的報告和圖表輔助分析創(chuàng)建的測試需求,檢驗(yàn)需求是否適用于測試范圍。
2.1.1 建立測試需求
測試需求可以分為測試、需求、未定義、文件夾、業(yè)務(wù)、組6種類型。測試需求的種類,可以在創(chuàng)建需求樹時,通過選擇需求類型下拉菜單中的相應(yīng)值來確定。
QC中,通過【需求】功能中的“新建需求”操作,創(chuàng)建測試需求,測試需求不同于測試用例,不需要具體到每個詳細(xì)的測試步驟和期望結(jié)果,只要?dú)w納出要測的各個功能點(diǎn),在每條需求的詳細(xì)信息頁面中進(jìn)行簡單描述即可。
這樣的測試需求簡單明了,便于開發(fā)人員和測人員進(jìn)行討論,確定最終的測試范圍,也便于整個項(xiàng)目的管理團(tuán)隊進(jìn)行查閱。
2.1.2 建立需求關(guān)聯(lián)
制定測試需求后,需要把每條測試需求和相應(yīng)的測試用例相關(guān)聯(lián),從而保證所有的測試需求都有測試用例進(jìn)行覆蓋,每個功能點(diǎn)都能被測到。
需求詳細(xì)信息視圖中,通過“測試范圍”頁簽中“選擇測試用例”的方式建立需求與測試用例的關(guān)聯(lián)。
QC的需求管理模塊除了提供樹狀視圖外,還另外提供了范圍分析和需求網(wǎng)格視圖模式。測試人員將需求和測試用例關(guān)聯(lián)后,通過范圍分析視圖在測試執(zhí)行階段可以查閱每個功能的現(xiàn)狀,從而了解當(dāng)前的測試進(jìn)度。范圍分析視圖以不同的顏色標(biāo)出了當(dāng)前該功能下測試用例的執(zhí)行情況,由于該視圖能顯示失敗、沒有完成、沒有執(zhí)行和通過4種狀態(tài)的測試用例數(shù)目和比例,因此,便于測試人員和管理人員了解當(dāng)前每個功能的測試狀態(tài)。從而對項(xiàng)目進(jìn)度進(jìn)行控制。
網(wǎng)格視圖是需求管理的另一種視圖模式。它可以列出測試需求的一些相關(guān)屬性,便于對測試需求進(jìn)行查詢和過濾。
通過使用QC的需求管理功能,可以將不同的需求分類,并通過需求與測試用例建立關(guān)聯(lián),跟蹤需求到測試過程的每一個步驟,如果需求變更,可以確定哪些測試用例和缺陷受到影響,保證整個測試過程的可追溯,縮短了需求評審和測試管理的時間。
QC通過測試計劃功能創(chuàng)建和管理測試用例,測試用例是整個測試過程比較重要的內(nèi)容,是測試執(zhí)行的依據(jù)。測試人員在QC中,將需求細(xì)化,轉(zhuǎn)化為測試用例,創(chuàng)建測試步驟,描述所要執(zhí)行的操作和預(yù)期結(jié)果。
測試計劃功能用來設(shè)計和管理靜態(tài)的測試用例。它提供測試網(wǎng)格和測試計劃樹兩種視圖模式。樹狀視圖便于對所有測試用例的結(jié)構(gòu)和每個測試用例的內(nèi)容進(jìn)行管理。數(shù)據(jù)表格視圖對于測試用例的屬性維護(hù)和查詢過濾比較方便。用戶可以通過頁面菜單進(jìn)行視圖切換。
2.2.1 創(chuàng)建測試用例
測試用例是為某個特殊目標(biāo)而編制的一組測試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測試某個程序路徑或核實(shí)是否滿足某個特定需求。QC在使用上對于測試用例設(shè)計沒有統(tǒng)一標(biāo)準(zhǔn),用戶可以根據(jù)需要自己制定相應(yīng)的測試用例管理標(biāo)準(zhǔn)。
【測試計劃】功能中,通過“新建測試”操作創(chuàng)建測試用例,對測試輸入數(shù)據(jù)、測試步驟、預(yù)期結(jié)果進(jìn)行說明。
2.2.2 建立需求覆蓋
設(shè)計測試用例后,每個測試用例需要和測試需求進(jìn)行關(guān)聯(lián),這樣才能在測試需求的覆蓋視圖上體現(xiàn)出每個需求的覆蓋情況。
通過為需求定義測試覆蓋,建立測試和需求之間的追蹤關(guān)系,QC還可以將測試用例與缺陷建立關(guān)聯(lián),實(shí)現(xiàn)從需求到測試再到缺陷的完整追蹤。
測試執(zhí)行的過程也就是運(yùn)行測試用例以發(fā)現(xiàn)軟件缺陷的過程,有時在測試執(zhí)行階段,同一個測試用例需要反復(fù)運(yùn)行多次,也就是多輪測試。為了使測試用例支持多輪測試,我們需要將測試用例設(shè)計和測試用例執(zhí)行分開。
2.3.1 創(chuàng)建測試集
QC在測試實(shí)驗(yàn)室功能中創(chuàng)建測試集(測試執(zhí)行),每一輪測試可以創(chuàng)建一個測試集,相同的測試用例可以創(chuàng)建不同的測試集,每個測試集可以包含相同或不同的測試用例。
QC的【測試實(shí)驗(yàn)室】功能中,通過“新建測試集”操作將測試用例創(chuàng)建到每一輪次的測試執(zhí)行中。
測試實(shí)驗(yàn)室中,提供了5種不同的狀態(tài)來跟蹤測試用例的運(yùn)行狀況。
(1)No Run:該用例本輪測試未被運(yùn)行;(2)Pass:該用例本輪測試已經(jīng)執(zhí)行通過,未發(fā)現(xiàn)缺陷;
(3)Failed:該用例本輪測試執(zhí)行失敗,發(fā)現(xiàn)了一個或多個軟件缺陷;
(4)Not Completed:當(dāng)前條件下,還不能成功運(yùn)行這條用例,即:該用例的所有步驟中,有一步或幾步還沒有運(yùn)行。
(5)N/A:用例設(shè)計有問題或者需求已經(jīng)改變,該用例無法運(yùn)行。
測試用例每個步驟在執(zhí)行時狀態(tài),分別為:(6)No Run:該步驟還未被執(zhí)行;
(7)Pass:該步驟本輪測試執(zhí)行通過;
(8)Failed:該步驟本輪測試執(zhí)行失敗,發(fā)現(xiàn)了一個或多個軟件缺陷。
2.3.2 執(zhí)行測試集
測試集創(chuàng)建成功后,通過執(zhí)行測試集完成對測試用例的執(zhí)行,同時驗(yàn)證測試用例的設(shè)計效率,簡化了測試記錄的過程。測試人員在執(zhí)行測試集時添加Bug,使缺陷直接關(guān)聯(lián)到相應(yīng)測試用例,充分保證了測試覆蓋。
QC將測試用例的執(zhí)行定義為以下5種狀態(tài)。測試人員執(zhí)行測試時,根據(jù)實(shí)際執(zhí)行情況將執(zhí)行結(jié)果設(shè)置為不同的狀態(tài)。
(1)Failed:該用例執(zhí)行失敗,執(zhí)行失敗的用例,測試人員通過“新建缺陷”操作添加缺陷;
(2)N/A:該用例不適用;
(3)No Run:該用例尚未執(zhí)行,用例設(shè)計成功后,默認(rèn)狀態(tài)均為No Run;
(4)Not Completed:該用例未執(zhí)行完成;
(5) Passed:該用例執(zhí)行通過。
在使用測試管理工具以前,所有的缺陷都是通過Excel文件來進(jìn)行統(tǒng)計和管理的。測試人員發(fā)現(xiàn)缺陷后,直接在缺陷跟蹤表中填寫,然后通過電子郵件和開發(fā)人員溝通。這樣的缺陷管理方式非常不方便,而且很多缺陷統(tǒng)計信息無法采集。
QC的缺陷管理貫穿作用于測試的全過程,它可以提供管理系統(tǒng)終端到終端的缺陷跟蹤,實(shí)現(xiàn)從發(fā)現(xiàn)缺陷到修復(fù)缺陷再到回歸驗(yàn)證修復(fù)結(jié)果的閉環(huán)管理。QC基于瀏覽器的Web特征,能讓多個用戶同時通過瀏覽器查詢系統(tǒng)缺陷情況。
QC通過缺陷的狀態(tài)轉(zhuǎn)換實(shí)現(xiàn)其整個生命周期內(nèi)的閉環(huán)管理。用戶可以根據(jù)需要自己定制缺陷狀態(tài),也可以使用QC中原有的缺陷狀態(tài)。常用的缺陷狀態(tài)有:新建、拒絕、遺留、已關(guān)閉、已修正、重新開放。
測試人員將缺陷提交至QC后,通過缺陷狀態(tài)同開發(fā)人員進(jìn)行交互,實(shí)現(xiàn)缺陷的閉環(huán)管理。
QC的【缺陷】功能中,通過“新建缺陷”操作建立新缺陷。
當(dāng)測試人員通過測試集添加缺陷時,該缺陷自動關(guān)聯(lián)到相應(yīng)測試用例,當(dāng)通過【缺陷】標(biāo)簽頁添加缺陷時,需要選擇“項(xiàng)目”字段關(guān)聯(lián)到相關(guān)測試用例。
QC還提供了各種圖表功能幫助測試人員對測試狀態(tài)進(jìn)行統(tǒng)計和分析,從而發(fā)現(xiàn)存在的問題,進(jìn)行有針對性的解決。
2.5.1 需求-概要圖
根據(jù)指定條件顯示當(dāng)前項(xiàng)目的需求數(shù),用戶可以指定X軸的數(shù)據(jù)類型以及用作數(shù)據(jù)分組依據(jù)的需求信息,如圖2所示。
圖2 測試分析-需求概要圖
2.5.2 需求-進(jìn)度圖
顯示當(dāng)前項(xiàng)目在某個時間段特定時間點(diǎn)的累積需求數(shù)。根據(jù)用戶指定的條件顯示需求數(shù)。用戶可以指定沿 X 軸顯示的時間間隔,以及用作數(shù)據(jù)分組依據(jù)的需求信息。還可以指定是否要查看選定數(shù)據(jù)字段的歷史記錄,以及是否要查看需求數(shù)或需求數(shù)的變化,進(jìn)度圖如圖3所示。
圖3 測試分析-進(jìn)度圖
2.5.3 需求-范圍圖
根據(jù)需求的測試覆蓋范圍狀態(tài)顯示當(dāng)前項(xiàng)目中的需求數(shù),如圖4所示。
圖4 需求-范圍圖
2.5.4 測試計劃-概要圖
顯示當(dāng)前項(xiàng)目的測試用例數(shù)??筛鶕?jù)用戶指定的條件顯示用例個數(shù),測試計劃如圖5所示。
圖5 測試計劃-概要圖
2.5.5 測試執(zhí)行-概要圖
顯示屬于當(dāng)前測試集的測試用例數(shù),測試執(zhí)行如圖6所示。
圖6 測試執(zhí)行-概要圖
2.5.6 缺陷-進(jìn)度圖
顯示當(dāng)前項(xiàng)目中在某個時間段特定時間點(diǎn)缺陷的累積情況,或修復(fù)這些缺陷所花費(fèi)的時間量,缺陷進(jìn)度圖如圖7所示。
圖7 缺陷-進(jìn)度圖
軟件必須經(jīng)過測試,測試是驗(yàn)證軟件是否達(dá)到期望功能的唯一有效方法,也是軟件開發(fā)過程中必不可少的一環(huán)。通過測試管理工具QC對測試過程的管理,可以使測試流程更加規(guī)范、測試管理工作更加細(xì)致、高效,從而,更好的保證了軟件系統(tǒng)的測試質(zhì)量。
[1] (美)加瑞特(Garrett,T.),(美)高夫(Gauf,B)自動化軟件測試實(shí)施指南/(美)達(dá)斯?。―ustin,E.)[M].余昭暉,譯.北京:機(jī)械工業(yè)出版社,2010,4.
[2]柳勝編.軟件自動化測試框架設(shè)計與實(shí)踐[M].北京:人民郵電出版社,2009,11.