淺談軟體測試風險管理

來源:互聯網
上載者:User

標籤:

摘要:軟體測試作為保證軟體品質的重要手段,越來越引起人們的重視,而軟體測試專案中存在著風險,如果能預先重視風險的評估,並對可能會出現的風險制定積極的應對計劃,就可以在風險到來的時候,最大限度的避免風險或者降低風險所帶來的損失。

  關鍵詞:測試風險測試管理;軟體測試

  軟體本身的複雜性以及測試本身的特性決定了測試活動實施過程中風險的大量存在,而風險會影響測試活動的成敗,嚴重時還可能導致整個項目的失敗。因此,對測試風險的管理越來越引起人們的重視。

  1、風險存在的必然性

  軟體測試專案的風險來自於軟體和測試自身的特點。

  1.1 軟體的特點

  1)軟體產品是不可見的:軟體項目的開發進度和軟體品質管控過程是否符合標準很難衡量,使得軟體的管理也難於把握;

  2)軟體生產過程形式多樣,不存在絕對正確的形式:不同的軟體開發項目,應採取不同的或者特定的軟體開發過程。但在項目開發之初卻不能確定正確的形式,只能根據項目的特點和開發經驗選擇,並在開發過程中不斷的調整,真正適合該軟體的開發過程只有在項目開發結束才能確定;

  3)大型軟體項目往往是“一次性”:項目一次性的特點使得過去的經驗不能被廣泛的借鑒。控制軟體管理風險的唯一途徑是設立監測系統,開展有效風險監控和管理。

  1.2 測試的特點

  1)完全測試是不可能的:在有限的資源和時間條件下,找出所有的軟體缺陷和錯誤,使軟體趨於完美是不可能的,主要原因為是輸入量太大、輸出結果太多、路徑組合太多;

  2)測試具有病毒一樣的免疫性:軟體缺陷具有病毒一樣可怕地免疫性,對其採用的測試越多,免疫能力就越強,軟體測試工程師想要找出更多軟體缺陷就更加困難;

  3)測試是“泛型概念”:軟體測試涵蓋需求分析、概要設計等在內的整個軟體生命週期,以確保每一個階段都經住考驗;另外,測試自身也需要來自第三方的評估和監督,以確保測試的可靠性;

  4)80-20原則:80%的軟體缺陷常常生存在20%的軟體模組中。我們在系統分析、系統設計、系統實現階段只能檢測和規避80%的軟體缺陷。在下一步的系統測試中,可以協助我們找到剩餘缺陷的80%,剩餘4%的缺陷只有在系統交付使用後經過大範圍長時間使用後才會暴露出來。所以,軟體測試只能保證儘可能多的發現軟體缺陷,卻無法保證能夠發現所有的軟體缺陷;

  5)缺陷的必然性:由於軟體測試中錯誤的相關性,並非全部的軟體缺陷都能夠被成功修複。在缺陷的修複過程中會不可避免的引入新的錯誤,另外,在修複的過程中,我們往往還會受到時間、成本等各方面因素的限制,導致最終不可能完全的修複所有的軟體缺陷。

  2、風險的評估

  風險的管理基本的內容有兩項:風險評估和風險控制。

  風險評估是在風險識別的基礎上,對識別出來的風險進行評估,主要從下列四個方面入手:

  1)風險機率分析,即對風險發生的可能性設定一個尺度,如很高、較高、中等、較低、很低等;

  2)描述風險並預測風險發生後,對軟體產品和測試結果可能產生的影響或造成的損失等;

  3)確定風險評估的正確性,要對每個風險的表現、範圍、時間做出盡量準確的判斷;

  4)根據損失(影響)和風險機率的乘積,來確定風險的優先順序別,定製風險應對措施。

3、風險控制的原則

  風險控制是建立在風險評估的基礎之上的,主要工作原則有:

  1)針對有些可以避免的風險,例如測試案例執行率未達到100%,可以通過制定測試規範,要求測試人員嚴格按照測試案例執行測試,並記錄用例執行情況,來避免該類風險;

  2)有些不可避免的風險,採取措施降低風險,尤其是等級較高的風險,將其轉化為不會引起嚴重後果的等級較低的風險;

  3)凡事預則立,事先做好風險管理計劃,當風險成為現即時,可以更好的避免、轉移或減低風險;

  4)對風險的處理制定應急、高效的解決方案。

  4、軟體測試風險分析與管理方法

   軟體生命週期包括問題定義及規劃、需求分析、軟體設計、程式編碼、軟體測試和運行維護六個階段,而軟體測試前面的任何一個環節的不嚴謹都可能增加軟體測 試活動的風險。軟體測試活動中也存在各種各樣的風險,其中常見風險有需求變更風險、測試過程風險、測試組織和人員風險。

  4.1 需求變更風險

  在軟體測試專案尤其是曆時較長的大項目的實施過程中,總會不可避免的出現需求的變更。如何把握好需求的變更,減少需求變更帶來的風險,成為影響整個項目成敗的關鍵。

  4.1.1 軟體測試專案需求變更的管理

  1)設定需求變更的參考標準,將需求基準。當軟體測試專案組確認要產生需求變更時,用標準的變更申請表格將委託方的變更申請記錄存檔。每次的變更都應在需求基準的基礎上進行。

  2)軟體測試專案組收到委託方提交的需求變更申請後,成立項目變更控制委員會(CCB),負責對項目變更所帶來的影響進行評估,包括測試專案的人力、物力、資金、管理、時間、品質、工作負載等內部因素,以及資本、委託方要求的完工時間、項目負債情況等各個方面的影響。

  3)變更確定後,選擇可行的實施方案。為了將項目變更的風險降低到最小,力求在儘可能小的變動幅度內對測試專案的目標、預算、團隊以及項目的進度等主要的因素進行微調。

  4)需求變更後,要重新確定新的需求基準;受影響的軟體計劃、產品、活動等也要進行相應的變更,以保證和最新需求的一致性。

  4.2 測試過程風險

  在測試工作中,主要的風險有:

  1)需求的臨時或突然變化,導致設計的修改和代碼的重寫,使得測試時間不夠;

  2)測試案例沒有得到100%的執行;

  3)品質需求或產品的特性理解不準確,造成測試範圍分析的誤差,結果某些地方始終測試不到或驗證的標準不對;

  4)品質標準不都是很清晰的,如適用性的測試,仁者見仁、智者見智;

  5)測試案例設計不到位,忽視了一些深層次的邏輯、邊界條件、使用者情境等;

  6)測試環境與實際生產環境一般情況下都不可能完全一致,造成測試結果的誤差;

  7)有些缺陷出現頻率不是百分之百,不容易被重現;如果代碼品質差,軟體缺陷很多,被漏檢的缺陷可能性就大;

  8)迴歸測試一般是選擇性的執行部分測試案例,必然帶來風險。

   前面3種風險可以通過前期調研人員或測試人員與客戶加強溝通或者制定嚴格的制度來避免的,而針對有些不可避免的風險,採取一些有效測試風險控制方法來 盡量降低風險,例如測試環境不正確,可以通過事先列出要檢查的所有條目,在測試環境設定好後,由其他人員按已列出條目逐條檢查;針對程式中總是存在的“未 發現的缺陷”,可以通過提高測試案例的覆蓋率(如達到99.9%)來降低這種風險;針對經常出現的產品發布前夕,在某個不是很重要的新功能上發現一個嚴重 缺陷的問題,可以通過去掉該新功能來轉移因為修改此缺陷可能引起的某個原有功能上的缺陷的風險。迴歸測試只執行部分用例帶來的風險是可以避免的,但出於時 間或成本的綜合考慮,一般是存在的。

提前做好風險管理計劃和風險控制策略,可以更好的避免、轉移或者降低風險:

  1)在執行專案計劃,做資源、時間、成本等的估算時,要留有餘地;

  2)在項目開始前,制定風險管理計劃,重點把握邊界上可能會出現變化、難以控制的因素;

  3)重視人員隊伍的培養,對每個關鍵性技術崗位人員培養後備人員,確保項目不受人員流動的嚴重影響;

  4)制定工作機制和文檔標準,保證文檔的及時產生,便於項目知識的分享和移交;

  5)對工作進行相互審查,不同的測試人員在不同測試模組上相互調換,及時發現問題;

  6)日常跟蹤所有工作過程,及時發現風險的跡象,以避免風險。

  4.3 測試組織和人員風險

  4.3.1 測試組織風險

  測試人員不獨立於開發人員,測試人員獨立與開發人員的程度將影響測試結果。

  1)成立專門的測試組織;

  2)制定專門的測試管理流程和品質保證手冊,規範測試過程,保證測試的品質;

  3)委託專門的測試組織執行測試活動。

  4.3.2 人員風險

  測試專案尤其是周期較長的項目幾乎不可避免的要面臨人員的流動,從而增加項目失敗的風險係數。及早預防是降低這種人員風險的基本策略。下面從第三方測試的角度具體介紹一下人員風險的控制方法:

  1)指派一名項目副經理或專案經理助理協調專案經理管理項目工作,降低關鍵崗位人員流動的風險。但是一般只建議在專案經理這種比較重要的崗位採用這種冗餘複製的策略來預防人員風險,否則將大大增加項目成本;

  2)建立良好的文件管理機制,包括項目組進度文檔,個人進度文檔(測試日誌)、版本控制文檔、整體技術文檔(測試策略、測試案例)、個人技術文檔(測試執行記錄、缺陷報告)等。一旦出現人員的變動,替補組員能夠根據完整的文檔儘早接手工作;

  3)控制項目團隊中外包或兼職人員的比例,且項目核心部分的工作應該盡量由全職人員來擔任,以減少兼職人員對項目組人員不穩定性的影響;

  4)加強測試專案組內的技術交流,定期召開項目例會,使測試群組成員能夠相互熟悉對方的工作和進度,能夠在必要的時候接替對方工作;

  5)為項目測試工作的開展提供儘可能好的基礎環境,比如待遇、項目組內良好的人際關係和工作氛圍等。良好的工作環境對於穩定項目組人員以及提高生產效率都有不可忽視的作用。

  4.3.3 外包人員風險

  1)制定相關的管理流程檔案,規範外包人員的活動,防患於未然,規避外包風險;

  2)通過外派監管團隊的方式對整個測試活動進行監控;

  3)通過對測試活動的中間交付物進行檢查保證測試的品質,例如:對設計的測試案例進行評審、對編寫的測試代碼進行抽查、檢查測試執行的日誌等;

   4)對於外包測試的形式,除了避免承包方項目人員的泄密,還要注意雙方資料轉送過程中的資訊保密。在採用外包測試的時候,不可避免地要進行各種資訊的傳 送,可能是雙方的電話、E-Mail交流,也可能是軟體版本的傳輸,在條件允許的情況下要盡量使用VPN等方式。如果有必要,對傳輸的資料要進行加密。

  5、結束語

   測試過程中的風險總是存在的,該文對測試活動中主要的風險進行識別和控制,並確定針對性措施,避免風險發生,或者把風險降到最小。要想做好風險管理工 作,就必須徹底改變測試專案的管理方式,建立防患於未然的管理意識,並結合具體的實踐工作不斷地分析遇到的風險,總結各種風險的應對措施,指導實踐,降低 產品品質風險。

 

轉載:http://blog.chinaunix.net/uid-16844439-id-3379355.html

淺談軟體測試風險管理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.