主頁 >  其他 > 精準測驗技術十年發展漫談

精準測驗技術十年發展漫談

2022-10-14 08:54:49 其他

 精準測驗技術十年發展漫談

        一、 背景 二、 精準測驗的定義 三、 精準測驗技術發展 四、 精準測驗的專利技術 五、 精準測驗的一分一合 六、 精準測驗體系 七、 精準測驗的無損技術 八、 商用精準和開源精準的區別 九、 精準測驗成熟度五級劃分 十、 精準測驗的效能提升 十一、商用精準測驗的規劃與發展   一、 背景   精準測驗技術,是這幾年比較熱的一個方向,從2012年這個體系開始誕生,到現在整整歷經了10年的時間,中國從國外引進了很多技術,火與不火其實在國外已經決定了,本土成長起來的精準測驗路線獨樹一幟,它不是從國外引入,是在中國的大環境下慢慢發展起來的,從寂寂無名,到軟體質量技術從業者的熱情被一點點的調動起來,再到被認可及至推廣,中間翻越過萬重山,本文作者星云測驗平臺設計師、創始合伙人趙明先生站在另一個維度,以星云為例側重講了精準測驗技術的起源發展、商業內核以及行業的展望,   二、 精準測驗的定義   

 

精準測驗一句話概括就是測驗用例和代碼之間的追溯,這是它最本質的東西,精準測驗的本質決定了它抓住了測驗的一個核心要點, 大家知道,軟體主要有兩個方面:一個是我們看到的功能,即從界面上看到輸入輸出(通常我們測驗是基于這個);另外還有背后的代碼,在功能測驗整體動態運行的時候,功能和代碼必然存在著追溯關系,這種相互追溯,很像物理界的量子糾纏理論,就是說,軟體代碼運行邏輯和功能輸出,是兩個也同時是一個整體,像量子糾纏一樣,當把兩個量子視為一個整體,只觀測任何一個都觀測不全面,這個也就是我們黑盒測驗以前遇到的問題,它存在很多隱性問題,因為它沒辦法觀察計算機最本質的東西--代碼的同步變動,精準測驗就把這兩個全部觀測、捕捉并回放出來了,

 

  最早星云2014年的國際軟體測驗大會上首先發布精準測驗的時候,就叫穿線測驗,英文名字叫Threading Test,并沒有直譯成 Accurate test,現在看還是Threading Test最契合,首先,精準測驗建立起了用例和代碼的關系,相當于把黑盒和白盒關聯起來,做黑盒測驗時獲取到白盒資料即完成一個測驗邏輯,代碼上的邏輯立馬同步生成,準確地把開發測驗關聯起來,這里使用了Threading的穿線的含義,另外一個層面,精準測驗最本質就是執行緒覆寫測驗它跟白盒最大的區別是覆寫率是執行緒級的,也就是我們要追溯用例這個級別,比如一個系統可能很多用例同時跑,最終用例級的資料就是在執行緒里面,我們拿到執行緒級的資料,就能拿到測驗用例級別的這種覆寫率,這里體現了Threading執行緒的含義,所以我們整體英文名字叫Threading Test,這是我們中國自己命名的,   三、 精準測驗技術發展  

 

精準測驗是從2012年開始發展的,最開始的時候(星云)團隊建立一些基礎理念,主要建立用例和代碼相互追溯的基本技術方向和框架, 2013年,星云開始做第一個原始碼插裝內核,即基于JAVA的SASI(原始碼插裝), 2014年,用例和代碼追溯、軟體示波器、回歸用例自動選取基本已經成型,這年有個重大的事項: iSQE大會上以“穿線測驗”第一次發布產品,當時引起了行業上很大的關注, 2015年,開始做C++的SASI(原始碼插裝)相當于向國際最頂級的白盒測驗工具進行挑戰并闖關突破了這個技術領域, 2016年,做出的產品開始正式商用,開始有用戶采購了, 2017年,向白盒測驗最頂級的覆寫率MC/DC100%覆寫率)去挺進并獲得成功,意味著在航空航天、智能工業等領域,中國開始有能力完成自己的高端白盒工具的替代, 2018年,在分布式系統的追溯上,星云全系統的用戶標識和流量隔離技術誕生,這也是精準測驗比較核心的技術, 2019年,開始做SABI 1.0(SouceCode Analyzer ByteCode Intrumentation,插裝方式發生重大變革,跟我們見到的常規架構區別很大能夠做到無損采集與分析資料,可靠性很高用戶發流程也很簡單 2020年,開始做整體輪次級專案級累計覆寫率,能夠實作全自動的實時的跨版本的資料合并,解決覆寫率技術商用的重要障礙,以及嵌入系統的支持, 2021年,開始做SABI 2.0及高可用, 2022年,突破了多關鍵的領域,比如linux kernelDSP芯片安卓的Framework作業系統,因為以上的資料采集方式非常特殊,完成非常不容易,   可以說任何一項高端技術,都不能脫離一個漸進的程序,唯有量變才能真正實作質變,雖然充滿了艱辛,但從學術理論到技術落地、到各大企業實際場景接連不斷的好評,宣布了中國在這個領域中率先取得了令人驚喜的成果,不再受制于人,   四、 精準測驗的專利技術  

 

(星云)精準測驗建立了非常完整的國家級專利簇保護機制,下面為大家講解一下這些專利技術的特點,   一種基于測驗用例與原始碼雙向追溯的測驗裝置及方法 是星云精準測驗最關鍵的發明專利,2014年申請2017年正式授權,這個專利當時引起了很大的爭議,專利局認為這種東西非常底層,就像蘋果因為重力而落地,通過水的勢能來發電一樣,專利局一通認為這個東西太常理化了,不過就像通過水的落差發電一樣,需要有人能夠進行系統的理論論證探索并且進行工業化的應用,才能真正的在轉變為生產力,而用例和代碼的追溯也正是通過工業級精準測驗的應用才開始全面受到重視并開始大面的應用,   2018年獲得授權的國家發明專利覆寫率可視化”(行業俗稱代碼染色)、回歸測驗用例選取等,都是在精準測驗體系中比較關鍵的專利,比如 “回歸測驗用例選取”,在代碼變化的情況下,到底應該選哪些用例進行回歸?(星云)的這專案技術可以精準的挑出這些用例(都是基于代碼和用例的關系),在新版本發布以后,看它代碼路徑變化的問題,整體回歸效率提高3-5倍以上,并且大幅度降低因為回歸時間有限而引起的質量風險,   其它的專利技術是在整個商用程序中,陸續發明的,比如:分布式系統或者集中式系統,很多人同時訪問的場景,就是在分布式系統上,看一個用例在各個系統都怎么跑的,而且并發跑的時候不能受到干擾,那么就要有用戶標簽技術,然后做流量隔離,這個在分布式系統下也是一個重要的發明專利,就是指我們在分布式系統下,每個測驗用例可能跑到每個分布系統里面,往哪個版本存?我們做了一套自動處理機制,這也是很關鍵的一套邏輯,屬于精準測驗的基礎性專利,   一個完整的優秀軟體體系,基本來說它需要8項發明專利進行全方位的保護,精準測驗是中國擁有完全知識產權的理論體系,現在我們(星云)已經批準和申請超過16個,后續我們還在持續做全面的知識產權覆寫,    五、 精準測驗的一分一合   對于精準測驗不算太了解的人可能認為精準測驗就是單純的覆寫率工具或者白盒工具在中國改了個名字,但還是有重大區別,簡單理解,它跟傳統覆寫率有一個一分一合的變化,

 

一分”指的是:精準測驗僅僅去統計(大范圍的整體)代碼覆寫率,而是要精確到用例級,比如回歸用例選取、測驗用例聚類分析、智能缺陷定位、開發測驗的協同,所有的資料都可關聯到用例級,精準測驗的作用和范圍就變得很大,大家看上面的雷達對比圖,相當于給傳統白盒測驗做了一個全方位的包圍,用例級就能有高精準度的測驗分析,傳統的白盒并沒有這種測驗分析, 一合指的是我們這個覆寫率已經不再是單元級的傳統白盒測驗主要針對單元級,工具很貴,號稱壁壘極高無法突破,但實際上它的難度還不至于高不可攀,軟體在單元情況下,一個單元跑,它的性能要求很低,星云精準測驗跟傳統測驗的白盒的差別很大,以前白盒測只能用單元,現在我們精準測驗可以把它用到系統,也就是功能測驗階段,星云可以在系統全速運轉資料量非常大的時候實時采集資料,并確保對原有系統不要進行干擾,實際應用中,還是可以繼續延用黑盒測驗的操作方法,動態執行用例后,可以得到大大超于白盒單元測驗的多種測驗資料及其分析結果,用起來十分方便,  

 

所以,大家可以看到星云精準測驗使傳統測驗模式發生了一個重大轉變,實作了真正意義上的灰盒測驗使測驗左移實作了優雅的落地,但它并不是讓我們的測驗工程師馬上就懂代碼開發、懂腳本開發、懂單元測驗,它是非常自然的去把用例跟代碼進行追溯分析,因為星云有一套靜態邏輯分析,可以把測驗使用難度大大降低,沒有開發經驗的黑盒測驗工程師能夠用的非常如果肯下功夫甚至還可以逐步突破職業天花板,成為優秀的測驗分析師   精準測驗可以給黑盒充分賦能,以前測驗和開發人員交流非常被動,如果開發說邏輯有5個,那就是5個,即便有第6個也很難被發現,有了精準測驗整個黑盒子就打開了,測驗模式發生一個很大的轉變,它使測驗實作精準數字化,我們在2015年的時候提出通過精準測驗引領測驗進入數字化,當時的主流觀點測驗是不可能數字化的,就像我們人去開汽車一樣,想左拐就左拐,覺得該剎車就剎車,沒什么數字化,但是有了精準測驗以后,所有動作可以去關聯代碼,每項功能都可以被數字化度量,Debug和回歸甚至變成了有趣地打怪升級的程序,所以,回過頭來看,可以發現精準測驗針對IT系統非常好的數字化、可量化、可評估、可考核、可度量很精確的一種技術方法   六、 精準測驗體系  

 

下面給大家介紹一下精準測驗體系的具體情況,如上圖所示,星云精準測驗有這樣的運行架構圖,它首先會對原始碼進行一個編譯和分析,把代碼結構靜態分析好后,將靜態資訊上傳到后臺對應專案版本中進行存盤,再根據塊的位置和型別資訊進行插裝,裝點只有編號資訊,代碼插裝好以后,放到被測系統里面直接動態去跑,測驗人員用軟體示波器點用例開始結束,就會自動把每個用例和代碼的正向和反向追溯關系建立起來了,   正反向追溯有兩個主體功能,一個是能夠讓測驗整體量化,使之看到所有的測驗程序測驗工程師沒有跑用例,就沒有關聯關系的資料;如果亂跑,我們分析一看功能完全不對,跑的功能和設計功能不應該聚類到一塊但卻聚類到一塊,就認為是瞎跑的,跑的不對,什么都可以看得非常細致,另外,星云提供的測驗智能分析的一些演算法,測驗用例最小級、回歸用例選取測驗用的聚類分析智能缺陷定位等,這些本來很理論化的技術,之前沒人能夠把它做出來,例如回歸用例選取這技術,它底層資料提取特別難,需要花費大量的時間去研究如何去真正落地實作比如我們碰到的一些場景:給安卓的Framework代碼插樁,然后拍張照片,照片渲染出來以后,整個安卓的驅動層代碼到底怎么走?一瞬間就要驅動計算并且展示出來整體邏輯的運行情況,這個復雜度相當高,實作了這種技術,就可以用精準測驗幫助手機廠商去節省CTS測驗的時間,   精準測驗在早期發展階段,推廣還是受到了很大的阻礙,其中一部人認為技術難度過高,因為國外的最頂級白盒工具也無法達到精準測驗的技術要求,更像是理論研究而無法商用,還有一部分意見認為測驗就是做功能黑盒人工測驗,就應用使用基于傳統的經驗性的測驗方法體系,現在這種觀念已經在發生悄然轉變,因為本質上,我們做測驗就不應該忽視計算機的軟體代碼和功能間本質上的強關聯性,   七、 商用精準測驗的無損技術   再從內核能力的角度上,給大家講一下開源白盒覆寫率工具和商用精準測驗之間的對比,  

 

現在我們很多單位在基于開源工具來做精準測驗,是好事,但也存在問題,我們星云從2012年開始創業,為什么不拿個開源的直接做?還可以10年內核開發,但我可以斬釘截鐵地跟大家講:要完整實作精準測驗那樣做肯定是不行的,   開源工具的困難點根源在于:它的分析和插樁全部在位元組碼上,但實際覆寫率的觀測點在原始碼上,這就產生一個嚴重的資訊脫節因為位元組碼是有損耗的開源工具能夠看到你的條件覆寫百分比,但根本不知道每個條件真和假,由于位元組碼階段,它的條件和真正的原始碼上條件已經發生了變化,已經沒人能搞得清上面和下邊對應關系了,比如Jacoco這樣的開源工具做了這么多年也沒有突破這個底層的根本性問題,這種差異會導致覆寫率不可彌補的缺陷和錯誤,大家知道:做覆寫率條件覆寫是非常必要的一個指標,開源工具突圍了很多年,也沒有成功,另外,它的碼操作非常復雜,行業里直接拿來試,但沒有人能完整、清晰地闡述它的內部情況,   星云精準測驗SABI(位元組碼插裝)SASI(原始碼插裝),可以實作真正的無損測驗技術, SABI,SouceCode Analyzer ByteCode Intrumentation,即原始碼分析位元組插裝,就是在原始碼上直接分析觀測點也還原始碼上,這個就能夠完整實作無損的插樁,覆寫率100%精確規范,SABI是依賴非常全面的原始碼靜態分析后,經過校正后的資料往位元組碼插,而不是直接在位元組碼分析,往位元組碼插,SABI位元組碼技術可以滿足國際規范的CDC的覆寫要求,   SABI是大家非常認可并歡迎的技術方法,2019年左右研發出來,解決了金融領域無侵入式插裝的訴求,目前SABI 2.0技術,能看到具體條件確定性的真偽覆寫,而不是僅僅是一個覆寫百分比,包括分支覆寫,它把所有的復雜運算在原始碼階段全部算完,比如它會產生一個分塊資料庫,里面所有的裝點在什么位置已經全部算好,對于插裝來說就是一條指令,一個分塊資料庫可能幾十兆上百兆,但所有的插裝動作就一條,所以它可靠性可以有非常好的保證,因分析出來的分塊資料庫是明文的,有問題可以直接核查,甚至可以把里邊一些裝點自動去掉或刪改都可以,很開放,不是個黑盒,使用安全和可靠度高   SASI(原始碼插裝),是傳統白盒最基礎的技術,直接在原始碼插裝,主要應用在對于覆寫率標準要求更高的領域,原始碼插裝以后,經過高級語言、高級編譯器的編譯,直接生成最后發布包,這種是完全無損的,可以隨時反查插裝點,不會引起語法錯誤、功能錯誤,可靠性更高,   八、 商用精準和開源精準的區別   商用系統級精準測驗有前置精準的靜態分程序圖中你會看到它每個條件真偽、條件組合真偽,它把代碼都切成邏輯塊了,直接在對應的位置上展示結果,開源產品缺了一個完整的靜態分析程序,后續很難深入做下去,這種代碼染色,一行一個顏色,需要測驗人員對代碼的理解能力要求高,無形中進一步推高了使用成本,  

 

商用系統級精準測驗能夠整個脫離Git系統做代碼可視化我們有完整的靜態分析,有Ll、L2、L3三級不同的可視化表達,L2級主要應用在代碼管控非常嚴格的場景下,它不提供原始碼閱讀權限,但我們可以根據分析出來的代碼結構,看到整體條件、嵌套關系等,對于黑盒測驗人員的資訊是足夠的,   商用系統級精準測驗系統內部有非常復雜的計算,這些計算是以靜態代碼分析做依據不在這個階段去關聯代碼關聯到Git上,在Git上去拿原始碼,然后再去算,一個是來不及,另外因為它不是結構化的,根本達不到實際使用要求開源產品做差異覆寫率時,需要讓Git告訴你差異代碼什么,而商用精準測驗,早已經完成了靜態分析,對于程式的控制流有沒有差異很清楚,它的運算完全脫離任何外部系統,像這種實時覆寫率切換的關鍵的功能,在實際場景的使用頻率很高,   實際應用中,對覆寫率的資訊要求絕對不僅僅是單版本的,而是需要投影到很多版本,商用精準測驗一旦基線切換,它會把歷史資料往基線自動進行投影,并且整個程序對用戶都是透明的,不需要人工 干預,因前面已經做過程式控制流分析等作業它的投影能實作秒級的計算和切換,這些也是基于開源產品研發精準測驗無法突破的技術瓶頸,   另外,很多企業級客戶喜歡在代碼塊上做標記,告訴你不同的代碼在做哪些功能,商用精準測驗也滿足了這一需求,它可以在分塊上做詳細標記,這個資料是一種結構化的,里邊會有嵌套的程式資訊理解,它可以畫出程式的控制流程圖,像有深度的網狀結構,覆寫率看得非常清晰,這些都是基于分塊資訊,   在商用精準測驗的使用場景里,大家用的比較多還有實時覆寫率功能即:在一個發版輪次中,多個版本之間自動匯集覆寫率,當資料從程式里傳出來以后,它只有跟用例的關聯關系資訊,它屬于哪個版本、哪個輪次/計劃/任務,起初都是不知道的,經過星云主server以后,會把這些資料實時往外吐,隨后有專門的server去實時往里合,一瞬間就合在輪次上,如果想看這個輪次的覆寫率,只要一刷實時馬上就可以看到,   商用精準測驗里,包含了一整套切基線的機制這個機制比較復雜:當一個新版本上線,一看資料屬于新版本,它會自動把基線切換為新版本,切的程序中,它會把歷史資料往新版本投,如果這個函式沒有變,就會把歷史資料投到過來;如果變了,整個清零形成一個新的輪次累計版本,用戶馬上可以看到一個實時累計版本的狀態,這個是做了比較復雜的一套系統,我們在很多時候感觸也比較深,這個內核做的復雜度非常高,  

 

行業上大家對商用精準測驗還是有些誤解,拿開源Jacoco來比對是不恰當的,因為產品能夠達到大規模商用化,要求是非常高的,我們(星云)可以對數億行代碼的大型高復雜度的系統插裝,也就是說在對億行代碼插裝的時候是不能有任何閃失,功能、性能以及引起編譯上的錯誤,都是絕對不允許發生的,   星云做過很多大型系統,包括數十個節點的分布式,還數百個大型服務,復雜性很高,目前錄最快的處理速度是在一個88的機上,相當于每秒鐘要處理140萬組的覆寫率數據,當然這個也不是原始資料,是在應用端發出來初步合并以后的資料,每秒140萬組合用例的關聯,這個關聯不能有時間差,因為一旦有時間差,你的資料屬于上一個用例的,會引起分析上的錯誤,每秒計算量要1.4億個位元組每秒,就是要算的這么快!這些資料來了以后馬上就算完,1.4億位元組這個資料馬上就要算到主系統里面去,所以它的整個的實時覆寫的延遲也要求很嚴格,   嵌入式系統場景中,要支持到實時系統,以前星云可以完成準時,現在完全可以在實時系統做,比如在一些DSP芯片的控制上,不會干擾它的時序,插裝以后,時序能夠保證正常,不會引起例外的邏輯,我們的精準測驗整套系統都是C++做的單節點128g記憶體可以支撐2000個系統,這種量級在以前是很難想象的(白盒工具一般主要用在單元測驗階段,測一些函式),這種大型系統的計算,對整個內核能力要求非常高,刷覆寫率速度要很快,開源的產品速度很慢,根本夠不到實際的生產場景要求,星云百萬級代碼行的基本就是秒級一刷所有的覆寫全部算完,實時速度很快,目前星云精準測驗運行絕大多數場景下,可以達到7*24小時不間斷運行與計算,這個很關鍵!如果大家對覆寫率或者精準測驗理解不深,大家會覺得這不就是一套測驗用的系統么,宕機就宕機,但實際上,商用精準測驗就應該是軟體測驗界的Oracle它不允許宕機因為大家一旦用上以后會非常糾結這個資料,比如我突然間一個條件沒了,我測驗過了為什么沒了不管你量有多大,丟了肯定不行,因為丟了就會造成分析的誤差,所以整個系統這種持續性以及穩定性非常關鍵,我們(星云)花了一兩年的時間一直在專門優化,因為它的要求太高了,商用精準測驗要在系統級采集,用戶的系統通常有很多,單系統采集的情況不多,可能幾百上千個系統同時在采集,它要求非常高,能夠做到7×24持續不間斷,就需要很多技術做支撐,   九、 精準測驗技術成熟度五級劃分   目前,按技術實作情況,可以把精準測驗分成5級,  

 

T1叫做開源覆寫級”,主要任務是統計覆寫率,拿開源產品架構稍微改一改就開始用了,它只有覆寫率的主要功能,包括差異覆寫,做一些簡單的定制,這叫“開源覆寫級”, 一般用在高校教學、普通應用層級的覆寫率統計,需要謹慎考慮用于企業質量體系建設指標,   T2級就是開源精準級”,這個級別主要基于 APM技術+開源,做到精準測驗一些基礎功能,比如可以實作用例和代碼追溯,由于前面我們講的開源內核的能力限制,對于很多場景,沒有有效的方案去解決,我們看過很多企業在這方面遇到了一些很大的實際困難,投入很多研發時間和精力,但最后都翻越不過去,浪費了不少寶貴的熱情和投入, 一般用在互聯網公司內部創新、對于覆寫率指標精確度要求不高、以及企業對升級到精準測驗的內部運行初步評估等場景,起到了對精準測驗技術拓荒與導引作用,   T3級“商用白盒級測驗”,這個領域幾十年前就有,比如國外工具C++Test、TestBed、VectorCast等,應用在汽車、航天一些領域用的工具,這些商用工具的單元測驗能力強,用它來做航天航空上要求的MC/DC的覆寫率,不會有什么問題,但它受限在單元測驗這個環節,不針對系統級應用,也就是說,黑盒工程師基本是用不起來的,這些工具大多沒有用例和代碼的追溯,在測驗分析方面的能力比較弱,從用戶的角度看,一個是價格非常高,另外在國產化替代的大背景下既方便采購、各種適配都有很大問題, 主要用在對單元測驗要求高、代碼量相對較小、質量要求極高、仍采用傳統瀑布開發模型的企業,常見的場景在航天軍工類的嵌入式系統等,   T4級“商用系統級精準測驗”,它的技術體系非常完整,要求較高,比如:(1)在滿足白盒測驗要求的同時,需可以對接黑盒測驗,整個采集程序可在系統級進行;(2)記憶體和CPU的附加開銷,必須控制在5%以內;(3)企業用戶可以根據自身需要,定制系統級別的覆寫維度和業務模型;(4)支持輪次級實時覆寫率和跨版本覆寫率累積技術,實作白盒探索性測驗的要求;(5)對微服務系統做全方位支持;(6)對流量隔離(穿透)技術需要提供強大的支持,以便更好的在微服務系統中實作全程精準測驗;(7)在回歸測驗智能選取上,需要給出推薦值,并可進行公共底層模塊引起的全量推薦修正等,   T4商用系統級測驗里,可以計算實時覆寫率,輪次級、計劃級、任務級、實時覆寫率能夠自動生成并查閱,T4級在整個流量隔離或者分布式系統的用戶標簽、穿透等方面,有非常標準化的解決方案,各種標準協議一個用戶標簽打過去,各個層面全部穿透過去,可以拿到整體的用例和代碼間全系統的這種關聯關系,另外在用例選取、回歸選取等有些演算法的優化,包括靜態修正、動態修正等,技術方案都很完整,另外,商用精準測驗的server一般都比較強,整體對性能的干擾可以控制在5%以內,因為這個級別主要是PC級的應用,性能開銷要求不是最主要的問題,2016年以來,星云測驗在這個級別做了最深入的研究,并在銀行、證券、保險、智能工業(通信)、智能汽車、國家電力、電信運營、航空航天、軍工等領域的多家企業實作了圓滿落地,   T5級是“商用內核級精準測驗”,它能夠執行對于Android Framework級代碼的覆寫率統計、Linux作業系統內核行程和相關驅動的覆寫率統計、DSP芯片中無作業系統狀態下裸C/C++代碼的覆寫率統計等,對系統的干擾非常小,因為如果插裝到作業系統上,很可能機器啟動不了,這個級別對性能的影響度一定要控制在1%以內,芯片與嵌入式板子等要求更高,因為他們是有時序的我們一些芯片有中斷時序,比如幾個中斷它一定要保證原有執行時序不能被打斷假設要0.1毫秒完成,那是絕對不能超過0.1毫秒,它不像PC端系統,慢一點也影響不太大,比如金融系統,查詢功能原來是1毫秒,插裝后變成1.2毫秒,它頂多是慢一點點,不會影響業務結果,但是這種芯片級會影響業務結果,造成邏輯錯誤,這是絕對不行的,目前國內主要是星云測驗承擔起了這個級別的測驗任務,應用在一些高端場景及領域中,比如軍工、智能汽車、芯片、電力等行業的國家級專案上,   十、 精準測驗的效能提升  

 

這個圖早在8年前,我們(星云)就發布了,現在看下來實際效果與起初的預估沒多少誤判,商用級精準測驗有很多驅動點可以改進效率,以覆寫率打比方:原有的黑盒測驗的瓶頸階段效率是很低的,這個階段假如依然使用人海戰術,基本上可以認為是消耗大量成本,而看不見有效成果,也就是你不知道軟體里面是什么,就在那猜用例,猜的很多都不對,比如一天猜100個用例,也許只有2個是有用,但商用精準測驗,就可以高效地分析用例、有目的地補充用例,一天做100個用例100個都是有效的,它并沒有增加作業量,這個是最讓人賞心悅目的,   引入商用系統精準測驗很多企業覆寫率很容易做到驚人的90%以上,因為它的提升是全方位的,包括我們開發測驗的互動的效率和管理端的效率,以前我們強調現場管理,時常需要盯著測驗工程師看干不干活,干得怎么樣,這種情況一個是容易造成矛盾,另外因為受人為因素干擾太多也不客觀,再有就是不能幫助測驗工程師們發現自己需要補充的技能,長此以往容易迷茫,早早碰到職業天花板,很痛苦,由此導致人員流動過于頻繁,不利于業務穩定,另外,商用級精準測驗在回歸上,給了測驗和開發們很大的支撐點,以前很模糊的一些東西,要人去投入大量時間分析,現在測驗用例自動推薦功能可以自動分析,而且速度極快,整個回歸測驗效率至少提高一倍以上,   十一、商用精準測驗的規劃與發展   商用精準測驗不是專案制的,整體都是高度產品化,每個功能都要考慮到整個行業的通用模式訴求,如何做到普適化?是非常一個嚴格的產品化程序,所以客戶的需求是模型化,我們就得按模型化來設計,比如很多場景要通過引數來區分,類似oracle這種軟體的引數比較多,一般我們(星云)的專業人員可以幫大家配好,對某個行業客戶的具體場景后續不需要變配置,  

 

高性能、高可靠永遠是追求的技術管理點,如果沒有高性能、高可靠,產品功能就算再強大也是沒用的,大規模商用化是會受到重大阻礙的,商用精準測驗技術是未來軟體質量體系最核心的業務和大趨勢,它不允許有任何錯誤,我們(星云)在這塊投入很大,   目前首創的核心技術都有保護,因為我們(星云)會按照自主可控內核的路線去發展,雖然很難,但是對企業來說,正是有了核心競爭力,才有資格去國際舞臺上與主流白盒一爭高下,如果拿開源直接用,會發現上手快很簡單,但是企業很多復雜一點的需求變更功能擴展都解決不了,因為它內核本身就有缺陷,另外是大部分用戶還是看不懂它的邏輯本身,遇到問題無從下手,   所以(星云)一直很關注專利保護授權,對專利的注重和保護是希望大家尊重技術創新,尊重商業規范,如果有人要借鑒,需要一個知會、授權的流程,星云是友好的,比如白皮書里面的內容是我們的專利得到授權可以公開后,面向行業是敞開式的定期更新、向大家介紹最新的技術,也會寫這些基礎怎么做,   我個人認為,精準測驗是在測驗全面智能化之前的一個很好的過渡,但是我認為過渡期最起碼需要幾十年,那時AI才有可能成為主導,然后把人的作業全部省掉,甚至可能包括覆寫率工具都可以不再需要,但這是最起碼是幾十年以后的事情,   不改初心,方得始終,在很長的一段時間內,我們會持續的發展精準測驗,讓精準測驗成為整個測驗行業提高效率的一個保障,現在很多企業的業務擴展太快,有限的人根本接不了暴增的專案,測驗作業量隨著專案指數級增加,精準測驗讓指數級變成一個直線,人力的貢獻是有限的,因為軟體的演算法是極度復雜的,人力無法在看不見的情況下,去做完全而有效的遍歷,所以好的產品和工具是必須品,我們一直在發展,包括很多研究合作、一些理論上的演算法,逐步的讓它更擁有更強大的能力,把人從繁瑣而沒有創造力的作業中解放出來,     撰稿人介紹: 趙明是中國最早一批軟體測驗專業碩士,曾在三大檢索及國內核心期刊發表數篇學術論文,師從國際著名軟體測驗科學家,深度關注和掌握軟體白盒測驗理論和工具底層技術, 精準測驗技術理念的發明人和商用工具的總設計師,作為第一發明人申請了16項精準測驗核心發明專利,完整的構建了精準測驗的發明專利簇,精通軟體測驗核心理論演算法,精通多種語言編譯器核心技術,代碼分析和插裝技術,精通計算機程式底層開發(圖形,存盤,二進制分析)技術,精通各種軟體測驗理論演算法,帶隊完成了中國第一個完全自主可控商用白盒測驗內核的研發,完成了超高性能白盒測驗內核的研發,將白盒測驗的應用領域從單元級向系統級和達到實時性要求嵌入式系統進行了擴展和應用,設計并研發了WINGS單元測驗用例自動生成系統,能夠面對非常復雜的軟體系統完成全自動的生成100%語法正確的可直接運行的單元測驗用例,產品性能遠超國際上同類產品,

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

標籤:其他

上一篇:NSIS獲取符號鏈接(軟連接)的目標路徑

下一篇:【YOLOv5】LabVIEW+YOLOv5快速實作實時物體識別(Object Detection)含原始碼

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(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
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more