常規(guī)的風險評估通過計算可能性和嚴重程度來實現(xiàn),它的缺點是沒有能夠更具體地體現(xiàn)各種不同因素對風險可能性和嚴重程度的影響。如果在評估風險時考慮風險可能性和嚴重程度的影響因素,我們可以優(yōu)化風險評估公式,從而更好構(gòu)建測試優(yōu)先級風險的可能性和嚴重程度都會受到各種因素的影響。例如,對于風險發(fā)生的可能性可以考慮的因素有測試對象的復(fù)雜性、時間壓力及地理分散程度(如開發(fā)和測試不在同一個進行)等;對于風險的嚴重程度可以從測試對象的使用頻率及失效發(fā)生的可視性等方面考慮。

  基于優(yōu)化的風險級別選擇測試重點的核心思想如下。

  ● 根據(jù)組織和軟件產(chǎn)品的特點識別影響風險發(fā)生可能性和嚴重程度的主要因素,并根據(jù)每個因素在風險分析中的重要性設(shè)置不同的權(quán)重。

  ● 針對軟件產(chǎn)品的每個功能模塊,根據(jù)識別出的影響風險可能性和嚴重程度的主要因素評估風險發(fā)生的可能性和嚴重程度。

  ● 通過優(yōu)化之后的風險級別計算公式得到每個功能模塊的總的風險級別。

  ● 選擇合適的測試策略,并排列不同功能模塊的測試重點。

  下面是針對某個軟件產(chǎn)品的5個功能模塊選擇測試重點的案例。為了簡單起見,將5個功能模塊分別標識為功能模塊A~E。

  基于優(yōu)化的風險級別選擇測試重點

  在該軟件產(chǎn)品的測試過程中識別的影響風險發(fā)生可能性的主要因素分別為功能的復(fù)雜性、時間壓力和地理分散程度,而影響風險嚴重程度的主要因素為功能使用頻率和失效發(fā)生的可視性。

  每個功能模塊風險發(fā)生的可能性影響因素和嚴重程度影響因素分別以1~5代表從小到大的風險發(fā)生可能性和嚴重程度;同時將不同影響因素的權(quán)重分成3個等級并賦予1、3和10,分別代表權(quán)重小、中等和大。表1所示為基于優(yōu)化的風險級別選擇測試重點的模板。

  表1 基于優(yōu)化的風險級別選擇測試重點的模板

 

嚴重程度的影響因素

發(fā)生可能性的影響因素

總的風險級別

功能模塊

使用頻率

失效的可視性

復(fù)雜性

時間壓力

地理分散程度

 

權(quán)重

3

10

3

10

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  以基于優(yōu)化的風險級別選擇測試重點的模板為基礎(chǔ),開發(fā)團隊和測試團隊通過頭腦風暴的方法針對每個功能模塊風險發(fā)生嚴重程度和可能性的影響因素評估嚴重程度和可能性。如果出現(xiàn)較大的分歧,則需要采取其他一些措施,使得評估的結(jié)果達成一致。例如,采用團隊中建議的高級別作為評估結(jié)果。表2所示為針對該軟件產(chǎn)品的5個功能模塊后獲得的嚴重程度和可能性的評估數(shù)值。

  表2 嚴重程度和可能性的評估數(shù)值

 

嚴重程度的影響因素

發(fā)生可能性的影響因素

總的風險級別

功能模塊

使用頻率

失效的可視性

復(fù)雜性

時間壓力

地理分散程度

 

權(quán)重

3

10

3

10

1

 

功能模塊A

5

3

2

4

5

 

功能模塊B

5

3

5

4

5

 

功能模塊C

2

1

2

2

5

 

功能模塊D

4

4

3

2

1

 

功能模塊E

5

1

4

2

1

 

計算每個功能模塊的總的風險級別,結(jié)果如下。

  (1)嚴重程度 = (嚴重程度影響因素1的權(quán)重 × 評估的嚴重程度數(shù)值 + 嚴重程度影響因素2的權(quán)重 × 評估的嚴重程度數(shù)值)。

 。2)可能性 = (可能性影響因素1的權(quán)重 × 評估的可能性數(shù)值 + 可能性影響因素2的權(quán)重 × 評估的可能性數(shù)值 + 可能性影響因素3的權(quán)重 × 評估的可能性數(shù)值)。

  將評估得到的嚴重程度和可能性評估數(shù)值代入公式計算,分別得到每個功能模塊的總的風險級別,如表9?4所示。

  表3 功能模塊的總的風險級別

 

嚴重程度的影響因素

發(fā)生可能性的影響因素

總的風險級別

功能模塊

使用頻率

失效的可視性

復(fù)雜性

時間壓力

地理分散程度

 

權(quán)重

3

10

3

10

1

 

功能模塊A

5

3

2

4

5

2295

功能模塊B

5

3

5

4

5

2700

功能模塊C

2

1

2

2

5

496

功能模塊D

4

4

3

2

1

1560

功能模塊E

5

1

4

2

1

825

  計算得到每個功能模塊的總的風險級別之后,測試人員可以根據(jù)該結(jié)果選擇測試策略。例如,對于總的風險級別較高的功能模塊A和B,應(yīng)該投入更多的測試工作量,以達到更高的測試覆蓋率;對于總的風險級別低的功能模塊C,在測試時間和資源受到限制時可以執(zhí)行較少的測試,甚至可以放在下一輪測試中。

  確定每個功能模塊的總的風險級別也有助于選擇測試技術(shù)。例如,對于功能模塊A和B,可能需要選擇覆蓋率較高的條件和條件組合覆蓋;對于功能模塊C,可能只要選擇語句覆蓋即可。