主頁 >  其他 > 精準測驗之程序與實踐

精準測驗之程序與實踐

2023-05-10 08:03:32 其他

作者:京東工業 宛煜昕

一、怎樣的技術

?百度百科:

精準測驗是一套計算機測驗輔助分析系統,

精準測驗的核心組件包含的軟體測驗示波器、用例和代碼的雙向追溯、智能回歸測驗用例選取、覆寫率分析、缺陷定位、測驗用例聚類分析、測驗用例自動生成系統,這些功能完整的構成了精準測驗技術體系,

?其他定義

精準測驗是中國自己有知識產權的完全的理論體系,它同時關注功能點和代碼相關邏輯這樣一個方法論,是一種灰盒的測驗模式,

最開始在2014年的國際軟體測驗大會上發布精準測驗的時候,它叫穿線測驗,英文名字叫Threading Test,表達了精準測驗的本質,Threading這個英文單詞本身有兩個含義,一個是穿線一個是執行緒,建立用例和代碼的關系,相當于把黑盒和白盒關聯起來,做黑盒測驗也能看到白盒資料,同時把開發和測驗能夠關聯起來,測驗一做完,開發的邏輯馬上就能自動生成,另一個層面,精準測驗最本質就是執行緒測驗,因為精準測驗基于覆寫率白盒理論產生,它跟白盒最大的區別是它的覆寫率是執行緒級的,也就是說要追溯到用例這個級別,

二、技術發展

?歷史發展

?成熟度模型的五級劃分

三、知識與技能

這里介紹兩款,分別為JAVA和C/C++相關,

第一,開發的基礎和核心(編程)知識及所需要用到的版本管理工具(GIT)等,

第二,領域特定的知識、技術需要具備如下:

JAVA:Javassist(官網- https://www.javassist.org/ ),

ASM3.0(官網- https://asm.ow2.io/ ),

JaCoCo(官網- https://www.eclemma.org/jacoco/),

C/C++:匯編、反匯編,PE,逆向工程(IDA),

要用C/C++實作,通用與效率等方面沒得說,但各協議的插樁,代碼資訊的收集,復雜程度和作業量都不是一般人所能承受,要做好心里建設,

直接使用JaCoCo需要注意覆寫率的誤差,一些陳述句行,分支層級,其誤差會被指數級放大,其更適用于偏向輔助個人開發者和小型專案組對專案覆寫率進行非常基礎的評估,

?誤差產生的具體成因:

1.復雜系統通常由大量子模塊組成,JaCoCo無法實作對于內部被呼叫的子模塊進行插裝,因此對于子模塊覆寫率的評估會產生顯著的誤差,

2.如果某個子模塊沒有被呼叫,那么對于JaCoCo來說,該模塊內的方法等同于不存在,JaCoCo需要呼叫該子模塊,才能將該子模塊內的代碼計入覆寫率計算的“分母”,

3.除了幾種既定的邏輯意外事件,JaCoCo無法正確處理例外情況(Exception),如果在控制流程中遇到Exception,JaCoCo會把這種情況直接標記為未覆寫,這種判定方式直接的影響到了對程式邏輯關系的把控,造成對于覆寫率無法準確評估,

?誤差引發的后果:

1.偽瓶頸的產生,以及對測驗質量的錯誤高估,第一種情況,測驗人員投入大量作業之后,卻無法進一步提升覆寫率,造成對資源和實踐的浪費;第二種情況,會讓用戶誤將未達標的系統判定為達標,有可能引發嚴重的生產事故,

2.無法實作缺陷定位,大量的演算法和應用依托覆寫率的輸入,而缺陷定位更是其中最主要的實踐,

3.回歸測驗的精準度,受到了嚴重的影響,

?無損插樁技術(推薦)

精準測驗推出的SABI和SASI是中國自己的技術

SABI,SouceCode Analyzer ByteCode Intrumentation,就是說原始碼分析,位元組碼查看,觀測和分析是在原始碼,插樁是在位元組碼,

SASI,SouceCode Analyzer SouceCode Intrumentation,這是傳統商用白盒最基礎的技術,有時候對原始碼進行分析,直接在原始碼插裝,原始碼插裝以后,代碼經過高級語言、高級編譯器的編譯,直接生成最后發布包,這種是完全無損的標準技術,插裝代碼經過編譯器編譯后執行可靠性更高,

四、總結與介紹

大綱

1、測驗范圍,代碼分析

2、差異化

3、呼叫關系

4、度量與分析

5、質量評估

6、知識庫兼優化

7、用例預分析

8、自動化測驗與精準測驗

五、平臺

>設計思路

從產品的需求、功能模塊,開發的代碼到測驗的用例,從正向到逆向的覆寫,追溯和可視,

>大綱

>呼叫鏈與代碼覆寫

使用的是插樁,有點類似C++中的Hook技術,獲取所需資料資訊,

協議,HTTP,MySql,Dubbo,Redis等,需要先進行分析,找到關鍵插樁位置,然后結合使用設計模式進行收集(所需)資訊,

設計模式推薦兩個,1、反射+配接器,2、動態代理,

需要注意,代碼膨脹問題,

>影響范圍

假如有個應用系統開發出A版本提測,通過前端功能發起HTTP介面,平臺的實時快照收到HTTP介面資訊,將該次的介面相關資訊(類、方法、執行代碼行數)保存為系統快照; 當A版本開發后變為A_01版本,使用平臺對兩次版本(Jar包或War包)進行比對,通過系統快照中資訊會分析出變更項與影響項,如:類、方法、介面,

根據影響用例中的選單與介面,到介面測驗工具中進行執行,

>實作與應用

通過資料進行可視化,顯示服務/應用的啟動,拓撲圖,呼叫鏈,代碼覆寫,版本比對等資訊,

>>專案串列

添加,服務/應用

>>專案動態

啟動,服務/應用

1、搜索

可顯示多個服務/應用的拓撲關系圖

1)詳情視圖

?表結構,可查看介面與資料庫表間的關聯

?熱點,可查看介面與資料庫表的關聯個數

2)展開快照

這里顯示的節點是保存到系統快照的,

?表結構-資料庫表,遠程服務-呼叫的rpc介面,原始碼-代碼關系圖層;

?遠程服務,顯示遠程呼叫介面,如dubbo介面;

?源代碼關系圖譜,可查看代碼關聯關系和覆寫程度;

?清除圖譜,清除表結構、遠程服務、源代碼關系節點;

?詳情頁,跳轉到快照詳情頁;

?概要,顯示快照詳情中圖片;

?洗掉節點,洗掉顯示的節點;

3)搜索

?搜索資料庫表中,表名,欄位名,篩選條件;

?搜索介面,HTTP介面;

2、監控臺

通過HTTP介面實時獲取到協議、代碼相關資訊,不同于通過單元測驗得到代碼覆寫率,然后將這些資訊保存下來(我的快照和系統快照),

1)實時監控

實時展示介面的呼叫鏈及鏈上各節點資訊

2)我的快照

實時監控中可保存為我的快照,

2.1)呼叫鏈和鏈路分析的可視化

呼叫鏈即是服務與中間件的呼叫鏈拓撲圖層;鏈路分析即是代碼鏈路分析關系圖譜,

?"流程圖(拓撲圖)"中可查看到覆寫后端及各中間件資訊;

?"堆疊串列"中展示服務與中間件的應用名,型別,服務/方法,用時等資訊;

?點擊"</>"彈窗為代碼圖譜(代碼鏈路分析關系圖譜),點擊某個節點,即顯示某個方法的方法名稱、執行到的代碼行數、代碼總數、代碼覆寫率和圈復雜度資訊,

根據某個尾節點,能尋到開始節點;

2.2)查看代碼覆寫率報告

代碼覆寫率資訊串列,顯示我的快照串列中所有覆寫率資訊,類名、方法名、執行代碼行數、方法行數、覆寫率、圈復雜度;

3、應用中心

1)在線應用

2)應用

2.1)系統快照

快照目錄,點擊鏈接進入系統快照詳情頁

系統快照詳情頁,基本資訊頁簽

系統快照詳情頁,流程圖頁簽

系統快照詳情頁,堆疊串列頁簽,點擊</>打開代碼關系圖層(代碼關系鏈)

2.2)版本比對

比對檔案格式為Jar或War包,比對之后會產生記錄報告

開始比對后的結果顯示,能查看報告,顯示差異項,(比對)日志輸出(新增、修改、變更、洗掉的檔案與方法,類與方法的影響數)

2.2.1)報告

比對成功后查看報告,顯示變更項,影響用例,對比日志;點擊影響用例鏈接,會跳轉到(系統)快照詳情頁

參考

1、百度百科-精準測驗, https://baike.baidu.com/item/精準測驗/22355867

2、精準測驗白皮書v3.0-2019最新版,作者:星云精準測驗, https://wenku.baidu.com/view/fe7e99a401d276a20029bd64783e0912a2167c23.html

3、《不測的秘密-精準測驗之路》,作者:TMQ精準測驗實踐團隊,

4、網易嚴選的精準測驗實踐, https://www.infoq.cn/article/xuu91crqa4hcjz8uomjs

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552007.html

標籤:其他

上一篇:別玩手機 影像分類比賽

下一篇:返回列表

標籤雲
其他(158714) Python(38124) JavaScript(25407) Java(18024) C(15222) 區塊鏈(8263) C#(7972) AI(7469) 爪哇(7425) MySQL(7172) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5336) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4570) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2432) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1965) Web開發(1951) HtmlCss(1932) python-3.x(1918) 弹簧靴(1913) C++(1912) xml(1889) PostgreSQL(1875) .NETCore(1857) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 精準測驗之程序與實踐

    精準測驗的核心組件包含的軟體測驗示波器、用例和代碼的雙向追溯、智能回歸測驗用例選取、覆寫率分析、缺陷定位、測驗用例聚類分析、測驗用例自動生成系統,這些功能完整的構成了精準測驗技術體系。 ......

    uj5u.com 2023-05-10 08:03:32 more
  • 別玩手機 影像分類比賽

    如今,手機已成為大眾離不開的生活工具,而且它的迅速發展使得它的功能不再以通訊為主,手機逐漸發展為可移動的大眾傳播媒體終端設備,甚至可以比作為第五媒體。當今的大學生群體是智能手機使用者中的一支巨大的的隊伍,零零后大學生在進入大學以來,學習生活中過度的依賴手機,甚至上課時忘記攜帶手機便會手足無措,神情恍... ......

    uj5u.com 2023-05-10 08:02:20 more
  • 【AIGC】Embedding與LLM的結合:長文本搜索與問答功能

    什么是Embedding? Embedding是一種多維向量陣列,由一系列數字組成,可以代表任何事物,如文本、音樂、視頻等。在這里我們將重點關注文本部分。Embedding之所以重要,是因為它讓我們可以進行語意搜索,也就是通過文本的含義進行相似性檢索。 為什么Embedding在AI中如此重要? E ......

    uj5u.com 2023-05-10 08:02:12 more
  • 百度飛槳(PaddlePaddle)-數字識別

    手寫數字識別任務 用于對 0 ~ 9 的十類數字進行分類,即輸入手寫數字的圖片,可識別出這個圖片中的數字。 使用 pip 工具安裝 matplotlib 和 numpy python -m pip install matplotlib numpy -i https://mirror.baidu.co ......

    uj5u.com 2023-05-10 08:01:57 more
  • 2步打通ModelArts和Astro,實作AI應用快速落地

    摘要:本文以 ModelArts 的“找云寶”自動學習 AI 應用為例,結合低代碼平臺 Astro 輕應用快速實作一個“找云寶”小應用。 本文分享自華為云社區《【我與ModelArts的故事】2步打通 ModelArts 和 Astro 實作 AI 應用落地》,作者:胡琦。 引言 隨著 GPT 火爆 ......

    uj5u.com 2023-05-10 08:01:07 more
  • Laf Assistant:云開發從未如此爽快!

    原文鏈接:https://forum.laf.run/d/67 工欲善其事,必先利其器。在撰寫代碼時,IDE 也是我們不可或缺的。它可以讓我們更高效地完成代碼撰寫,提高開發效率。因此,IDE 是我們撰寫代碼中最親密的伙伴之一。 雖然 Laf 云開發有簡潔的 Web IDE,只要能打開瀏覽器就可以隨處 ......

    uj5u.com 2023-05-10 07:59:51 more
  • 資料結構與演算法大作業:走迷宮程式(C語言,DFS)(代碼以及思路)

    好家伙,寫大作業,本篇為代碼的思路講解 1.大作業要求 走迷宮程式 問題描述: 以一個 m * n 的長方陣表示迷宮, 0和1分別表示迷宮的通路和障礙。 設計一個程式, 對任意設定的迷宮, 求出一條從入口到出口的通路, 或得出沒有通路的結論。 基本要求: (1) 實作一個以鏈表做存盤的堆疊型別, 然后 ......

    uj5u.com 2023-05-10 07:59:05 more
  • QUIC在京東直播的應用與實踐

    本文將分別從推流端、中臺源站、直播云CDN及播放端四個部分串燒式地介紹與直播相關的一些技術實踐,并重點介紹QUIC技術的應用情況及收益。 ......

    uj5u.com 2023-05-10 07:50:10 more
  • 【三維CAD軟體】上海道寧為您帶來國際一流的國產自主可控的三維C

    天工CAD?融合了新迪數字收購的國際一流三維CAD軟體技術和十幾年CAD軟體研發積累,是一款國產自主可控的三維CAD軟體,產品成熟度和技術能力比肩國際先進水平滿足工業企業研發設計需求 ......

    uj5u.com 2023-05-10 07:49:49 more
  • 人人實作ChatGPT自由,手把手教你零擼部署自己聊天私服

    我們知道chat gpt最近非常的火爆,朋友圈啊,短視頻到處都是chat gpt身影。 但是網上看到各種教程資源,都是不是百分一百的免費,毫無保留教給你的,要么是賣賬號 要么是割韭菜的。其實沒有什么可以學習的,使用他也很簡單,付費學習這些真不值得, 大家不要再去看網上那些其亂七八糟的了,什么使用需要 ......

    uj5u.com 2023-05-10 07:49:26 more