王云鵬,何肖慧
(中鐵信弘遠(北京)軟件科技有限責任公司 技術管理部,北京 100844)
在軟件開發的生命周期中,軟件測試是一個至關重要的環節。軟件測試是軟件質量保證工作的一個重要組成部分,也是重要的質量控制手段。為了保證所提交的軟件產品能夠滿足客戶的需求,以及在使用中的可靠性,就必須對所開發的軟件進行系統而全面的測試。
為了保證軟件產品的質量,需要對測試過程進行控制,軟件測試管理就是通過一定的管理方法和工具來對整個軟件測試過程進行監控,從而提高軟件測試的工作效率。
隨著各企業軟件測試工作的不斷深入,傳統使用Word進行測試管理的工作方式既無法實現對需求的覆蓋分析、又不能對測試執行情況進行監控,不能對測試結果、缺陷、測試效率進行統計分析,已遠不能滿足測試人員需要,為了更好的對軟件測試過程進行監控管理,保證軟件產品的質量,逐漸引出了測試管理的問題。
軟件測試工作也有流程,流程的定義將影響整個測試過程,QC是在一個基于瀏覽器的應用中,將測試過程流水化,實現從測試需求,測試計劃,測試執行,到測試缺陷的雙向跟蹤;它可以通過各種圖表完成對測試需求、測試用例、測試缺陷的分析,提高了測試的工作效率,使測試人員、開發人員可以在一個集中的測試管理系統中參與到整個測試過程。 QC測試流程如圖1所示。

圖1 QC測試流程
測試需求是整個測試的基礎,來源于軟件需求規格說明書,驅動整個測試過程。QC 的Web界面簡化了需求管理過程。測試人員通過對軟件需求的理解,整理軟件需求為測試需求,在QC的需求管理功能中,通過測試需求樹建立一個詳細的測試需求列表,這樣,即方便測試人員理解整個系統的構成,又可以通過將測試需求轉換為測試計劃,創建該需求對測試用例的追蹤,根據生成的報告和圖表輔助分析創建的測試需求,檢驗需求是否適用于測試范圍。
2.1.1 建立測試需求
測試需求可以分為測試、需求、未定義、文件夾、業務、組6種類型。測試需求的種類,可以在創建需求樹時,通過選擇需求類型下拉菜單中的相應值來確定。
QC中,通過【需求】功能中的“新建需求”操作,創建測試需求,測試需求不同于測試用例,不需要具體到每個詳細的測試步驟和期望結果,只要歸納出要測的各個功能點,在每條需求的詳細信息頁面中進行簡單描述即可。
這樣的測試需求簡單明了,便于開發人員和測人員進行討論,確定最終的測試范圍,也便于整個項目的管理團隊進行查閱。
2.1.2 建立需求關聯
制定測試需求后,需要把每條測試需求和相應的測試用例相關聯,從而保證所有的測試需求都有測試用例進行覆蓋,每個功能點都能被測到。
需求詳細信息視圖中,通過“測試范圍”頁簽中“選擇測試用例”的方式建立需求與測試用例的關聯。
QC的需求管理模塊除了提供樹狀視圖外,還另外提供了范圍分析和需求網格視圖模式。測試人員將需求和測試用例關聯后,通過范圍分析視圖在測試執行階段可以查閱每個功能的現狀,從而了解當前的測試進度。范圍分析視圖以不同的顏色標出了當前該功能下測試用例的執行情況,由于該視圖能顯示失敗、沒有完成、沒有執行和通過4種狀態的測試用例數目和比例,因此,便于測試人員和管理人員了解當前每個功能的測試狀態。從而對項目進度進行控制。
網格視圖是需求管理的另一種視圖模式。它可以列出測試需求的一些相關屬性,便于對測試需求進行查詢和過濾。
通過使用QC的需求管理功能,可以將不同的需求分類,并通過需求與測試用例建立關聯,跟蹤需求到測試過程的每一個步驟,如果需求變更,可以確定哪些測試用例和缺陷受到影響,保證整個測試過程的可追溯,縮短了需求評審和測試管理的時間。
QC通過測試計劃功能創建和管理測試用例,測試用例是整個測試過程比較重要的內容,是測試執行的依據。測試人員在QC中,將需求細化,轉化為測試用例,創建測試步驟,描述所要執行的操作和預期結果。
測試計劃功能用來設計和管理靜態的測試用例。它提供測試網格和測試計劃樹兩種視圖模式。樹狀視圖便于對所有測試用例的結構和每個測試用例的內容進行管理。數據表格視圖對于測試用例的屬性維護和查詢過濾比較方便。用戶可以通過頁面菜單進行視圖切換。
2.2.1 創建測試用例
測試用例是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,以便測試某個程序路徑或核實是否滿足某個特定需求。QC在使用上對于測試用例設計沒有統一標準,用戶可以根據需要自己制定相應的測試用例管理標準。
【測試計劃】功能中,通過“新建測試”操作創建測試用例,對測試輸入數據、測試步驟、預期結果進行說明。
2.2.2 建立需求覆蓋
設計測試用例后,每個測試用例需要和測試需求進行關聯,這樣才能在測試需求的覆蓋視圖上體現出每個需求的覆蓋情況。
通過為需求定義測試覆蓋,建立測試和需求之間的追蹤關系,QC還可以將測試用例與缺陷建立關聯,實現從需求到測試再到缺陷的完整追蹤。
測試執行的過程也就是運行測試用例以發現軟件缺陷的過程,有時在測試執行階段,同一個測試用例需要反復運行多次,也就是多輪測試。為了使測試用例支持多輪測試,我們需要將測試用例設計和測試用例執行分開。
2.3.1 創建測試集
QC在測試實驗室功能中創建測試集(測試執行),每一輪測試可以創建一個測試集,相同的測試用例可以創建不同的測試集,每個測試集可以包含相同或不同的測試用例。
QC的【測試實驗室】功能中,通過“新建測試集”操作將測試用例創建到每一輪次的測試執行中。
測試實驗室中,提供了5種不同的狀態來跟蹤測試用例的運行狀況。
(1)No Run:該用例本輪測試未被運行;(2)Pass:該用例本輪測試已經執行通過,未發現缺陷;
(3)Failed:該用例本輪測試執行失敗,發現了一個或多個軟件缺陷;
(4)Not Completed:當前條件下,還不能成功運行這條用例,即:該用例的所有步驟中,有一步或幾步還沒有運行。
(5)N/A:用例設計有問題或者需求已經改變,該用例無法運行。
測試用例每個步驟在執行時狀態,分別為:(6)No Run:該步驟還未被執行;
(7)Pass:該步驟本輪測試執行通過;
(8)Failed:該步驟本輪測試執行失敗,發現了一個或多個軟件缺陷。
2.3.2 執行測試集
測試集創建成功后,通過執行測試集完成對測試用例的執行,同時驗證測試用例的設計效率,簡化了測試記錄的過程。測試人員在執行測試集時添加Bug,使缺陷直接關聯到相應測試用例,充分保證了測試覆蓋。
QC將測試用例的執行定義為以下5種狀態。測試人員執行測試時,根據實際執行情況將執行結果設置為不同的狀態。
(1)Failed:該用例執行失敗,執行失敗的用例,測試人員通過“新建缺陷”操作添加缺陷;
(2)N/A:該用例不適用;
(3)No Run:該用例尚未執行,用例設計成功后,默認狀態均為No Run;
(4)Not Completed:該用例未執行完成;
(5) Passed:該用例執行通過。
在使用測試管理工具以前,所有的缺陷都是通過Excel文件來進行統計和管理的。測試人員發現缺陷后,直接在缺陷跟蹤表中填寫,然后通過電子郵件和開發人員溝通。這樣的缺陷管理方式非常不方便,而且很多缺陷統計信息無法采集。
QC的缺陷管理貫穿作用于測試的全過程,它可以提供管理系統終端到終端的缺陷跟蹤,實現從發現缺陷到修復缺陷再到回歸驗證修復結果的閉環管理。QC基于瀏覽器的Web特征,能讓多個用戶同時通過瀏覽器查詢系統缺陷情況。
QC通過缺陷的狀態轉換實現其整個生命周期內的閉環管理。用戶可以根據需要自己定制缺陷狀態,也可以使用QC中原有的缺陷狀態。常用的缺陷狀態有:新建、拒絕、遺留、已關閉、已修正、重新開放。
測試人員將缺陷提交至QC后,通過缺陷狀態同開發人員進行交互,實現缺陷的閉環管理。
QC的【缺陷】功能中,通過“新建缺陷”操作建立新缺陷。
當測試人員通過測試集添加缺陷時,該缺陷自動關聯到相應測試用例,當通過【缺陷】標簽頁添加缺陷時,需要選擇“項目”字段關聯到相關測試用例。
QC還提供了各種圖表功能幫助測試人員對測試狀態進行統計和分析,從而發現存在的問題,進行有針對性的解決。
2.5.1 需求-概要圖
根據指定條件顯示當前項目的需求數,用戶可以指定X軸的數據類型以及用作數據分組依據的需求信息,如圖2所示。

圖2 測試分析-需求概要圖
2.5.2 需求-進度圖
顯示當前項目在某個時間段特定時間點的累積需求數。根據用戶指定的條件顯示需求數。用戶可以指定沿 X 軸顯示的時間間隔,以及用作數據分組依據的需求信息。還可以指定是否要查看選定數據字段的歷史記錄,以及是否要查看需求數或需求數的變化,進度圖如圖3所示。

圖3 測試分析-進度圖
2.5.3 需求-范圍圖
根據需求的測試覆蓋范圍狀態顯示當前項目中的需求數,如圖4所示。

圖4 需求-范圍圖
2.5.4 測試計劃-概要圖
顯示當前項目的測試用例數。可根據用戶指定的條件顯示用例個數,測試計劃如圖5所示。

圖5 測試計劃-概要圖
2.5.5 測試執行-概要圖
顯示屬于當前測試集的測試用例數,測試執行如圖6所示。

圖6 測試執行-概要圖
2.5.6 缺陷-進度圖
顯示當前項目中在某個時間段特定時間點缺陷的累積情況,或修復這些缺陷所花費的時間量,缺陷進度圖如圖7所示。

圖7 缺陷-進度圖
軟件必須經過測試,測試是驗證軟件是否達到期望功能的唯一有效方法,也是軟件開發過程中必不可少的一環。通過測試管理工具QC對測試過程的管理,可以使測試流程更加規范、測試管理工作更加細致、高效,從而,更好的保證了軟件系統的測試質量。
[1] (美)加瑞特(Garrett,T.),(美)高夫(Gauf,B)自動化軟件測試實施指南/(美)達斯汀(Dustin,E.)[M].余昭暉,譯.北京:機械工業出版社,2010,4.
[2]柳勝編.軟件自動化測試框架設計與實踐[M].北京:人民郵電出版社,2009,11.