張燕+劉善田+張佳佳+宋士濤+鄭希源
摘 要:軟件測試工作中的風險是不可避免的,如何有效的識別軟件測試中的風險非常重要。本文論述了一種新的故障樹風險識別方法,能夠進行定性分析和定量分析,能更有效的識別軟件測試中存在的風險。
關鍵詞:軟件測試;風險識別;故障樹分析法
DOI:10.16640/j.cnki.37-1222/t.2017.22.097
1 前言
軟件測試是提高軟件產品質量最直接、最有效的手段。在軟件測試過程中,即使是規模很小的軟件系統,我們也不可能對系統進行覆蓋率為100%的測試,即存在用戶發現軟件缺陷的可能性,這就是測試風險。軟件測試風險管理包括行風險管理規劃、風險識別、定性和定量風險分析、風險應對規劃和風險監控六個主要環節。其中風險識別是指在風險事故發生之前,人們運用各種方法系統的、連續的認識所面臨的各種風險以及分析風險事故發生的潛在原因。
2 風險管理的研究現狀
風險來自于未來的不確定性,風險是指人們在生產建設和日常生活中遭遇能導致人身傷亡、財產受損及其他經濟損失的自然災害、意外事故和不可測事件的可能性。我國對于風險問題的研究是從風險決策開始的,起步較晚,“風險”一詞是在1980年首次由周士康提出來的。在20世紀80年代,我國對項目風險管理的研究主要是對項目風險管理的定性描述,到了80年代末期,我國對于項目的風險管理才逐步發展起來,但是針對軟件測試的風險管理的論著少之又少。我國研究的風險管理大部分是針對軟件開發項目,而不是軟件測試項目。
3 軟件測試中風險識別的重要性
軟件測試的風險管理的目的是在測試前對可能存在的缺陷或工作中導致測試無法有效執行的可能性進行分析,來合理安排測試資源活動,盡量將測試風險將到最低。測試的不成功導致導致軟件交付潛藏著問題,一旦在運行時爆發,就會帶來很大的商業風險。
測試風險的管理的第一步就是要識別出對測試項目產生重大影響的測試風險,這就是測試風險識別活動。事實上,有很多實施了風險管理活動的測試項目,仍然會出現較大的意外而導致測試項目失敗,其根源就是測試項目沒有真正識別出那些會對測試項目產生危機的風險。
4 目前常用的風險識別技術
常用的風險識別技術,主要是頭腦風暴法、訪談法和風險檢查表法等。
頭腦風暴法是指刺激并鼓勵一群知識淵博的人員暢所欲言,以發現潛在的失效模式及相關為先、風險、決策標準及/或處理辦法。頭腦風暴法讓項目相關的人員都參與,有助于全面溝通,有助于發現新的風險,速度較快并易于開展,適合在在風險識別階段進行定性分析。但是頭腦風暴法相對松散,較難保證過程的全面性;可能會出現特殊的小組情況,某些有重要觀點的人不愿意提出意見等。
訪談法就是與不同的項目相關人員進行有關風險的訪談,其結果將有助于發現那些在常規計劃中未被識別的風險。該方法是利用被訪談人員的資深背景和工作經驗來識別風險,局限性是識別的風險不夠全面。
風險檢查表法是把測試項目可能遇到的風險列成表,風險識別人員對照表的每一項進行判斷,逐個檢查,該方法的優點是簡單、快速、容易理解、結果穩定,缺點是專業人員不可能編制一個全面的檢查表,無法預防可能遇到的新風險。
5 故障樹風險識別技術
在研究過程中,我們發現安全系統工程中最重要的分析方法故障樹分析法,能夠應用到軟件測試的風險識別管理中。故障樹分析(Fault Tree Analysis,FTA)技術是美國貝爾電報公司的電話實驗室于1962年開發的,它采用邏輯的方法,形象地進行風險的分析工作,特點是直觀、明了,思路清晰,邏輯性強,體現了以系統工程方法研究安全問題的系統性、準確性和預測性。
我們先使用風險檢查表法分析出所有的直接風險或間接風險,然后按照故障樹分析法把軟件測試風險視為頂事件,自上而下逐級一直分析到最底層的風險,再把所有的風險按邏輯關系(與、或等)表達出來,最后按照故障樹分析法進行定性分析和定量分析,計算出軟件測試風險發生的概率,或者某個風險發生的概率。我們稱這種先使用風險檢查表法識別出軟件測試的風險,然后使用故障樹分析法對風險進行分析的識別方法稱為故障樹風險識別技術。
6 故障樹風險識別技術的應用
我們以某個測試項目為例,先使用風險表檢查法識別出來的風險情況如下:
6.1 定性分析
我們用故障樹風險識別技術的結構法進行定性分析計算最小割集:
A=A1+A2+A3
=X1A4+(A5+A6)+(X5+ A4)
=X1(X2+ X3)+(X4+X5)+(X6+ X5+ X7)+(X2+ X3)
=X1X2+X1X3+ X2+ X3+A4+2X5+X6+ X7
=X2(X1+1)+X3(X1+1)+A4+X5+X6+ X7
= X2+ X3+A4+X5+X6+ X7
這樣我們求出了最小割集是X2、X3、A4、X5、X6、X7,這些事件是對測試風險有影響的所有事件,排除了事件X1對最終測試風險的影響。
6.2 定量分析
定量分析是在各個底事件相互獨立和已知其發生概率的條件下,求出故障樹頂事件發生的概率,根據計算結果與預定的目標值比較,可以確定如何處理該風險。
頂事件發生概率的計算公式為:
其中,P(Ai)是事件Ai發生的概率。
通過以上分析可以看出,采用故障樹風險識別技術進行定性分析,能夠排除很多無關的測試風險,有效的減少后期風險分析的工作量,能夠有效改善傳統識別技術邏輯性不強、識別的不夠全面,存在冗余的風險等缺點。另外,故障樹風險識別技術能夠進行定量分析,這是傳統的風險識別方法做不到的。定量分析能夠提供軟件測試風險或者主要測試風險發生的概率,從而更有利的指導后期的風險分析工作。
7 小結
通過實際運用和具體分析可以看出,故障樹風險識別技術既能做定性分析又能做定量分析,能夠更有效的識別軟件測試中的風險,對以后軟件風險的分析和解決提供更有力的依據。
參考文獻:
[1]魯英.軟件測試風險分析及其對策研究[D].上海:上海財經大學,2008.
[2]谷珊.風險管理在軟件測試項目中的應用[D].北京:北京郵電大學,2009.
[3]王杉杉.軟件測試項目的風險管理[D].北京:北京工業大學,2011.
[4]楊俊,張素芬.基于模糊評判的軟件測試項目風險評估方法[J].信息化研究,2015,41(05):14-17.
[5]李紅燕,尉雙梅.淺談軟件測試風險管理[J].電腦知識與技術,2012,08(11):2518-2520.
作者簡介:張燕(1981-),女,山東蓬萊人,碩士研究生,主要從事軟件測試和軟件測試管理研究。endprint