一、什么是軟件測試的覆蓋率?
??軟件測試覆蓋率是軟件測試技術(shù)有效性的一個度量手段,用來度量測試完整性。
??意思概括的說,軟件測試的工作中會有非常非常多的item(任務(wù)),執(zhí)行過的任務(wù)和總?cè)蝿?wù)數(shù)的一個比值,這就是覆蓋率。
??計算公式:覆蓋率=(至少被執(zhí)行一次的item數(shù))/item的總數(shù)
??比如從大的角度來說,我的一個需求現(xiàn)在有一萬個功能點,那這一次測試了9000個功能點。用9000除以1萬,證明這輪測試的功能點覆蓋率達(dá)到了90%,這就是一個最簡單的計算模式。
二、測試覆蓋率的特點
??當(dāng)然覆蓋率也沒有這么簡單,覆蓋率他會有一些自身的特點。
1、通過覆蓋率數(shù)據(jù)可以特別清晰地判斷出一輪測試到底是不是足夠充分。
??一般情況下來說,如果在一次迭代也好,在一次版本發(fā)布也好。手工測試可能沒有完全覆蓋項目中的功能,需要用一些自動化的手段來補足,來保證覆蓋率達(dá)到某一個標(biāo)準(zhǔn)之上,才能夠證明這一個版本的測試是通過的。
2、可以通過覆蓋率分析出測試的弱點在哪些方面。
??說有的人每一次測試都能覆蓋到80%,有的人可能覆蓋到60%,這兩個人在對于這次測試工作的衡量上,會產(chǎn)生一些問題,這個衡量度的把握,到底是覆蓋率高的人最后正確,還是覆蓋率低的人正確,這個不能夠草率地去下結(jié)論,要根據(jù)實際情況去深入的分析。這一次的程序修改到底會影響哪些方面,才能夠分析出應(yīng)該覆蓋哪些方面的測試。如果有遺漏,就能夠分析出這次測試?yán)锩娴娜觞c,到底在于測試的設(shè)計階段,還是的執(zhí)行階段。
3、測試覆蓋率能夠指導(dǎo)增加設(shè)計測試用例。
??測試用例的增加,會有效的提高測試質(zhì)量。但是測試的目的不是一味的去追求覆蓋率,因為測試成本本身會隨著的測試覆蓋率的增加而增加。
三、測試覆蓋率對于黑盒測試
??測試覆蓋率對于黑盒測試來說主要標(biāo)識的兩個方面,一個是需求覆蓋,一個是用例覆蓋。
1、需求覆蓋
??從需求覆蓋角度上講定義很簡單,就表示在測試過程中,有哪些需求方法,有哪些函數(shù)被測試到了,他被測試到的概率(頻率)到底有多大,這些函數(shù)在系統(tǒng)所有函數(shù)中的占比是多少。并且還要制定一個標(biāo)準(zhǔn),有多大的概率,多大的通過率,才能夠叫做這一版本的測試完成,這是需求覆蓋的內(nèi)容。
??需求覆蓋本質(zhì)上在計算的時候,是根據(jù)需求文檔為依據(jù)的。需求文檔里會有一些需求點的拆解,根據(jù)這些點來決定來判斷測試需求覆蓋率。也就是說哪些需求是被驗證到的,哪些需求沒有被被驗證到。我一共有100個需求,但是其中可能有一個需求的點我沒有測試到,當(dāng)然這其中的原因有很多,有可能是開發(fā)沒有提交,有可能是這方面就完全忽視了,用例也沒有涉及到,所造成的需求遺漏。
??用下面公式計算需求覆蓋率是多少。
??計算公式:需求覆蓋=(被驗證到的需求數(shù)量)/(總的需求總數(shù))
??一般來說一個程序在第一次發(fā)布的時候,發(fā)布到線上給其他客戶使用時候的需求覆蓋率一定要達(dá)到百分之百。如果是后續(xù)迭代的時候,就要去考量每一次代碼修改所影響到的范圍。通過分析這個影響范圍來決定到底應(yīng)該覆蓋哪些需求,這個時候的覆蓋率就不一定是百分之百。但是仍然需要有一定的覆蓋率,即便其他的模塊可能跟這次修改沒有任何影響,那我也需要從測試角度去考慮。在有條件的情況下,去完成更多需求方面的基本覆蓋。
2、用例覆蓋
??用例覆蓋就很明顯,它主要體現(xiàn)的就是在每輪測試驗證的過程中,通過用例數(shù)在總用例數(shù)中的比重計算得出。
??計算公式:用例覆蓋=(驗證通過的用例數(shù)量)/(總的用例總數(shù))
??驗證過的用例是包含兩方面,除了手工測試的用例,還包含自動化測試的用例。測試覆蓋率不是說用例覆蓋越高越好,還是要經(jīng)過判斷之后,在得出結(jié)論。但是用例覆蓋是一個非常關(guān)鍵的度量因素,盡量的保證覆蓋要全面。一般情況下,每一次上線要求自動化加手動測試的用例覆蓋,要高到80%以上,才能夠教這一輪測試的完成。