自動化會提高測試覆蓋率,那測試覆蓋率是什麼?
測試覆蓋率是什麼?
測試覆蓋率(test coverage)是 2018 年公佈的電腦科學技術名詞,它是測試質量的度量標準之一,告訴我們測試了多少程式碼。它定義了系統的某些實體,目的是用測試覆蓋它們。這是一種用來指示我們什麼時候進行了充分的測試,並告訴我們還需要測試什麼(從而擴大了覆蓋範圍)的方法。
如果把測試比喻為打掃房子,那些不常用的房間總會被遺漏,我們總會忘記諸如次臥衛生間這樣的區域,所以打掃的覆蓋範圍不包括就那個衛生間。
想象一下,如果我們的打掃標準只包括打掃臥室。按照這個標準,如果打掃了所有的臥室,就意味著整個房子都是乾淨的嗎?
並非如此,因為我們完全忽略了廚房、餐廳、衛生間等房子內的其他部分!因此,務必要細緻精準地度量測試覆蓋率。具有一定程度的覆蓋率是測試質量的一項指標,但它從來不是系統質量的指標,也不能保證所有內容都經過測試。測試覆蓋率告訴我們測試程式碼的百分比,但這並不意味著它在每種情況下都被測試過。
測試覆蓋率有什麼優勢?
依然是以打掃房屋為例,測試覆蓋率可以:
● 度量打掃的質量;
● 指示何時該停止打掃;
● 提醒我們還有其他地方需要清理。
某些標準可能比其他標準更強大。瞭解它們可以讓我們知道測試的深度以及何時應用某個或其他標準。例如,如果涵蓋標準 A 的任何測試用例集 TS 也涵蓋標準 B,則可以說標準 A 包括另一個標準 B。
按照上述原則,清潔房屋就可以遵循以下標準:
- 打掃每個臥室;
- 打掃房子的每一部分(包括臥室、廚房、衛生間等);
- 打掃每一個小地方,甚至是角落,因為它們很可能會積聚灰塵。
顯而易見,標準 3 包括 2,而 2 又包括 1,關係是傳遞的,即 3 包括 1。如果我們為標準 3 設計一個測試用例,它也應該包括前兩個標準。對於測試軟體,標準通常包括程式中的各種路徑、條件、語句、函式等。
另一個真實的例子可能是等價類劃分,先劃分若干個等價類,然後從每個部分中選取具有代表性的資料當做測試用例進行合理的分類,這樣就覆蓋了所有類。如果考慮白盒測試,又有語句覆蓋率、分支覆蓋率、路徑覆蓋率等,特別是對於狀態機,我們有指示覆蓋所有節點、所有轉換等的標準。
自動化測試如何適用?
現在就可以想象一下扔掉掃帚,換成一個超高速的掃地機器人。它可以解放雙手、更快地清理地板、減少被遺漏的區域,還可以讓自己在工作中專注於更重要的事情。
至此,我們可以得出結論:測試自動化=更高的測試覆蓋率。
相關文章
- 程式碼覆蓋率與測試覆蓋率比較
- 如何制定介面自動化測試的覆蓋率?
- go 程式碼覆蓋率測試Go
- 單元測試接入覆蓋率
- Jacoco--測試覆蓋率工具
- iOS 覆蓋率檢測原理與增量程式碼測試覆蓋率工具實現iOS
- Mockito提升單元測試覆蓋率Mockito
- 測試覆蓋率二改實現
- 測試覆蓋率 之 Cobertura的使用
- PouchContainer 整合測試覆蓋率統計AI
- 單元測試的覆蓋率計算
- Linux下lcov單元測試覆蓋率Linux
- 什麼是程式碼覆蓋率
- idea2022.1 檢視單測覆蓋率展示分支覆蓋率Idea
- 自動化測試如何實現全面覆蓋
- java覆蓋率檢測-jacocoJava
- 安卓app功能或自動化測試覆蓋率統計(不用instrumentation啟動app)安卓APP
- 生成Github JS 倉庫的測試覆蓋率徽標GithubJS
- 基於JaCoCo的Android測試覆蓋率統計(二)Android
- 精準測試之覆蓋
- 關於super-jacoco測試覆蓋率具體實現
- 前端精準測試探索:覆蓋率實時統計工具前端
- 使用 coverlet 檢視.NET Core應用的測試覆蓋率
- 如何提高全城wifi訊號覆蓋率WiFi
- 基於Jacoco的單元測試程式碼覆蓋率統計
- vivo 基於 JaCoCo 的測試覆蓋率設計與實踐
- C++語言的單元測試與程式碼覆蓋率C++
- 簡記前後端如何實現統計測試覆蓋率後端
- James Shore:不要使用單元測試的程式碼覆蓋率
- 自動化測試人員,專職寫自動化用例,除了用例覆蓋率還有哪些指標?指標
- 我們是如何做 go 語言系統測試覆蓋率收集的?Go
- maven 多模組專案的測試覆蓋率分析 - jacoco 聚合分析Maven
- 精準測試與開源工具Jacoco的覆蓋率能力對比開源工具
- pHp程式碼覆蓋率PHP
- 軟體測試培訓之:白盒測試的語句覆蓋法和判定覆蓋法
- 介面自動化測試的覆蓋和 Diff 平臺的悖論
- 白盒測試—六種覆蓋方法
- 什麼是覆蓋索引?索引