測試管理 | 基于風(fēng)險的測試
基于風(fēng)險的測試
風(fēng)險是指負(fù)面或不希望發(fā)生的后果或事件發(fā)生的可能性。當(dāng)引起客戶、用戶、參與者或干系人對產(chǎn)品質(zhì)量或項目成功的信心減弱的問題可能發(fā)生時,風(fēng)險就存在。當(dāng)潛在問題主要影響的是產(chǎn)品質(zhì)量時,它們被稱為質(zhì)量風(fēng)險、產(chǎn)品風(fēng)險或產(chǎn)品質(zhì)量風(fēng)險。而當(dāng)潛在問題主要影響的是項目成功時,它們則被稱為項目風(fēng)險或計劃風(fēng)險。
在基于風(fēng)險的測試中,在干系人參與的產(chǎn)品質(zhì)量風(fēng)險分析的過程中對質(zhì)量風(fēng)險進(jìn)行識別和評估。測試團(tuán)隊設(shè)計、實施和執(zhí)行測試來緩解質(zhì)量風(fēng)險。質(zhì)量包括影響客戶、用戶和干系人滿意度的全部功能、行為、特征和屬性。因此,質(zhì)量風(fēng)險是產(chǎn)品可能存在質(zhì)量問題的情況。系統(tǒng)質(zhì)量風(fēng)險的例子包括報告中的錯誤計算(與準(zhǔn)確度相關(guān)的功能風(fēng)險),用戶輸入響應(yīng)慢(與效率和響應(yīng)時間相關(guān)的非功能風(fēng)險),界面和字段難以理解(與易用性和易理解性相關(guān)的非功能風(fēng)險)。當(dāng)測試找出了缺陷時,通過讓他人意識到這些缺陷,并在發(fā)布前有機(jī)會處理這些缺陷,測試緩解了質(zhì)量風(fēng)險。當(dāng)測試不再發(fā)現(xiàn)缺陷時,通過確保在測試條件下,系統(tǒng)可以正常運(yùn)作,測試也緩解了質(zhì)量風(fēng)險。
基于風(fēng)險的測試使用產(chǎn)品質(zhì)量風(fēng)險來選擇測試條件,為這些條件分配測試工作,并為生成的測試用例設(shè)定優(yōu)先級。基于風(fēng)險的測試有各種各樣的技術(shù),這些技術(shù)在采集的文檔的類型和級別,以及運(yùn)用的形式方面大相徑庭。基于風(fēng)險的測試明確指出的或隱含的目的就是用測試來降低整體的質(zhì)量風(fēng)險水平,具體而言是把風(fēng)險水平降低到可接受的范圍。
基于風(fēng)險的測試包含四個主要活動:
1、風(fēng)險識別
2、風(fēng)險評估
3、風(fēng)險緩解
4、風(fēng)險管理
要想取得最佳的效果,風(fēng)險識別和評估小組應(yīng)包括所有項目和產(chǎn)品干系人的代表,不過有時項目的實際情況導(dǎo)致某些干系人代理其它干系人。例如,在大眾市場的軟件開發(fā)中,可能抽樣一小部分潛在客戶,要求他們幫助識別潛在的嚴(yán)重影響他們使用軟件的缺陷;在這個例子中,抽樣的小部分潛在客戶就是作為所有最終客戶群的代理人。由于測試人員在產(chǎn)品質(zhì)量風(fēng)險和失效方面的專長,他們應(yīng)該積極參與風(fēng)險識別和評估過程
一、風(fēng)險識別
干系人可通過下列的一項或多項技術(shù)來識別風(fēng)險:
1、專家咨
2、獨立評估
3、使用風(fēng)險模版
4、項目回顧
5、風(fēng)險研討會
6、頭腦風(fēng)暴
7、檢查表
8、參考過去的經(jīng)驗
對參與風(fēng)險識別的干系人的抽樣越廣泛,風(fēng)險識別過程就越有可能識別出越多的嚴(yán)重產(chǎn)品質(zhì)量風(fēng)險。
風(fēng)險識別通常會產(chǎn)生一些副產(chǎn)品,例如,識別出并非產(chǎn)品質(zhì)量風(fēng)險的問題。例子包括有關(guān)產(chǎn)品或項目的一般疑問或問題,或參考的文檔,如需求和設(shè)計說明中的問題。質(zhì)量風(fēng)險識別的另一副產(chǎn)品是識別出項目風(fēng)險,不過項目風(fēng)險并不是基于風(fēng)險的測試關(guān)注的焦點。然而,項目風(fēng)險管理對于包括基于風(fēng)險測試在內(nèi)的所有測試方法都是很重要的
二、風(fēng)險評估
識別了風(fēng)險后,就開始風(fēng)險評估,即研究識別出的這些風(fēng)險。具體而言,風(fēng)險評估包括對每個風(fēng)險進(jìn)行分類,確定風(fēng)險發(fā)生的概率和影響。風(fēng)險評估還可能涉及評價或分配每個風(fēng)險的其它屬性,如風(fēng)險責(zé)任人。
風(fēng)險的分類就是將每個風(fēng)險劃分到適當(dāng)?shù)念愋椭校缧阅堋⒖煽啃浴⒐δ苄缘鹊取S行┙M織使用 ISO9126(ISO 9126 標(biāo)準(zhǔn)正在被 ISO 25000 標(biāo)準(zhǔn)所取代)的質(zhì)量特征進(jìn)行分類,但大多數(shù)組織采用的都是其它的分類方案。風(fēng)險分類時使用的檢查表通常與風(fēng)險識別使用的相同。有通用的質(zhì)量風(fēng)險檢查表,許多企業(yè)都根據(jù)自己的需要定制這些檢查表。如果使用檢查表作為風(fēng)險識別的基礎(chǔ),在風(fēng)險識別時通常就進(jìn)行了風(fēng)險的分類。
確定風(fēng)險的級別通常包括評估每條風(fēng)險發(fā)生的可能性,以及發(fā)生之后的影響。發(fā)生的可能性是指被測系統(tǒng)存在潛在問題的概率。換句話說,可能性是對技術(shù)風(fēng)險的級別的評估。
影響產(chǎn)品和項目風(fēng)險發(fā)生的可能性的因素包括:
1、技術(shù)和團(tuán)隊的復(fù)雜性
2、業(yè)務(wù)分析師、設(shè)計師和程序員的人員和培訓(xùn)問題
3、團(tuán)隊內(nèi)部的沖突
4、與供應(yīng)商的合同問題
5、異地工作的團(tuán)隊隊員
6、舊方法與新方法對立
7、工具和技術(shù)
8、管理或技術(shù)領(lǐng)導(dǎo)不力
9、時間、資源、預(yù)算和管理壓力
10、缺乏前期的質(zhì)量保證活動
11、高變更率? 早期的高缺陷率
12、 接口和集成問題
風(fēng)險發(fā)生的影響是指風(fēng)險發(fā)生對用戶、客戶或其它干系人的影響的嚴(yán)重程度。換句話說,影響來自于業(yè)務(wù)風(fēng)險。影響項目和產(chǎn)品風(fēng)險的影響程度的因素包括:
1、使用受影響的特性的頻率
2、該特性對于實現(xiàn)業(yè)務(wù)目標(biāo)的關(guān)鍵程度
3、聲譽(yù)的損害? 商業(yè)損失
4、潛在的財務(wù)、生態(tài)、社會損失或法律責(zé)任
5、民事或刑事法律制裁
6、吊銷執(zhí)照
7、缺乏合理的變通
8、明顯的失效導(dǎo)致負(fù)面聲譽(yù)
9、安全性
風(fēng)險的級別既可定性也可定量地評估。如果確定了可能性和影響的量化數(shù)據(jù),可以將這兩個值相乘,計算出定量的風(fēng)險優(yōu)先級數(shù)值。不過通常風(fēng)險的級別只能通過定性的方式確認(rèn)。也就是說,我們可以將可能性形容成很高、高、中、低或很低,但無法用精確的百分比表達(dá)出來;同樣地,我們可以將影響形容成很高、高、中、低或很低,但也不能完整或精確地表達(dá)財務(wù)上的影響。不應(yīng)該認(rèn)為定性的方法比定量的方法差;實際上,如果風(fēng)險級別的定量評估使用不當(dāng)?shù)脑挘瑫`導(dǎo)干系人對風(fēng)險程度的理解和管理。風(fēng)險級別的定性評估通常通過乘法或加法相結(jié)合,得到一個風(fēng)險總分。這個風(fēng)險總分可能被稱為風(fēng)險優(yōu)先數(shù),但確切來說,它應(yīng)是定性的、有序的相對評級。
另外,除非風(fēng)險分析基于廣泛的、有效統(tǒng)計的風(fēng)險數(shù)據(jù),風(fēng)險分析應(yīng)該更多基于干系人對于可能性和影響的主觀感知。通常,項目經(jīng)理、編程人員、用戶、業(yè)務(wù)分析師、架構(gòu)師和測試人員的感知各不相同,因此針對各項風(fēng)險的風(fēng)險級別可能有不同的意見。風(fēng)險分析過程應(yīng)包括達(dá)成共識,或者即使在最糟的情況下,也要有確立都同意的風(fēng)險級別的方式(如通過管理層下達(dá)命令或通過取該風(fēng)險級別的平均值,中間值或眾數(shù)值)。此外,還應(yīng)檢查風(fēng)險級別的分布情況,確保風(fēng)險的評分對于測試排序、優(yōu)先級設(shè)定和分工能起到實際的指導(dǎo)作用。否則,將無法使用風(fēng)險級別來指導(dǎo)風(fēng)險緩解活動。
三、風(fēng)險緩解
基于風(fēng)險的測試從質(zhì)量風(fēng)險分析(識別和評估產(chǎn)品質(zhì)量風(fēng)險)開始。質(zhì)量風(fēng)險分析是主測試計劃和其它測試計劃的基礎(chǔ)。正如計劃中所述,測試的設(shè)計、實施和執(zhí)行是為了覆蓋風(fēng)險。開發(fā)和執(zhí)行測試的工作量與風(fēng)險的級別成一定比例,也就是說風(fēng)險的級別越高,使用的測試技術(shù)就越細(xì)致(如結(jié)對測試),風(fēng)險的級別越低,使用的測試技術(shù)就越不細(xì)致(如等價類劃分或有時限的探索性測試)。此外,開發(fā)和執(zhí)行測試的優(yōu)先級也是依據(jù)風(fēng)險級別而設(shè)定。有些安全規(guī)范(如 FAA DO-178B/ED 12B,IEC 61508)規(guī)定了基于風(fēng)險級別的測試技術(shù)和覆蓋率。另外,風(fēng)險的級別還應(yīng)影響到一些決策,例如使用項目工作產(chǎn)品(包括測試)的評審、獨立的級別、測試人員的經(jīng)驗水平、確認(rèn)測試(再測試)和回歸測試的程度。
在項目開展期間,測試團(tuán)隊仍應(yīng)對改變質(zhì)量風(fēng)險集和/或已知質(zhì)量風(fēng)險的風(fēng)險級別的補(bǔ)充信息保持了 解。應(yīng)該定期調(diào)整質(zhì)量風(fēng)險分析,至少在項目的主要里程碑到來時(進(jìn)行這種調(diào)整),以此來指導(dǎo)對測試的調(diào)整。調(diào)整包括識別新風(fēng)險,重新評估現(xiàn)有風(fēng)險的級別和評價風(fēng)險緩解活動的有效性。例如,如果在需求階段,基于需求規(guī)格說明進(jìn)行了一次風(fēng)險識別和評估,那么當(dāng)設(shè)計規(guī)格說明定案后,就應(yīng)對已有的需求規(guī)格風(fēng)險重新進(jìn)行評價。再如,如果在測試中發(fā)現(xiàn)某個組件包含的缺陷要遠(yuǎn)比預(yù)期的缺陷數(shù)多,則可得出在此區(qū)域缺陷的可能性比預(yù)期的要高的結(jié)論,并將風(fēng)險的可能性和整體風(fēng)險級別上調(diào),根據(jù)調(diào)整結(jié)果就應(yīng)增加該組件測試的工作量。
在測試執(zhí)行開始之前也可以緩解產(chǎn)品質(zhì)量風(fēng)險。例如,如果在風(fēng)險識別時發(fā)現(xiàn)了需求的問題,項目組就可以通過實施全面的需求規(guī)格說明評審來緩解這一風(fēng)險。這樣做可以降低風(fēng)險的級別,可能意味著緩解殘余質(zhì)量風(fēng)險所需的測試數(shù)目減少。
四、生命周期中的風(fēng)險管理
理想情況下,在整個生命周期期間都在進(jìn)行風(fēng)險管理。如果組織有測試方針文檔和/或測試策略文檔,這些文檔中應(yīng)當(dāng)描述測試中管理產(chǎn)品風(fēng)險和項目風(fēng)險的一般過程,以及風(fēng)險管理怎樣集成到測試的各個階段中,并使其發(fā)揮作用。
一個成熟的組織,風(fēng)險意識應(yīng)遍及整個項目組,在這樣的組織中,風(fēng)險管理并非僅僅發(fā)生在測試中,而是發(fā)生在各個方面。重要的風(fēng)險不僅在特定測試級別的前期就得到處理,而且在早期的測試級別中也得到了處理。例如,如果性能被識別為一個關(guān)鍵質(zhì)量風(fēng)險區(qū)域,性能測試在系統(tǒng)測試的前期就會開始進(jìn)行,而且在單元測試和集成測試時也會運(yùn)行性能測試。成熟的組織不僅識別風(fēng)險,還識別風(fēng)險的來源和風(fēng)險一旦發(fā)生將帶來的后果。對于那些確實發(fā)生的風(fēng)險,使用根本原因分析來深入理解風(fēng)險的來源和實施過程改進(jìn),防范于未然。風(fēng)險緩解貫穿于整個軟件開發(fā)生命周期。風(fēng)險分析獲得了充足的信息,考慮到了相關(guān)的工作活動、系統(tǒng)行為分析、基于成本的風(fēng)險評估、產(chǎn)品風(fēng)險分析、最終用戶風(fēng)險分析和責(zé)任風(fēng)險分析。當(dāng)測試團(tuán)隊參與并對整個程序范圍的風(fēng)險分析產(chǎn)生影響的情況下,風(fēng)險分析超越了測試的范疇。
大多數(shù)基于風(fēng)險的測試方法還包括用風(fēng)險級別來對測試進(jìn)行排序和優(yōu)先級設(shè)定的技術(shù),以此確保測試執(zhí)行時盡早覆蓋最多的重要區(qū)域,發(fā)現(xiàn)最多的重要缺陷。某些情況下,所有的高級別風(fēng)險的測試都是在較低級別風(fēng)險測試之前進(jìn)行的,且測試的運(yùn)行嚴(yán)格按照風(fēng)險排序(通常稱為“深度優(yōu)先” );其它情況下,測試優(yōu)先級根據(jù)抽樣方法來制定。抽樣方法就是選擇一個測試樣本,該測試樣本可以覆蓋到所有已識別的風(fēng)險。用風(fēng)險覆蓋率評估選出的測試樣本,確保每條風(fēng)險至少被覆蓋到一次(通常稱為“廣度優(yōu)先” )。
無論基于風(fēng)險的測試是深度優(yōu)先還是廣度優(yōu)先,分配給測試的時間都有可能不足。基于風(fēng)險的測試使得測試人員能以剩余風(fēng)險級別的方式向管理層報告當(dāng)前測試狀態(tài),讓管理層決定是否要增加測試時間或?qū)⑹S嗟娘L(fēng)險轉(zhuǎn)移給用戶/客戶、服務(wù)/技術(shù)支持人員和/或運(yùn)營人員。
在測試執(zhí)行期間,最先進(jìn)的基于風(fēng)險的測試技術(shù)(并不一定是最正式或重量級的技術(shù))讓項目參與人、項目和產(chǎn)品經(jīng)理、高層行政管理人員和項目干系人根據(jù)剩余風(fēng)險級別監(jiān)督和控制軟件開發(fā)生命周期,包括做出是否發(fā)布的決策。這就要求測試經(jīng)理在匯報有關(guān)風(fēng)險的測試結(jié)果時,要確保所有干系人都能理解。
