中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

精準測試與開源工具Jacoco的覆蓋率能力大PK

發布時間:2020-07-25 15:33:10 來源:網絡 閱讀:637 作者:星云測試 欄目:編程語言


導讀:本文根據實際使用情況,簡要分析了精準測試和類Jacoco等傳統白盒工具在設計理念、功能和應用場景的異同點,并闡述了覆蓋率技術如何在新型企業開發體系中,發揮應有的重要作用。

 
覆蓋率技術可以說是測試理論中最基本的技術體系,但由于傳統覆蓋率并沒有很好的適應新型軟件開發模型,導致應用場景越來越窄。比如:Jacoco等同類工具,仍停留在傳統白盒覆蓋技術的技術演化層面,目前基本僅適用在瀑布模式的開發體系下。最新的測試黑馬技術—“精準測試”覆蓋率功能是企業級、面向敏捷迭代場景、全新的覆蓋率技術。它明確提出了用例層級覆蓋率的概念,并將用例層級覆蓋率技術廣泛應用于智能的測試分析算法。
 
精準測試的專利技術之一:測試用例與代碼的雙向追溯,可以簡單理解為:所有分析和計算依賴于測試用例維度的覆蓋信息。它創新性的將覆蓋率統計維度從全局維度顯示,降維到了測試用例這一細節,使覆蓋率的放大作用遠超出原有能力。它如同放大鏡一樣,使測試分析、測試算法以及測試數據真正做到一覽無余,不錯過任何重要細節。
 
Jacoco是傳統的白盒覆蓋率工具,不具備將覆蓋率與用例關聯的功能,很遺憾的不具備精準測試的所有高級特性。
下面僅就“覆蓋率”這一功能,將精準測試與Jacoco為代表的傳統白盒覆蓋工具進行一個簡單比對:

1 覆蓋率分析能力PK

Jacoco:作為傳統白盒功能的代表,它的應用模式是部署在后臺,采集所有執行代碼的覆蓋率,所有用戶請求和功能的覆蓋數據為混合統計,范圍僅圍繞在看覆蓋率上。但這種覆蓋信息的弊端是:它從全系統維度來統計,導致顆粒度太大,無法詳細定位和深度分析覆蓋率的真正問題。
 
精準測試:可以像調焦距一樣,在并發訪問的后臺服務中,將某個測試用例的執行路徑分離出來,進行各種細致分析。它用例級的雙向追溯的覆蓋信息,帶有執行時序,可以很快定位缺陷發生時刻代碼的執行路徑(類似于重現單步調試場景),與此同時,還可以對測試人員的用例執行情況,進行非常精確的代碼級跟蹤。

2 對于敏捷測試的響應能力PK

Jacoco:不適應于敏捷迭代過程對于覆蓋率的企業級需求。當代碼發生變更后,Jacoco將重新采集覆蓋率,各個發布版本采集的結果孤立存在。現代企業通常每天會發布多個版本,孤島式無對比分析的覆蓋率結果,價值不大。因為每組測試執行通常是在每個版本上跑一部分用例,而不是瀑布模型下在一個版本上進行所有用例的測試。
 
精準測試:在覆蓋率計算和應用上有累積覆蓋率、增量覆蓋率、相關覆蓋率、高風險覆蓋分析、可變分母覆蓋等諸多創新辦法,隨時響應敏捷迭代需求。
1)累積覆蓋率:精準測試可以將多個測試覆蓋進行累計和投影,這樣就無所謂中間發布多少個版本、每個版本上跑多少個用例,可以自由選擇看一個階段的總體覆蓋率。
 
2)增量覆蓋率:由于企業軟件體量龐大,因此無論如何測試都很難滿足100%覆蓋率的要求。所以通常企業更關注的是增量覆蓋率,即新發布版本相比上一個測試版本修改后的代碼覆蓋情況。精準測試由于每個版本發布的時候都有詳細的代碼靜態分析數據支持,因此它可以智能標識版本差異,并將版本差異的代碼覆蓋進行高亮顯示,幫助企業關注新增/調整代碼部分的覆蓋率。
 
3)相關覆蓋率:精準測試創新性提出了相關覆蓋率技術,即把一個功能模塊相關的代碼作為計算的分母計算覆蓋率。這樣非常有利于在敏捷迭代場景下,只測試部分功能的覆蓋率分析。相關覆蓋率可用于支持功能模塊(用例分類)級別的覆蓋率,從業務角度統計某一個功能模塊相關代碼范圍的覆蓋率,明確指出某一個功能范圍的測試覆蓋充分度,而不是傳統的全局代碼覆蓋率。
 
4)高風險覆蓋分析:精準測試支持基于靜態數據和動態數據高風險的模塊檢出,引導用戶把精力投入到最高風險的模塊覆蓋邏輯補充上。
 
5)可變分母覆蓋:精準測試支持多種系列的企業級覆蓋計算要求,例如通過界面設置,將某些確定不需要或者無法覆蓋的代碼(例如暫時保留的無效代碼)從覆蓋率計算結果中排出,整體重新進行覆蓋率的計算。支持某一個代碼路徑下(某一程度模塊)范圍內的代碼覆蓋等高級特性。

3 覆蓋率可視化能力 PK

Jacoco:基于字節碼插裝,沒有全面的程序靜態分析過程,因此無法將覆蓋率通過靜態分析得到的可視化圖形結合清晰展示覆蓋率信息。另外,Jacoco必須提供源碼才能看懂覆蓋率。
 
精準測試:具有多種函數調用圖,控制流程圖上展示覆蓋率信息,可以在沒有源碼的情況下,基于精準分析結果,結合動態覆蓋率視圖,清晰展示程序的覆蓋和執行路徑信息。

4 覆蓋率統計能力 PK

Jacoco:以行覆蓋和分支覆蓋為主。Jacoco是傳統行覆蓋,基本上每行都需要進行插裝。在結合代碼展示覆蓋的視圖方面,無法取得程序的深入靜態信息,因此一般只能再代碼視圖上以顏色表達是否覆蓋。
 
精準測試:支持覆蓋率計算可視化、多覆蓋率算法標準及深度的數據分析。
1)支持覆蓋率計算可視化,覆蓋率是如何計算的都表達的非常清晰(貢獻覆蓋率的分子分母對應的程序元素、數量),方便用戶去深入理解覆蓋率的含義和信息。
 
2)精準測試支持更加深度的條件以及條件組合級別以及航天級MC/DC的覆蓋率標準。精準測試提供的語句覆蓋是基本塊覆蓋,一個順序的代碼段因為有靜態分析結果的支撐,只需要一個插裝點。
 
3)精準測試對程序的靜態結構有深度的分析數據,因此它的代碼展示視圖很清晰,程序結構都可以繪制出來,代碼覆蓋率視圖看起來非常清晰。例如中間沒有跳轉的基本塊會在展示效果上繪制為一個整體,并有是否覆蓋標識,而不是每行都要進行標識。

5 高度產品化特性 PK

Jacoco:屬于開源范疇,采用字節碼插裝(指令層級),插裝后的代碼不可見不可維護,出現問題后很難排查原因,很難定位和修復,商用使用風險較高。每次獲取一次覆蓋數據都需要訪問一個網頁地址顯示的重新生成。
 
Jacoco的應用模式是部署在后臺采集,無前端顯示。出現異常時,測試人員無法知曉自己執行的測試用例是否有效。
精準測試:由星云測試(www.teststars.cc) 主導研發,自主可控。在產品化特性有不可比擬的優越性:
1)基于源碼插裝,插裝代碼可見且開放,非常利于企業應用排查問題和進行流程整合等。萬一出現特殊語法問題引起插裝問題,用戶可以隨時查看并自行處理,不會因為極個別情況影響產品應用。
 
2)覆蓋率信息是實時匯總的,通過客戶端可以由多個有查看權限的用戶(包括開發、測試以及管理人員)實時查閱。
 
3)軟件示波器可實時傳輸測試過程中的數據,對于傳輸過程中測試執行覆蓋率采集是否有效,可進行可視化的故障排查。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳江市| 沙田区| 体育| 句容市| 章丘市| 当雄县| 栾川县| 鄂托克前旗| 福泉市| 仁怀市| 肥东县| 彰化市| 蓬溪县| 永泰县| 武定县| 灵丘县| 定边县| 柞水县| 灵石县| 吉林省| 泗洪县| 潍坊市| 土默特右旗| 淮安市| 阿拉善盟| 兖州市| 叙永县| 南部县| 永年县| 安吉县| 洛扎县| 安徽省| 宜宾市| 辽阳县| 玉门市| 黄山市| 平昌县| 黎城县| 乐平市| 彝良县| 通州区|