基於類似項目的測試估算是測試過程中經常應用的估算方法,即通過比較以前類似項目的估算結果來估算新的測試項目。但是,爲了得到更好的測試估算結果,在實踐中需要採用一些參考的參數來該方法進行細化。下面是細化之後的基於類似項目的測試估算的基本步驟:
1)按照合適的工作分解結構WBS的方式收集以前類似項目的測試規模和工作量;
2)估算得到當前項目的測試估算;
3)比較當前項目和類似項目的參數,以得到兩者的比例;
4)根據類似項目的估算結果和步驟3)中比例,計算當前項目的估算值;
5)檢查兩個項目的不同假設條件和前提條件,以及其他可能影響測試估算的因素,對最終的估算結果進行修正;
基於類似項目的測試估算需要有一定的前提條件,如能夠收集類似項目的測試規模和工作量。當前項目的測試規模,需要測試人員根據其他的信息進行估算,如系統功能的特點、系統需求的條目、迴歸測試用例的數目等。
下面以X R1.0項目和Y R1.0項目作爲例子,來闡述基於類似項目的測試估算方法的步驟。
1)類似項目的測試規模
首先,收集和分析以前類似項目X R1.0的測試規模,該數據主要從下面幾個參數考慮:新設計的測試用例數目、新執行的測試用例數目、迴歸測試用例數目、缺陷數目,以及其他方面的因素考慮。下表是類似項目X R1.0的測試規模:
表1 類似項目的實際結果
測試規模的參數 |
數量(個) |
新設計的測試用例數目 |
100 |
新執行的測試用例數目 |
200 |
迴歸測試用例數目 |
1000 |
缺陷數目 |
68 |
其他 |
|
2)當前項目的測試估算
其次,測試人員根據測試對象的一些輸入,如系統的需求條目、覆蓋的質量屬性、可能的缺陷分類以及迴歸測試用例等來估算當前項目的測試規模,項目Y R1.0估算得到的測試規模數據如下:
表2 當前項目的測試估算
測試規模的參數 |
數量(個) |
新設計的測試用例數目 |
90 |
新執行的測試用例數目 |
240 |
迴歸測試用例數目 |
1200 |
缺陷數目 |
72 |
其他 |
|
對於表中的缺陷數目,表1中的數目是已知的爲68,而表中的72,對於組織成熟度較高的組織和項目,可以根據以前收集的度量數據進行計算,如每千行代碼的缺陷數據;如果沒有這樣的度量數據,其中的72只能是憑經驗和判斷來估算得到。本例子中,缺陷數目72是根據測試對象的大小、複雜程度、開發人員的經驗等估算得到的,可以作爲一個參考。
3)測試估算的比較
第三步,根據表1和表2中的數據,計算兩個項目的測試規模之間的比例,如表3所示:
表3 兩個項目測試規模的比較
測試規模的參數 |
X R1.0數量(個) |
Y R1.0數量(個) |
百分比 |
新設計的測試用例數目 |
100 |
90 |
0.9 |
新執行的測試用例數目 |
200 |
240 |
1.2 |
迴歸測試用例數目 |
1000 |
1200 |
1.2 |
缺陷數目 |
68 |
72 |
1.1 |
其他 |
|
|
|
4)計算當前項目的工作量
第四步,根據表3中得到的當前項目和類似項目不同測試規模之間的百分比,以及以前類似項目X R1.0的實際測試工作量,可以計算得到當前項目的測試工作量:
表4 當前項目的測試工作量計算
測試規模的參數 |
X R1.0數量(個) |
Y R1.0數量(個) |
百分比 |
X R1.0數量(PW) |
Y R1.0數量(PW) |
新設計的測試用例數目 |
100 |
90 |
0.9 |
8.3 |
7.5 |
新執行的測試用例數目 |
200 |
240 |
1.2 |
13.3 |
16 |
迴歸測試用例數目 |
1000 |
1200 |
1.2 |
50 |
60 |
缺陷數目 |
68 |
72 |
1.1 |
9.1 |
9.6 |
其他 |
|
|
|
20.2 |
23.3 |
總共 |
|
|
|
100.9 |
116.4 |
表4中的“其他”選擇的工作量,包括了測試過程中的其他一些測試活動,如參加項目會議、部門會議、項目協調溝通、電話會議等。該類型的測試工作量,常常會在實際測試過程中容易被遺漏。
5)假設條件和前提條件
測試人員應用基於類似項目的測試估算的時候,除了考慮兩個不同項目的定量的測試數據之外,如上述提到的各種數據;還需要考慮兩者之間的一些實際假設條件和前提條件,如項目採用的技術、參與人員的技能水平等,具體如下:
1)類似項目的歷史數據和經驗符合當前項目的要求,如採用C語言開發嵌入式軟件的測試估算數據,不一定適用於採用.NET技術開發的WEB產品。
2)在採用類似項目的歷史數據之前,必須確保它們的正確性,如實際的結果有沒有包含測試人員的加班時間。
3)假如條件允許,採用多個項目的歷史數據。如果不同項目的歷史數據存在矛盾,可以通過取平均值或者其他標準偏差方式進行相應的調整。
基於類似項目的測試估算方法,需要測試人員在測試過程中不斷的收集各個測試活動的實際花費工作量。並在測試結束之後比較實際的和原先估算的測試工作量之間的差距,查找存在差距的原因,如遺漏了某些測試任務或者測試過程中的突發事件等。通過不斷的數據收集和分析得到更加正確合理的項目的測試工作量歷史數據,爲將來項目提供更好的基線測試估算數據,從而不斷提升基於類似項目的測試估算的正確性。