自動化會提高測試覆蓋率,那測試覆蓋率是什么?


測試覆蓋率是什么?

測試覆蓋率(test coverage)是2018年公布的計算機科學技術名詞,它是測試質量的度量標准之一,告訴我們測試了多少代碼。它定義了系統的某些實體,目的是用測試覆蓋它們。這是一種用來指示我們什么時候進行了充分的測試,並告訴我們還需要測試什么(從而擴大了覆蓋范圍)的方法。

如果把測試比喻為打掃房子,那些不常用的房間總會被遺漏,我們總會忘記諸如次卧衛生間這樣的區域,所以打掃的覆蓋范圍不包括就那個衛生間。

想象一下,如果我們的打掃標准只包括打掃卧室。按照這個標准,如果打掃了所有的卧室,就意味着整個房子都是干凈的嗎?


並非如此,因為我們完全忽略了廚房、餐廳、衛生間等房子內的其他部分!因此,務必要細致精准地度量測試覆蓋率。具有一定程度的覆蓋率是測試質量的一項指標,但它從來不是系統質量的指標,也不能保證所有內容都經過測試。測試覆蓋率告訴我們測試代碼的百分比,但這並不意味着它在每種情況下都被測試過。

測試覆蓋率有什么優勢?

依然是以打掃房屋為例,測試覆蓋率可以:
● 度量打掃的質量;
● 指示何時該停止打掃;
● 提醒我們還有其他地方需要清理。

某些標准可能比其他標准更強大。了解它們可以讓我們知道測試的深度以及何時應用某個或其他標准。例如,如果涵蓋標准A的任何測試用例集TS也涵蓋標准B,則可以說標准A包括另一個標准B。

按照上述原則,清潔房屋就可以遵循以下標准:
1. 打掃每個卧室;
2. 打掃房子的每一部分(包括卧室、廚房、衛生間等);
3. 打掃每一個小地方,甚至是角落,因為它們很可能會積聚灰塵。

顯而易見,標准3包括2,而2又包括1,關系是傳遞的,即3包括1。如果我們為標准3設計一個測試用例,它也應該包括前兩個標准。對於測試軟件,標准通常包括程序中的各種路徑、條件、語句、函數等。

另一個真實的例子可能是等價類划分,先划分若干個等價類,然后從每個部分中選取具有代表性的數據當做測試用例進行合理的分類,這樣就覆蓋了所有類。如果考慮白盒測試,又有語句覆蓋率、分支覆蓋率、路徑覆蓋率等,特別是對於狀態機,我們有指示覆蓋所有節點、所有轉換等的標准。

自動化測試如何適用?

現在就可以想象一下扔掉掃帚,換成一個超高速的掃地機器人。它可以解放雙手、更快地清理地板、減少被遺漏的區域,還可以讓自己在工作中專注於更重要的事情。

至此,我們可以得出結論:測試自動化=更高的測試覆蓋率。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM