基于缺陷的測試過程有效性評價方法研究
開發過程的質量決定了軟件的質量,軟件測試過程的質量同樣決定了軟件測試的質量和有效性。軟件測試在軟件質量的保證環節起著至關重要的作用,在文獻中定義了軟件評價過程模型,這是國際上共同遵守的軟件評測過程標準。但是在軟件測試過程中,測試用例的設計、測試執行過程中的人員都對測試結果有很大的影響。如何約束這些可變因素,量化測試過程的有效性,輔助改善測試過程、使測試過程變得更為有效,是目前軟件測試過程中有待解決的問題。針對上述問題,本文提出了一種基于缺陷驅動的測試過程有效性的評價方法,該方法通過統計系統上線后一定周期內(建議統計時間高于3個月,小于12個月)客戶反饋的系統缺陷數結合測試過程中發現的缺陷數進行測試執行過程和測試用例設計過程的評價,從而達到對測試過程有效性評 價的目的。
1、 軟件測試過程及相關評價方法
1.1 軟件測試過程
軟件測試是一個為了找出錯誤而執行程序/系統的過程。它強調軟件測試是一個找錯的過程,而不僅僅證明系統是可以運行的過程。軟件測試過程包括了計劃、執行、檢查、改進,其主要具備了可重復性、可再現性、公正性和客觀性等特性。
1.2 缺陷探測率
缺陷探測率(Defect Detetion Percentage,縮寫 DDP),是衡量測試工作效率的軟件成本的重要指標之一。計算方法如下:
其中,Bugstester是軟件測試過程中發現的錯誤數,Bugscutomer是客戶方發現并反饋給技術支持人員并進行修復的錯誤數。DDP越高,說明測試過程中發現的問題數量越多,發布后客戶發現的問題越少,這樣就降低了外部故障不一致的成本,測試過程有效性高。
1.3 六西格瑪質量評價方法
σ(西格瑪)是希臘文的字母,在統計學中稱為標準差,用來表示數據的分散程度。六西格瑪是由GE從一種全面質量管理方法演變成為一個高度有效的企業流程設計、改善和優化的技術,并提供了一系列同等地適用于設計、生產和服務的新產品開發工具。在軟件質量評價方面,六西格瑪方法也得到了廣泛的應用。六西格瑪改進的標準流程(DMAIC)分為定義、測量、分析、改進和控制五個階段。其中西格瑪水平與軟件質量評價如下表:
▲表1 西格瑪水平業績
由于任何檢驗、驗證手段都不可能發現并排除所有缺陷,因此測試過程的有效性達應用六西格瑪的99.997%,那么測試過程就是可信的、有效的。
2、基于缺陷驅動的軟件測試過程有效性效性評價方法
2.1 測試執行過程缺陷遺漏率
測試執行過程的好壞主要有測試計劃、測試執行過程和測試記錄等階段決定。在測試執行過程中,完全的測試是不可能的,測試需要終止。因此在測試過程中,能夠發現全部的缺陷是不可能的,必然會有一部分遺漏。從而將一些問題暴露給用戶,從而影響用戶的滿意度、易用性。但是在測試過程中評價一個測試過程的有效性是很困難的,但是通過一段時間的系統上線應用,統計用戶反饋缺陷數目,進而比較容易評價測試過程的有效性,就如同2.2節中缺陷探測率的方法。但是缺陷探測率的評價方法僅僅只是通過缺陷數目來決定測試過程的好與壞,這僅僅停留在測試結果的評價階段,卻沒有覆蓋的整個測試過程。因此在缺陷探測率的基礎之上,本文提出一個測試執行過程缺陷遺漏率(Test-Process Lose Defect Percentage,縮寫PLDP)的概念。同時在這之上加入了缺陷嚴重程度的約束條件。其中缺陷嚴重程度大體分為如下:
嚴重程度1(致命的):軟件產品在正常運行環境下無法繼續為用戶提供服務,并無其他工作方式滿足同樣功能,或者軟件產品失效后造成人身傷害或者危機人身安全。
嚴重程度2(嚴重的):極大的影響軟件產品提供給用戶的服務,或者嚴重影響系統要求或基本功能的使用。
嚴重程度3(一般的):軟件產品功能需要增強或者存在缺陷,但是存在對應的補救方法解決。
嚴重程度4(輕微的):細小的問題,不需要補救方法或者功能增強,或者操作不方便,容易導致用戶誤操作。
不用缺陷嚴重程度,將其定義為不同的權重值分別為w1=5代表嚴重程度1、w2=3代表嚴重程度2、w3=2代表嚴重程度3和w4=1代表嚴重程度4。按照缺陷嚴重程度計算出帶有缺陷嚴重程度權重的缺陷基數(Defect Base Numbers,縮寫DBN),定義如下:
其中wi為上述的各個嚴重程度的權重, 代表對應缺陷嚴重程度的缺陷數。
因此可以定義PLDP如下:
其中,DBNInTCcostomer是客戶方發現并反饋給技術支持人員的錯誤并且該已被設計的測試用例覆蓋的錯誤數計算出來的缺陷基數。DBNInTCcostomer是軟件測試過程中發現的缺陷數計算出來的缺陷基數。測試執行過程缺陷遺漏率是用來軟件測試過程中測試執行及其之后階段的評價方法,測試用例覆蓋到的缺陷,在測試執行過程中并未發現,是測試工程師執行測試用例時出現的問題。PLDP越小,測試過程中的測試執行過程有效性越高。
2.2 測試用例丟失率
測試用例的設計處于測試過程中的上游階段,是測試執行的基礎。測試用例的設計過程覆蓋了測試計劃、測試規格說明書等測試過程階段。但是如何評價測試用例設計的優劣目前還無很好的辦法。因此針對上述問題,本文提出測試用例丟失率(Test-Case LosePercentage,縮寫TCLP)來評價測試用例的優劣程度。定義如下:
其中,TestCasedesign是有客戶方發現并反饋給技術支持人員的錯誤并且被測試用例覆蓋的測試用例數。是軟件測試過程中設計的測試用例數。測試用例丟失率是用來評價測試過程中,測試用例設計及其之前階段的評價方法。客戶發現的問題測試用例并未覆蓋到,是測試計劃、測試規格說明書和測試用例設計階段問題。TCLP越小,測試過程中的測試用例設計及其之前的階段的有效性越高。
2.3 測試過程有效性評價方法
測試過程失效率是由測試執行過程缺陷遺漏率和測試用例丟失率二者進行綜合考量的。測試過程失效率(Ineffectivityof Testing Process Percentage,縮寫ITPP)定義如下:
ITPP =(PLDP+TCLP)/2
測試過程有效性(Effective of Testing Process,縮寫ETP)評價方法是通過測試過程失效率進行評價,測試過程失效率越小,測試過程的有效性越高。
ETP = 1-ITPP
對于一個測試項目的測試過程中,測試過程的有效性主要是通過系統上線運行后一定周期內客戶發現缺陷數量為統計基礎的。由于測試過程也是受各種因素影響,測試有效性達到100%是一個理想值,顯示測試過程無法滿足。因此本文引入六四格瑪理論,當測試有效性達到99.997%時,就認定為測試過程是一個高質量的檢測、檢驗過程;達到四西格瑪93%以上99.997%以下,說明測試過程有待改進,但整體測試過程能夠基本保證被測軟件質量;達到二西格瑪68%以上93%以下,說明測試過程不可信,測試結果無參考價值,測試過程必須改進。具體評價結果如下表所示:
▲表2 測試過程有效性評價結論對比表
3、結論
軟件測試過程的有效性決定了測試結果的可信度,保證了軟件產品的質量。本文通過分析軟件測試過程,將其分成測試用例及其前期階段和測試執行及其后期階段,以被測產品上線運行一定時間內客戶發現的缺陷和測試過程中發現缺陷為基本出發點,應用測試執行過程缺陷遺漏率和測試用例丟失率對軟件過程有效性進行了評價,通過通過引入六西格瑪質量評價方法對軟件測試過程有效性進行了初步的劃分。但是目前該方法僅僅只在部分軟件系統中進行了初步的時間,例如對系統上線運行多長時間統計缺陷數等關鍵參數還需進一步分析研究。