在軟件消亡以前,若是沒有測試的結束點,那麼軟件測試就永無休止,永遠不可能結束。軟件測試的結束點,要依據本身公司具體狀況來制定,不能一律而論!我的認爲測試結束點由如下幾個條件決定:
1.基於「測試階段」的原則:
每一個軟件的測試通常都要通過單元測試、集成測試、系統測試這幾個階段,咱們能夠分別對單元測試、集成測試和系統測試製定詳細的測試結束點。每一個測試階段符合結束標準後,再進行後面一個階段的測試。舉個例子來講:單元測試,咱們要求測試結束點必須知足「核心代碼100%通過Code Review」、「功能覆蓋率達到100%」、「代碼行覆蓋率不低於80%」、「不存在A、B類缺陷」、「全部發現缺陷至少60%都歸入缺陷追蹤系統且各級缺陷修復率達到標準」等等標準。集成測試和系統測試的結束點都制定相關的結束標準,固然也是如此。
2.基於「測試用例」的原則:
測試設計人員設計測試用例,並請項目組成員參與評審,測試用例一旦評審經過,後面測試時,就能夠做爲測試結束的一個參考標準。好比說在測試過程當中,若是發現測試用例經過率過低,能夠拒絕繼續測試,待開發人員修復後再繼續。在功能測試用例經過率達到100%,非功能性測試用例達到95%以上,容許正常結束測試。可是使用該原則做爲測試結束點時,把握好測試用例的質量,很是關鍵。
3.基於「缺陷收斂趨勢」的原則:
軟件測試的生命週期中隨着測試時間的推移,測試發現的缺陷圖線,首先成逐漸上升趨勢,而後測試到必定階段,缺陷又成降低趨勢,直到發現的缺陷幾乎爲零或者很難發現缺陷爲止。咱們能夠經過缺陷的趨勢圖線的走向,來定測試是否能夠結束,這也是一個斷定標準。
4.基於「缺陷修復率」的原則:
軟件缺陷在測試生命週期中咱們分紅幾個嚴重等級,它們分別是:嚴重錯誤、主要錯誤、次要錯誤、通常錯誤、較小錯誤和測試建議6種。那咱們在肯定測試結束點時,嚴重錯誤和主要錯誤的缺陷修復率必須達到100%,不容許存在功能性的錯誤;次要錯誤和通常錯誤的缺陷修復率必須達到85%以上,容許存在少許功能缺陷,後面版本解決;對於較小錯誤的缺陷修復率最好達到60%~70%以上。對於測試建議的問題,能夠暫時不用修改。
5.基於「驗收測試」的原則:
不少公司都是作項目軟件,若是這種要肯定測試結束點,最好測試到必定階段,達到或接近測試部門指定的標準後,就遞交用戶作驗收測試。若是經過用戶的測試驗收,就能夠當即終止測試部門的測試;若是客戶驗收測試時,發現了部分缺陷,就能夠針對性的修改缺陷後,驗證經過後遞交客戶,相應測試也能夠結束。
6.基於「覆蓋率」的原則:
對於測試「覆蓋率」的原則,我的覺的只要測試用例的「覆蓋率」覆蓋了客戶提出所有的軟件需求,包括行業隱性需求、功能需求和性能需求等等,只要測試用例執行的覆蓋率達到100%,基本上測試就能夠結束。如「單元測試中語句覆蓋率最低不能小於80%」、「測試用例執行覆蓋率應達到100%」和「測試需求覆蓋率應達到100%」均可以做爲結束肯定點。若是你不放心,非得要看看測試用例的執行效果,檢查是否有用例被漏執行的狀況,能夠對經常使用的功能進行「抽樣測試 」和「隨機測試」。對於覆蓋率在單元測試、集成測試和系統測試,每一個階段都不能忽略。工具
7.基於「項目計劃」的原則:
大多數狀況下,每一個項目從開始就要編寫開發和測試的Schedule,相應的在測試計劃中也會對應每一個里程碑,對測試進度和測試結束點作一個限制,通常來講都要和項目組成員(開發,管理,測試,市場,銷售人員)達成共識,團隊集體贊成後製定一個標準結束點。若是項目的某個環節延遲了,測試時間就相應縮短。大多數狀況下是全部規定的測試內容和迴歸測試都已經運行完成,就能夠做爲一個結束點。不少不規範的軟件公司,都是把項目計劃做爲一個測試結束點,可是若是把它做爲一個結束點,測試風險較大,軟件質量很可貴到保證。
8.基於「缺陷度量」的原則:
這個原則也許你們用的不是不少,瞭解比較少。咱們能夠對已經發現的缺陷,運用經常使用的缺陷分析技術和缺陷分析工具,用圖表統計出來,方便查閱,分時間段對缺陷進行度量。我記得之前zhuzx在這個論壇上提出過缺陷分析技術這個問題,我再也不重複講述。咱們也能夠把 「測試期缺陷密度」和 「運行期缺陷密度」做爲一個結束點。固然,最合適的測試結束的準則應該是「缺陷數控制在一個能夠接受的範圍內」。
好比說:一萬行代碼最多容許存在多少個什麼嚴重等級的錯誤,這樣比較好量化,比較好實施,成爲測試缺陷度量的主流。
9.基於「質量成本」的原則:
一個軟件每每要從「質量/成本/進度」三方面取得平衡後就中止。至於這三方面哪一項佔主要地位,就要看是什麼軟件了。好比說是:人命關天的航天航空軟件, 那仍是質量重要些,就算多花點錢、推遲一下進度,也要測試能保證較高質量之後才能終止測試,發佈版本。若是是通常的經常使用軟件,因爲利益和市場的緣由,哪怕有bug,也必須得先推出產品,沒辦法呀。通常來講,最主要的參考依據是:「把找到缺陷耗費的代價和這個缺陷可能致使的損失作一個均衡」。具體操做的時候,能夠根據公司實際狀況來定義什麼樣的狀況下算是「測試花費的代價最划算、最合理」,同時保證公司利益最大化。若是找到bug的成本比,用戶發現bug 的成本還高,也能夠終止測試。
10.基於「測試行業經驗」的原則:
不少狀況下,測試行業的一些經驗,也能夠爲咱們的測試提供借鑑。好比說測試人員對行業業務的熟悉程度,測試人員的工做能力,測試的工做效率等等都會影響到整個測試計劃的執行。若是一個測試團隊中,每一個人都沒有項目行業經驗數據積累,拿到一個新的項目,天然是一頭霧水,不知道從何處開始,測試質量天然不會很高。所以經過測試者的經驗,對確認測試執行和結束點也會起到關鍵性的做用。性能