本文翻譯自:Code coverage analysis: see Coco in action
原文作者:Qt Group 市場經(jīng)理 Sebastian Polzin
校審:Shawn Luo
我們是否進行了足夠的測試?我們是否測試了正確的東西?這些可能是每個軟件開發(fā)者或測試工程師在生活中聽到過或思考過的問題。隨著應用程序和環(huán)境變得愈發(fā)多樣化,軟件測試所面臨的挑戰(zhàn)也越來越多。
好消息是,我們的覆蓋率工具Coco正是為應對這些挑戰(zhàn)而生。
無論何種測試類型,Coco都能在測試執(zhí)行時分析源代碼的覆蓋情況。Coco能幫助您查看和確定代碼中是否存在冗余測試,或代碼的任何部分存在測試空缺。
代碼覆蓋率分析——它為何如此重要?
在進一步介紹Coco之前,讓我們先回顧一下代碼覆蓋率分析以及它為何如此重要。
顯然,任何開發(fā)者都希望他們的代碼盡可能完美無瑕。然而,隨著運行環(huán)境變得越來越復雜,測試也變得越來越困難。當你達到難以確定是否所有代碼都已經(jīng)被測試的地步時,問題就變得非常棘手了。
基本的代碼覆蓋率分析是代碼質(zhì)量保證的關鍵部分。它為開發(fā)者提供了明確的指示,表明代碼已經(jīng)經(jīng)過測試,能夠讓人對工作成果感到放心。相反,一旦知道代碼還沒有經(jīng)過測試,開發(fā)團隊會變得更加小心謹慎,并開始考慮如何制定新的測試用例以擴大覆蓋范圍。
想想那些安全關鍵型系統(tǒng),例如
醫(yī)療設備
、
汽車軟件
甚至是航空航天系統(tǒng),在這些系統(tǒng),哪怕是未經(jīng)測試的代碼中最小的部分出現(xiàn)錯誤,都可能導致嚴重的后果。
還有那些涉及 ISO 標準或歐盟法規(guī)的嚴格監(jiān)管業(yè)務領域,比如金融服務。該領域的合規(guī)要求甚至規(guī)定了一定的代碼覆蓋率。
為了避免錯過任何細節(jié)而帶來的風險,Coco這時就派上了用場。
對于判斷每個表達式是否經(jīng)歷了徹底的測試,Coco是您值得信賴的助手。
Coco能幫助開發(fā)者在代碼覆蓋率分析中規(guī)避常見的陷阱,因為它支持跨平臺、跨編譯器,并支持廣泛的覆蓋率級別,因此它還提供了詳細的信息,以確定某些表達式是否在每種可能的組合中都得到了測試。
Coco支持多種編程語言,包括C、C++、C#和QML。它不局限于某個特定的測試工具,可以整合至任何測試框架中,包括Qt Test Library、GoogleTest、CppUnit和Catch等。
除了這些頂級的基本功能外,Coco還提供高級分析。Coco可以直觀地計算運行測試的最佳順序。這意味著最先運行的測試將增加更多覆蓋率,后面的較少。這樣,即使您不能運行100%的測試,也可以確信您已增加了最大的覆蓋率。
換句話說,Coco的工作原理是在盡可能短的時間內(nèi),通過盡可能少的測試來實現(xiàn)最大的覆蓋范圍。
Coco還提供補丁分析,用于分析補丁的影響,并基于歷史數(shù)據(jù)分析出需要執(zhí)行的測試。它可集成到各種CI和ALM系統(tǒng)中。除了眾多功能之外,工具資格認證也是這個優(yōu)秀工具的另一個重要方面。
我想說,Coco不僅僅是一款普通的代碼覆蓋率工具——當然,眼見為實,您可以親自上手體驗。
在下面的視頻中,我們將向您全面展示Coco的實際運作方式。
我們將介紹一些基本模式,如行覆蓋和函數(shù)覆蓋。此外,您還將了解到Coco如何在更高級別上運行,如MC/DC或多條件覆蓋。
您將觀察到單元測試的運行過程,并演示如何生成關于測試結果的報告。我們還將介紹如何計算優(yōu)化的執(zhí)行順序。
深圳市優(yōu)飛迪科技有限公司成立于2010年,是一家專注于產(chǎn)品開發(fā)平臺解決方案與物聯(lián)網(wǎng)技術開發(fā)的國家級高新技術企業(yè)。
十多年來,優(yōu)飛迪科技在數(shù)字孿生、工業(yè)軟件尤其仿真技術、物聯(lián)網(wǎng)技術開發(fā)等領域積累了豐富的經(jīng)驗,并在這些領域擁有數(shù)十項獨立自主的知識產(chǎn)權。同時,優(yōu)飛迪科技也與國際和國內(nèi)的主要頭部工業(yè)軟件廠商建立了戰(zhàn)略合作關系,能夠為客戶提供完整的產(chǎn)品開發(fā)平臺解決方案。
優(yōu)飛迪科技技術團隊實力雄厚,主要成員均來自于國內(nèi)外頂尖學府、并在相關領域有豐富的工作經(jīng)驗,能為客戶提供“全心U+端到端服務”。
