質量風險分析(上) 軟件測試
RBCS公司Rex Black總裁的說法
任何實際應用系統的測試都可能是一項無限量的工作。在這個可能測試的無限集合中,測試主管需要關注的是系統質量方面的最重大風險。潛在的錯誤可能發生在實際使用過程中或者可能在錯誤發生時耗費大量資源。這篇文章描述了分析系統質量風險的實際方法,提供了指導執行有效和高效測試的方法。
關鍵詞:風險、質量、測試、分析
簡介
對很多實際應用系統來說,毋庸置疑地可以運行無限多的測試。如何選擇最好的測試集呢?用一個智能的方法選擇那些可以解決最重大風險的測試。
測試可以減輕系統質量方面的風險。它能幫助識別系統中哪些方面運行的很好(即,通過測試),也能幫助識別出完善系統的機會(即,測試失敗,檢測出缺陷)。因此,一些敏銳的測試主管會問:“我們如何才能測試系統最關鍵的方面,并找到最關鍵的缺陷呢?”
本文將解釋如何應用風險分析和風險管理的強大技術。作者提供了分析質量風險的5項技術。利用這些技術,人們可以做出把測試重點置于何處的明智、客觀的決策。通過對項目的重要里程碑做風險的重新評估,人們可以在系統的整個開發生命周期內不斷優化測試的有效性和效率。作者用了3個案例分析來闡明自己的觀點。
為什么進行風險分析-以及測試需要做什么
任何重大項目都會涉及風險。風險會隨著系統復雜性、投入的人力、付出的努力、預算和時間的增加而增加。Capers Jones (1995) 指出軟件項目失敗的概率范圍在2%到85%之間。他認為,不充分的測試是4個導致失敗因素中的一個,還有不充分的預算、計劃和項目跟蹤。
很多主管都對項目風險管理很熟悉。例如,他們管理像關鍵人員流失和物品采購滯后這樣的風險。傳統的風險管理會采用積極的手段(如人員的交叉培訓)和被動的手段(如多余的部件采購)來減小這些風險。人們可以通過積極的審查手段和被動的測試手段來減小系統的質量風險。
作者傾向于J. M. Juran對質量的定義:適合于使用。質量是能夠滿足用戶、顧客和其他利益相關者的那些存在的東西,以及不能滿足他們的那些不存在的東西。一個高質量的系統能符合用戶的意圖,提供需要的功能,可能還包括少許重要的漏洞(Juran 1988)。
風險是一種潛在的不良結果。所以,風險對系統質量來說是一個潛在的問題,這些問題可能導致系統達不到期望的質量要求(Black 2003)。
剛開始測一個系統時,他或她根據特殊的功能、特性和運轉情況對系統質量進行評價。雖然存在一些預期缺陷,但想要確切地知道如何找到這些缺陷卻是個挑戰。
隨著測試的進行,發現了一些缺陷。這些已知的缺陷不再屬于風險,它們現在屬于實際的不良后果?梢酝ㄟ^修復這些缺陷來提高系統質量。系統整體風險降低。
在運行測試時,也能發現哪里不存在缺陷。測試通過表明在測試條件下系統達到了預期效果。系統整體風險再次降低。
系統的測試進行的越徹底,就會發現越多的剩余缺陷。發現的缺陷越多,被修復的缺陷就越多。系統的測試進行的越徹底,就會識別出更多的運行良好的地方和已通過測試的條件。因此,測試進行的越多,系統的質量風險就越低。但是風險絕不會降到零,因為測試不能窮盡。
我們應該擔心哪方面的質量風險?
因為不可能對任何事物都進行測試,所以有必要從整個測試集中選擇一個子集來運行。質量風險分析可以幫助人們關注測試工作的重點。
雖然“質量風險分析”這個詞聽起來是難以理解的、琢磨不透的、復雜的,但是基本的思想和技術是不需要的。簡而言之,質量風險分析是一個對系統中潛在的質量問題(即,缺陷)進行識別、分析和優先分類的過程。
因為質量風險是潛在問題--有0到100%的可能性--一個影響風險相對重要性的因素是出現不良后果的可能性。換句話說,系統中可能會存在各種類型的缺陷;如果這些缺陷存在,用戶有可能遇到這些缺陷嗎?
另外一個影響風險相對重要性的因素是不良后果對用戶、客戶或利益相關者的影響。換句話說,如果系統中存在各種類型的缺陷并且被用戶遇到了,缺陷的各種癥狀將如何影響用戶的正常使用呢?這些缺陷對系統的影響從微不足道的到災難性的,甚至是致命的。
例如,假設開發了一個在線銀行應用系統。這個系統允許用戶在互聯網上登錄他們的銀行賬戶。他們可以支付賬單,在兩個賬戶間轉賬,下載報表。
對于這種應用系統,安全顯然是一個最重要的質量特性。在安全方面,系統質量風險包括:刑事黑客未經授權訪問其他客戶帳戶,或黑客攔截數據中心和客戶電腦之間的賬戶信息的可能性。
就像從大量的互聯網黑客攻擊事件中發現的一樣,發生這種事情的可能性非常高。當這些問題發生時,就會對用戶、企業和其他利益相關者有嚴重的影響。顯然,這個系統必須是可靠的,人們應該通過類似方式對系統進行開發和測試,減小這些風險的發生。
質量風險分析技術
現在,有各種各樣的風險分析技術可供使用。每種技術都有其優勢和弱點,這依賴于項目組的需求和應用。因此,選擇合適的技術是至關重要的。
所有這些技術都會在測試條件下對系統的質量風險進行識別和優先排序。一般地,這些風險會根據主要風險類別,比如功能、性能、安全等等,進行分組或組織。項目利益相關者中的一個跨職能小組通常會進行風險識別。這而不依賴于利益相關者的意見和想法,風險分析也會運用已完結項目的歷史缺陷和失敗數據,客戶、競爭者或當事人的需求和設計規范、銷售數據、市場調研,和傳聞信息。
風險一旦被識別,每個風險都會被分級--測量其重要性等級。在后面的章節中,作者會討論影響風險等級的因素,以及如何把這些因素結合起來衡量風險,如何運用總體風險衡量的結果來決定花費在測試上的工作。下面有五種風險分析的技術(參見表1):
1.非正式的質量風險分析技術并沒有超出本章節的內容。這種技術為開始進行質量風險分析提供了一個便利的途徑。雖然這可能會遺漏一些重要的風險,尤其是在早期風險分析期間,但使用非正式技術比完全不使用風險分析技術能找到更佳的測試重點和范圍。
2.拿ISO9126質量風險分析技術來說,可使用ISO9126質量標準體系中描述的質量特性和子特性作為風險分析的種類。6種主要的質量特性如下:
- 功能
- 可靠性
- 可用性
- 有效性
- 可維護性
- 可移植性
每個種類都有一個或多個子特性。ISO9126提供了一個更有條理的方法,減少了遺漏一些重要風險因子的可能性,但它也增加了一些時間和書寫工作量。
3.暴露成本的質量風險分析技術集中于以下幾個問題:與各種風險相關的預期損失是什么?以及花多少時間可以減少這些風險?預期損失是產品損失的概率乘以損失的成本。這種技術使項目管理團隊做出一個精明的、經濟的測試決定。然而,想要這種技術工作良好,風險分析小組必須能夠準確地估算出各種損失的概率和成本。
4.失效模式和效應分析超出了討論的風險范圍。使用這種技術,風險分析小組試圖找出可能使系統失敗的各種方式,以及這些失敗對顧客、客戶、企業、社會等可能的影響。這項技術相當的詳盡,它能產生優秀精準的測試,但也需要大量的書寫工作,投入大量的時間。
5.危險性分析技術與失效模式和效應分析一樣,但已經落后了。一個人從影響--風險--著手開始,并試圖找到落后的原因。按照這種方法,這些原因的可能性應該很清楚了。雖然,在某些情況下,有很多原因導致不同類的不良結果,但是在少數情況下,這項技術會逐漸適應系統并趨于良好。
案例分析:質量風險分析
提供了從這些技術中產生的文件和資料的一個思想,看看兩個案例分析:錯誤!參考源未找到和表1。這些數據摘自這兩個文件的作者和他的助手開發的這些項目。
網絡應用中非正式質量風險分析過程產生的文件的一部分。這種設備允許用戶發送和接受郵件、瀏覽網頁、登陸電子商務網站購買物品等等。
非正式質量風險分析之后,失效模式及效應分析技術過程產生的文件的一部分。作者分析在刪除文件的基礎上,強制完全擦除所有與文件相關的數據信息,以確保個人計算機文件的安全。
文章來源于領測軟件測試網 http://www.kjueaiud.com/