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