現(xiàn)代社會是建立在各種以計算機為基石的軟件技術基礎之上的。隨著日新月異的需求變化,軟件系統(tǒng)越來越復雜。很多人覺得軟件開發(fā)才是重要環(huán)節(jié),但實際上,無法對大型軟件進行有效的質量把控,就無法真正構建與維護大型軟件?!到y(tǒng)中任何一個錯誤都可能導致整個系統(tǒng)的崩潰,造成無法彌補的損失,系統(tǒng)的任何一個微小的修改都可能引入新的缺陷導致維護困難重重。
然而,如何從極端龐大復雜的系統(tǒng)中迅速及時地找到故障所在,卻是行業(yè)的一大難點。目前國內軟件測試基本處于兩種狀態(tài):一是絕大多數(shù)企業(yè)采用功能(黑盒)測試,二是部分對軟件產品有高可靠性要求的關鍵軟件,企業(yè)會使用代碼級的白盒測試工具,但這兩種傳統(tǒng)的測試辦法在目前的軟件智能化趨勢下,更像是用竹竿打怪獸,完全沒辦法應付的。
功能(黑盒)測試,測試者看不到程序內部邏輯結構,這種辦法對軟件可靠性要求不高的應用來講問題不是很大,但是對于大型金融保險、工業(yè)軟件、航天軍工等關鍵系統(tǒng)就意味著時刻攜帶隱形的巨大風險。為此,功能測試后期需要極高的人力投入才能完成復雜邏輯的用例分析和設計。然而對于黑盒測試來說,由于我們無法獲知內部的邏輯構造,程序越大,殺蟲劑效應越明顯。而行業(yè)內當作銀彈的自動化測試,當自動化程序本身規(guī)模擴大以后,它的維護本身就存在了很嚴重的問題。
代碼級(白盒)測試工具一般重點應用在研發(fā)階段的單元測試上,滿足了客戶的部分高可靠性需求,但由于其價格高昂、技術老化,僅適合于小規(guī)模迭代瀑布式開發(fā)的軟件,無法完成復雜的系統(tǒng)級別的測試以及分布式基于云的測試,更無法適應敏捷迭代的開發(fā)模式。而且值得一提的是,目前白盒測試工具基本都是國外產品,通常這些產品無法完成深度的定制化功能以及快速的用戶響應,代碼安全也是一個較大的問題。
隨著國內軍民各項大型核心軟件系統(tǒng)的上馬,研發(fā)一種面向高復雜度大型軟件、自主可控的高性能智能精準測試平臺,顯得迫在眉睫。正是在這種時代背景下,2012年初,星云測試團隊開始心無旁騖的研發(fā)征程。精準測試是個交叉學科,里面涉及到編譯器、測試分析、圖形技術、高性能通信與存儲,軟件的研發(fā)等多項底層技術。經(jīng)歷無數(shù)個不眠之夜對技術難點突破的煎熬與最佳解決方案的反復推敲,星云精準測試產品在諸多方面率先實現(xiàn)了重大技術創(chuàng)新,成功突破了白盒測試使用難度大、價格高昂的桎梏,有效消弭了國外高端測試產品壟斷的壁壘。星云精準測試產品更偏向于軟件測試業(yè)界的“灰盒測試”,即用簡單的黑盒操作辦法,可以同時得到單元級和系統(tǒng)級的精準測試數(shù)據(jù)。
“星云精準測試”在眾多性能上大幅超越國外進口高端白盒測試工具產品,并在數(shù)據(jù)追溯、覆蓋率可視化、智能回歸、智能缺陷定位、分布式數(shù)據(jù)穿透與追蹤等特性上有突出貢獻?!靶窃凭珳蕼y試VIP大企業(yè)離線版云平臺”在整體測試功能上的優(yōu)異特性,成功獲得了一批重要大型企業(yè)的高度認可及產品采購。
星云精準測試的首發(fā)版本為:穿線測試ThreadingTest,2014年6月6日上線,側重于系統(tǒng)級白盒測試技術,測試用例和代碼邏輯的雙向追溯技術,測試示波器技術,覆蓋率可視化技術。2015年8月6日,“穿線測試”正式更名為“星云精準測試”。在繼承穿線測試整體技術上,星云精準測試增強了回歸測試用例的自動選取技術,缺陷最后執(zhí)行時序分析、智能缺陷定位、敏捷環(huán)境下多版本白盒測試數(shù)據(jù)的聚合、聚類分析、結合代碼結構與動態(tài)數(shù)據(jù)的測試漏洞檢出、代碼安全特性,全面的測試管理特性等幾十種優(yōu)秀功能。目前有“星云精準測試VIP大企業(yè)離線版云平臺”、“星云精準測試PASS在線云平臺www.teststars.cc“、“全自動測試用例驅動生成系統(tǒng)Wings”等多種工具產品。
星云精準測試旗下產品平臺有Horn、Paw、Shell、Wings等系列產品。適用語言和平臺暫為:Java、Object-C、C89、C99、C++0X11、C#等;適用平臺:Android、J2EE(、Web)、Java
Desktop、iOS、MacOS、Linux(X86、X64、mips、arm、powerpc、UNIX(AIX)、VXworks、Windows(visualstudio.net)、Windows操作系統(tǒng)、WinCE嵌入式平臺等。為響應廣大用戶的需求,目前正在進一步擴展適應的語言和平臺覆蓋面。
通過精準測試,即繼承了傳統(tǒng)功能測試前期的高效率運行區(qū)間,又能在后期通過系統(tǒng)的數(shù)據(jù),讓開發(fā)、測試充分協(xié)同,完成全程高效的測試。
(1)將測試團隊的價值放大,能夠將開發(fā)與測試更加緊密的連接起來,互為支撐。
(2)采用精準、可信測試技術,測試管理的難度大幅度降低。
(3)降低企業(yè)對人員的過度依賴,通過系統(tǒng)適應人員的變更。
圖1-1 精準測試在大型系統(tǒng)的效率運行分析
星云精準測試,既保證了傳統(tǒng)功能測試前期的高效率運行區(qū)間,又能在后期通過系統(tǒng)的數(shù)據(jù),讓開發(fā)、測試充分協(xié)同,完成全程高效的自動化精準測試。
第二章 精準測試的定義精準測試:是一種國際首創(chuàng)的軟件測試技術,旨在建立大型軟件系統(tǒng)的測試數(shù)據(jù)與源代碼之間高度的可視化追溯機制,實現(xiàn)精準缺陷預防及定位。它有力的打破了軟件開發(fā)、測試、維護及管理人員等之間的數(shù)據(jù)交流屏障,支持超大型應用從開發(fā)、迭代、維護全流程的可視化精準測試跟蹤和測試分析。即使是初級測試人員也能易于學習掌握,用黑盒測試的方法實現(xiàn)精準化測試。
精準測試使軟件測試從完全依賴人工記錄、驗證,轉換為機器智能的全過程精準、可視、可信的全新檢測模式。精準測試數(shù)據(jù)和黑盒測試優(yōu)雅對接,在不改變常規(guī)測試流程的情況下,就可以獲得大量的精準分析數(shù)據(jù),并直接引導用戶進行高效的后續(xù)測試與質量風險評估。用戶手動“點測“或者與自動化對接被測試應用的同時,可以快速記錄對應的代碼執(zhí)行邏輯并實施同步運算和分析,給出被測試應用的質量診斷報告。例如測試過程中的關鍵模塊漏測分析、測試充分度度量、代碼靜態(tài)質量分析以及崩潰的代碼級的捕獲和分析等。
精準測試有著超強的數(shù)據(jù)追溯機制,通過建立用例和代碼運行時數(shù)據(jù)的映射關系,能夠很好的協(xié)同開發(fā)和測試工作;它適用于當前流行的敏捷開發(fā)、測試體系,在版本迭代中,能夠準確的計算出由于版本迭代影響和波及的測試用例,快速給出測試復雜度報告并核確定測試范圍優(yōu)先級,極大減少上線風險。在團隊管理上,精準測試亦產出數(shù)十張過程及管理的不同剖面報表,以滿足各級管理需求。
星云精準測試的技術架構:通過對源代碼的插裝分析出代碼的靜態(tài)結構信息,運行插裝后的代碼,測試工程師通過人工或自動化的執(zhí)行用例,軟件示波器通過采集到的這些數(shù)據(jù),進行相關密集運算,得到測試數(shù)據(jù)。結合之前已有的代碼靜態(tài)結構信息,在星云客戶端可實現(xiàn)用例與函數(shù)直接的互相追溯,再通過星云測試工具的企業(yè)項功能,缺陷定位、用例聚類分析、回歸測試用例和最小測試用例集得到相應的測試數(shù)據(jù),星云測試通過報表的形式展示測試數(shù)據(jù),導出批量測試報告。
精準測試從某個層面來講,是賦予了測試用例真正的生命力,傳統(tǒng)的測試用例僅僅是一些只能夠依賴人去理解和分析的文本文件而已,在計算機和算法層面則沒有存在意義和價值。下圖是精準測試的整體架構圖:
圖3-1-1 精準測試的總體架構圖
大家首先可能會比較好奇,“用例魔方”的概念是怎么來的?測試用例魔方是在精準測試的設計、開發(fā)和商業(yè)實踐中自然產生的功能集合的一個統(tǒng)稱。當我們把精準測試的和用例分析相關的功能畫成架構圖形表示的時候,它自然而然地看起來就像魔方,所謂“魔”則是精準測試核心算法所賦予的超能力。
上圖是星云精準測試系統(tǒng)的總體結構圖,“測試魔方”即分布在左上角區(qū)域。大家知道精準測試的核心技術是測試用例與代碼的追溯關系的建立,而在此之上就可以構建測試魔方的核心功能區(qū)。如下:
圖3-1-2 精準測試的測試魔方
所謂“方”實際上是代表測試用例的集合,每個測試用例用一個小方塊標識,所有測試用例的集合用一個大方塊。精準測試體系中,測試用例對應的代碼邏輯都可以實現(xiàn)全自動的追溯和存儲,因此測試用例就具備了進行深入分析的基礎。在精準測試的用例魔方中,目前存在三個面(隨著后續(xù)功能的增加,將增加分析的面),即回歸測試用例選取、測試用例聚類分析、測試用最小化,同時輔之以智能缺陷定位技術。下面對精準測試的功能做詳細的說明。
3.2 軟件示波器
精準測試采集到的測試數(shù)據(jù)在軟件示波器頁面,通過可視化的窗口展示,實時展示采集到的塊、條件和函數(shù)信息,在下方列表實時展示函數(shù)調用信息。軟件示波器采集到的測試數(shù)據(jù),完美實現(xiàn)了用例與代碼的自動關聯(lián)。通過測試數(shù)據(jù)的反向追溯分析,開發(fā)人員可進行一致性修改,避免修改引入新的缺陷,通過正向追溯結果,開發(fā)可對用例的執(zhí)行進行全面掌握,可用于快速修復缺陷和詳細實現(xiàn)確認。
用例與代碼的在追溯是精準測試的基礎功能,后面的高級算法都在這個基礎上展開,用例和代碼的追溯就像一個全景的調試器,只要功能由測試人員進過運行,所有的內部代碼執(zhí)行邏輯瞬間就可以展示出來。
軟件示波器中的測試用例可以從現(xiàn)有的測試管理系統(tǒng)導入進來,當準備開始執(zhí)行一個用例的時候,選中用例點擊開始,然后驅動被測試系統(tǒng)運行,那么軟件示波器就會采集到程序內部運行邏輯對應的波形信息,當用例執(zhí)行結束,點擊停止。這個用例運行階段的數(shù)據(jù),通過開始和結束的邊界就記錄下來了。
軟件示波器主要起到有效的可視化測試過程的作用。在執(zhí)行用例過程中,如果沒有采集到測試數(shù)據(jù)或者程序出現(xiàn)崩潰的情況,軟件示波器就像人的心臟并沒有跳動一樣,一根橫線拉直。正常采集到數(shù)據(jù),將有持續(xù)的波形展示出來,高效而精準地監(jiān)控到程序細微的運行狀況。它可以精密捕獲每個軟件單元任何微小的運行波動和行為改變,并支持多次運行數(shù)據(jù)的比對。
同時軟件示波器也提供一個輔助的等價類劃分的功能,它將一個用例從開始到結束所執(zhí)行的路徑信息終值,完整記錄下來。如果兩個用例終值不一樣,就可以確定為不是等價類。對于很多從功能表面很難界定是否等價類的測試用例,軟件示波器可以給出精確結果。
通過軟件示波器高速采集程序數(shù)據(jù):
(1)只要測試開始執(zhí)行,即可以透明方式采集功能運行過程中對應的程序的運行邏輯。
(2)在系統(tǒng)高速運轉下采集,可保證對原有應用無干擾,超過1500w/s的采集速率。
(3)可采集程序的條件,執(zhí)行路徑,執(zhí)行參數(shù),內存使用等動態(tài)運行數(shù)據(jù)。
軟件示波器的采集速度極快,目前最高可以每秒鐘采集1500萬條測試數(shù)據(jù),對被測試程序的性能影響非常小。
圖3-2-1 軟件示波器
為了方便客戶在對測試時的實時數(shù)據(jù)監(jiān)測,數(shù)據(jù)實時動態(tài)刷新的時候能夠方便看到數(shù)據(jù),星云做出了實時數(shù)據(jù)監(jiān)測的懸浮窗,這樣就能在運行項目的時候就能更方便的看出數(shù)據(jù)的變化
圖3-2-2 軟件示波器懸浮窗
只要將鼠標移至懸浮窗就可以看到這條測試用例的ID和名稱
懸浮窗的塊,條件和函數(shù)就是動態(tài)實時監(jiān)測界面的塊塊,條件和函數(shù)
懸浮窗的額綠色按鈕表示開始,中間的紅色按鈕表示暫停,后面的按鈕表示通知
后面的圓圈分別表示了塊,條件和函數(shù)的消息數(shù),中間的圓圈表示了測試用例運行時間
1位置:鼠標點擊可以收放左側的數(shù)據(jù)塊
2位置:點擊鼠標左鍵開始接收當前用例的運行的數(shù)據(jù) 快捷鍵:Space
3位置:點擊鼠標左鍵暫停當前接收 快捷鍵:Ctrl+Shift+Space
4位置:點擊鼠標左鍵停止當前用例的數(shù)據(jù)接收 快捷鍵Space
5位置:類/塊數(shù)據(jù)類型切換[視圖切換] 快捷鍵:Ctrl+Shift+Q
3.3精準測試的雙向追溯精準測試提出了測試用例和代碼的雙向追溯,它也是精準測試核心技術之一。即運行一個測試用例以后,精準測試可以通過程序自動的記錄和顯示這個測試用例執(zhí)行的代碼。如果測試人員關注某一些代碼行,它可以追溯出哪些測試用例在運行過程中運行過這段代碼。通過這個技術特性,測試工程師的每個測試用例都可以進行量化分析和統(tǒng)計,這些量化數(shù)據(jù)既可以用來對測試工程師進行工作的考量,也可以提供開發(fā)人員和測試人員之間進行信息化的交流。?
雙向追溯技術記錄了每個測試用例對應的程序內部的執(zhí)行細節(jié),細致到每個條件、分支、語句塊的執(zhí)行情況。開發(fā)人員可以通過雙向追溯的結果去理解程序邏輯,進行軟件維護以及進行可一致性的修改。開發(fā)和測試可以順利交流,增加測試和開發(fā)的交流效率。?
將測試用例和代碼執(zhí)行信息自動關聯(lián),可到函數(shù)級別及代碼塊級別;通過正向追溯可直接在代碼級定位測試現(xiàn)場故障和缺陷邏輯,并提供最后運行的時序數(shù)據(jù);通過正向追溯自動記錄產生功能對應的詳細設計實現(xiàn),輔助軟件解耦和架構分析。
圖3.3-1 雙向追溯(正向)-測試用例追溯到代碼
圖3.3-2 雙向追溯(正向)-測試用例追溯到代碼
雙向追溯技術反向追溯將代碼執(zhí)行、函數(shù)、代碼塊級別和測試用例執(zhí)行信息自動關聯(lián),通過反向追溯可直接在觀察代碼變動所影響的測試范圍,幫助開發(fā)人員代碼修改影響功能范圍評估與測試人員對代碼修改部分所影響的測試用例進行評估。
圖3.3-3 雙向追溯(反向)-代碼追溯到測試用例
圖3.3-4 雙向追溯(反向)-代碼追溯到測試用例
數(shù)據(jù)追溯技術-追溯測試用例的全景調用
精準測試通過正向追溯把測試用例運行的代碼執(zhí)行進行了全景繪制,在全景圖中,測試人員可以有效的觀察到函數(shù)之間的整體的調用與走向,觀察出被測模塊與上層之間的調用關系
圖3.3-5 測試用例運行的代碼整體調用
數(shù)據(jù)追溯技術-針對多系統(tǒng)多模塊(微服務)的追溯
對于系統(tǒng)之間或模塊之間往往通過HTTP、HTTPS、等通信協(xié)議進行,而星云測試通過agent技術,把測試用例進行過的多個系統(tǒng)或多個模塊之間的調用進行了記錄并繪制成展示圖,測試人員可以很直觀的觀察出測試用例從起始點到進行的各系統(tǒng)或各模塊之間的調用關系圖。
圖3.3-5 多業(yè)務模塊數(shù)據(jù)穿透之間的調用
3.4 分布式結構下的數(shù)據(jù)穿透微服務是一個新興的軟件架構,它把一個大型的單個應用程序和服務拆分為數(shù)十個的支持微服務,獨立部署、互相隔離,通過擴展組件來處理功能瓶頸問題,比傳統(tǒng)的應用程序更能有效利用計算資源。微服務之間無需關心對方的模型,它通過事先約定好的接口進行數(shù)據(jù)流轉,使業(yè)務可以高效響應市場變化。但微服務一個明顯的表象就是隨著服務的增多,傳統(tǒng)的測試模式受到很大制約,無法有效進行下去,威脅到整體系統(tǒng)質量。
星云測試(www.teststars.cc)發(fā)布分布式微服務精準測試解決方案,是目前市場上唯一可達到在復雜分布式系統(tǒng)中跨多個服務器進行代碼白盒級分析,并實現(xiàn)請求分布式追蹤的測試平臺。其中產品內的穿透模塊,可以支持各種主流微服務通信架構,例如httpclient,springcloud以及消息隊列,將并發(fā)訪問場景下跨多個服務多組代碼邏輯分離并重建追蹤出來。實現(xiàn)了業(yè)務邏輯的代碼在開發(fā)層面通過微服務離散后,在測試階段則可以反向復原整個完整代碼執(zhí)行視圖。精準測試里面的穿線概念(Threadingtest)增加了第三層含義,即針對的分布式服務的穿透能力。
星云測試針對復雜的分布式系統(tǒng)中跨多個服務器(比如啟動多個spring
boot)進行代碼白盒級分析提供分析,實現(xiàn)請求分布式追蹤,產品內的穿透模塊,可以支持各種主流微服務通信架構,例如httpclient,springcloud、dubbo以及消息隊列等。
星云測試將多個用戶并發(fā)執(zhí)行測試用例場景下跨多個服務多組代碼邏輯分離并重建追蹤出來。
默認情況用戶標識采用瀏覽器的cookie值,測試前端瀏覽器設置。
微服務支持以下協(xié)議:
h:HTTP3,HTTP4,OKHTTP,org.springframework.http.client,cn.hutool.http,dubbo,feign客戶端
**圖3.4 微服務**
第四章 精準測試的核心組件與功能精準測試的核心組件與功能包含:軟件測試示波器、用例和代碼的雙向追溯、智能回歸測試用例選取、覆蓋率分析、缺陷定位、測試用例聚類分析、測試用例自動生成系統(tǒng),這些功能完整的構成了精準測試技術體系。
精準測試系統(tǒng)的本質是一套強大的計算機開發(fā)與測試系統(tǒng),實現(xiàn)數(shù)據(jù)可視化聯(lián)動的輔助分析系統(tǒng),它的關鍵技術是測試用例和代碼的雙向追溯技術。在這項技術的基礎上,很多高級測試算法得以應用同時將測試和開發(fā)進行非常緊密的連接。精準測試系統(tǒng)并沒有取代人工設計用例、執(zhí)行用例的過程,但是通過對該過程深入到代碼層的分析,可以相當大的程度改進人工測試所產生的各種問題。
接下來將從風險控制、工作協(xié)同、敏捷迭代、團隊管理、知識庫累積五個方面詳細解析精準測試的核心組件與其功能。
4.1 風險控制 4.1.1 七種測試覆蓋率星云精準測試提供7種測試覆蓋率:分別為:SC0語句塊覆蓋率、Ture覆蓋率、Both覆蓋率、CDC覆蓋率、Branch覆蓋率、MC/DC覆蓋率。
精準測試支持查看一個模塊的范圍內的覆蓋率,以及把一些代碼排除出計算范圍重新進行計算等高級功能,也可以查看到新增代碼部分的覆蓋率情況。通過對這些覆蓋率數(shù)據(jù)的分析,可以將風險控制到最低。
圖4-1.1-1 七種測試覆蓋率
MC/DC覆蓋率可視化
星云精準測試覆蓋可視化技術使每種覆蓋率如何計算、分子分母分別對應程序的哪些單元,展示的非常清晰。
星云測試提供MC/DC覆蓋率,即修正判定條件覆蓋,該覆蓋率數(shù)據(jù) MC/DC是DO-178B Level
A認證標準中規(guī)定的,歐美民用航空器強制要求遵守該標準。對于金融系統(tǒng)的一些關鍵模塊,也可以采用這個覆蓋率標準,MC/DC覆蓋率可以基本保證被測試軟件不存在缺陷。
MC/DC覆蓋是指所有符合條件中的子條件,在保持其他子條件不變的情況下,它自己的真假變化就會引起整個條件結果的變化,如果符合條件中的每個子條件都滿足了,那么整個條件的MC/DC就滿足了。星云精準測試提供相關的條件組合的結果展示,直接分析MC/DC覆蓋率的滿足情況。
圖4-1.1-2 MC/DC覆蓋率可視化
4.1.2 新增代碼覆蓋率
敏捷模式下迭代頻繁,測試人員往往被要求對本次變動或者新增的功能進行回歸,但實際過程中新版本的代碼經(jīng)常由很多開發(fā)進行修改,容易出現(xiàn)彼此不知道或遇到有代碼潔癖的,改了別人的代碼,大家都不知道。通常情況是,要么測試范圍定小了,遺漏了;要么測試范圍過大,付出過多代價,而精準測試通過新版本與老版本之間的差異進行比對,給出變動和新增的代碼的范圍,幫助測試人員對本次要求的變動代碼和新增代碼進行針對性的覆蓋率統(tǒng)計展示。
圖4.1.2 新增代碼覆蓋率
4.1.3測試覆蓋率范圍篩選與再統(tǒng)計
在做精準測試或統(tǒng)計覆蓋率時,往往測試管理者、開發(fā)人員、測試人員為了保證測試覆蓋率的正確性,會對某個方法、類進行查看或在統(tǒng)計中把代碼中一些廢棄的函數(shù)或特殊測試不到代碼進行移除,從而讓測試代碼覆蓋統(tǒng)計率達到更加準確。星云精準測試在設計中,通過多種搜索、方法、類、模塊過濾等功能把需要統(tǒng)計的范圍進行縮小或不需要的統(tǒng)計的進行去除,并根據(jù)用戶的選擇進行覆蓋率再統(tǒng)計展示。
精準測試打通開發(fā)與測試的協(xié)同工作通道,使得開發(fā)與測試能夠更好的溝通,提高工作效率。傳統(tǒng)模式下,開發(fā)人員關注的是代碼,測試人員關注的是業(yè)務角度的測試用例,他們沒有直接關聯(lián)。開發(fā)和測試的溝通,基本就是采用自然語言、Excel表格、內部系統(tǒng)溝通,存在大量的問題。例如測試工程師發(fā)現(xiàn)一個缺陷,提交到缺陷系統(tǒng),開發(fā)需要花費大量時間理解、準備數(shù)據(jù)、復現(xiàn)、調試,直到最后的修正。因為業(yè)務上的功能執(zhí)行和代碼并沒有明確的關系,通常測試工程師執(zhí)行完功能測試用例后,讓開發(fā)人員幫助評審也非常困難。
若測試工程師提供的測試結果都是比較模糊的功能邏輯描述,重現(xiàn)缺陷需要花費大量的時間。開發(fā)人員修改代碼后,對于變更描述,以及變更引起的關聯(lián)問題描述通常也都很模糊,導致測試又出現(xiàn)新問題。
企業(yè)采用精準測試技術后,通過執(zhí)行用例可以直接追溯到對應執(zhí)行的程序代碼塊,這樣的數(shù)據(jù)化溝通,將使開發(fā)人員和測試人員之間的協(xié)同工作效率大大提高。
圖4.2.1 協(xié)同模式
4.2.2 源碼動靜態(tài)數(shù)據(jù)的統(tǒng)一
星云精準測試通過插裝得到的項目靜態(tài)結構信息,結合測試后采集到的測試數(shù)據(jù),能夠精準記錄測試的過程,通過這些靜態(tài)數(shù)據(jù)和動態(tài)數(shù)據(jù)視圖,便于開發(fā)人員基于圖形化結果進行快速分析。
對于不懂開發(fā)的測試工程師,通過程序控制流程圖的圖形以及通過顏色表示的覆蓋信息,可以直接看到程序內部漏測的邏輯是什么,也可以通過這些結果直接與開發(fā)溝通,進行輔助用例和邏輯的補充。
因為內部邏輯能夠圖形化的打開和看到,可以有力保證黑盒測試后期,開發(fā)快速理解和介入瓶頸問題,保持全程測試的高效執(zhí)行。
圖4.2.2-1 源碼靜態(tài)結構與動態(tài)測試數(shù)據(jù)統(tǒng)一圖(函數(shù)調用圖)
圖4.2.2-2 源碼靜態(tài)結構與動態(tài)測試數(shù)據(jù)統(tǒng)一圖(控制流程圖)
圖4.2.2-3 源碼靜態(tài)結構與動態(tài)測試數(shù)據(jù)統(tǒng)一圖(簡易流程圖)
下圖展示的是一個函數(shù)的靜態(tài)結構,與動態(tài)測試數(shù)據(jù)結合的流程圖,如圖框架是靜態(tài)結構,綠色顯示部分是覆蓋到的代碼塊。
圖 4.2.2-4源碼靜態(tài)結構與動態(tài)測試數(shù)據(jù)統(tǒng)一視圖
4.2.3 缺陷最后執(zhí)行時序分析
星云測試采集數(shù)據(jù)時,可自動捕獲缺陷或崩潰發(fā)生時之前程序執(zhí)行的詳細路徑信息。當缺陷發(fā)生后,開發(fā)人員能夠直接看到缺陷出現(xiàn)時,代碼執(zhí)行的時序和路徑信息,直接定位缺陷和排查問題,節(jié)省大量的溝通以及復現(xiàn)和調試的時間成本。
IT工程師可直接觀察到程序出現(xiàn)缺陷后,最后執(zhí)行的50個代碼塊、條件、判斷的執(zhí)行信息。配合示波器來觀察,當功能執(zhí)行發(fā)現(xiàn)缺陷或崩潰時,示波器可以設置成手動或者自動停止,清晰記錄最后執(zhí)行的50個代碼序列的相關詳細信息,以供查詢和分析。
自動記錄崩潰發(fā)生時刻之前程序執(zhí)行的詳細路徑信息,捕獲難以重現(xiàn)的缺陷并快速解決:
最后50個代碼塊。最后50個條件。最后50個判定執(zhí)行。
除了在研發(fā)環(huán)境內,也可以在用戶現(xiàn)場精準定位缺陷,而無需再用戶現(xiàn)場部署任何代碼。
圖4.2.3 缺陷最后執(zhí)行時序分析
4.2.4 智能缺陷定位
星云測試對企業(yè)級用戶提供缺陷定位功能。通過測試人員標記用例執(zhí)行狀態(tài)和軟件示波器自動記錄的程序,可自動分析缺陷出現(xiàn)的可疑代碼塊。
傳統(tǒng)測試僅僅能夠發(fā)現(xiàn)缺陷,無法幫助開發(fā)提供有價值的代碼層級的數(shù)據(jù)。通過智能缺陷定位技術,測試工程師通過幾組用例,例如有的正確,有的失敗,尤其是輸入差別不大,讓被測程序表現(xiàn)為正確和失敗的情況。精準測試通過功能上的狀態(tài)以及用例對應的內部執(zhí)行代碼邏輯的差異分析,可以直接分析出現(xiàn)問題的代碼,隨后按照可疑度進行排序。如圖:
通過測試人員在功能測試階段標記的用例執(zhí)行狀態(tài),以及軟件示波器自動記錄的程序
運行頻譜,自動分析缺陷的出現(xiàn)的代碼塊。
(1)對于同類測試用例,經(jīng)過多組測試可給出非常有效的結果。
(2)列出的可疑代碼,可直接通過測試過程給出,提升測試的價值及產出。
圖4.2.4-1 通過功能測試頻譜法分析進行智能缺陷定位
選擇可疑度算法、得到可疑度高的代碼塊,關聯(lián)源碼后,可根據(jù)代碼可視化查看具體位置。可疑度計算有一個公式,并不復雜,通常每個代碼塊有2個變量,四種狀態(tài)值。分別是:是否執(zhí)行、是否通過,這樣每代碼塊都有一個可疑度值。
星云精準測試提供3種常用計算公式,供大家參考。
其中aep表示通過且覆蓋到該塊的測試用例的個數(shù)、anp表示通過且未覆蓋到該塊的測試用例的個數(shù)、aef表示未通過且覆蓋到該塊的測試用例的個數(shù)、anf表示未通過且覆蓋到該塊的測試用例的個數(shù)。結果表示該塊的可疑度。
圖4.2.4-2 智能缺陷定位展示
4.3 敏捷迭代4.3.1 敏捷迭代下多版本白盒測試數(shù)據(jù)的聚合
白盒覆蓋數(shù)據(jù)通常與代碼先關,而敏捷環(huán)境下代碼每天都會發(fā)布幾個版本,代碼變更后白盒數(shù)據(jù)就無效了。
星云測試結合目前快速迭代的開發(fā)模式,通過分析代碼增量,結合不同版本覆蓋率,支持累計的合并計算,將多個敏捷局部測試的數(shù)據(jù)匯總到最新代碼視圖上統(tǒng)一展示。
星云精準測試的“敏捷環(huán)境下多版本白盒測試數(shù)據(jù)的聚合”功能,可以通過內部累加一個測試周期內的總體覆蓋,并在最新代碼視圖上投影。用戶可以看到在一個敏捷周期內的總體覆蓋情況,雖然每個敏捷版本可能只是關注某一部分功能。例如一個函數(shù)如果一直從某個版本后一直未發(fā)生代碼變化,那么從變化點以后的覆蓋率就可以累加而之前就丟棄掉。
星云精準測試-敏捷環(huán)境下多版本白盒測試數(shù)據(jù)的聚合如圖所示。
圖4.3.1-1敏捷環(huán)境下多版本白盒測試數(shù)據(jù)的聚合
精準測試所有數(shù)據(jù)分析結果都特別考慮了快速迭代的開發(fā)模式。
(1)所有版本的測試數(shù)據(jù),支持累計的合并計算,將多個敏捷局部測試的數(shù)據(jù)匯總到最新代碼視圖上統(tǒng)一展示。
(2)可以任意選擇版本合并,觀察任何時間節(jié)點的累計數(shù)據(jù)。
**圖4.3.1-2敏捷環(huán)境下多版本白盒測試數(shù)據(jù)的報表**
4.3.2 聚類分析
星云精準測試提供的聚類分析功能,根據(jù)測試用例的函數(shù)執(zhí)行剖面的向量化信息,對測試用例進行精確的空間距離計算后執(zhí)行聚類分析。聚類結果可以分析被錯誤執(zhí)行的用例,例如不相關的功能點聚類到一起,則說明其測試執(zhí)行可能存在錯誤。
另外也可以輔助找到缺陷分布的密集區(qū)域。大部分情況下,缺陷分布會呈現(xiàn)2/8的聚集特性。在時間緊張的情況下,我們可以通過聚類結果,每個類選取中心點以及周邊幾個用例。如果沒有問題,就可以去測試其他聚類,如果發(fā)現(xiàn)一個類缺陷概率高,那么這個類就需要進行重點測試。通過聚類結果也可以分析測試用例的分布密度等信息,輔助進行測試決策。
星云精準測試-通過用例聚類分析識別缺陷密集分布區(qū)域
(1)通過聚類結果給出測試密度,聚類圈中的密度越高,則說明該功能模塊測試越密集
圖4.3.2-1 測試密度
(2)聚類結果可以分析被錯誤執(zhí)行的用例,例如不相關的功能點別聚類到一起,則說明其測試執(zhí)行可能存在錯誤。
圖4.3.2-2 聚類分析
(3)從類中檢出中心點測試用例以及隨機的其他用例,可以快速確定類中是否存在較多缺陷,快速定位缺陷的分布,并進行重點測試。
星云精準測試,結合代碼結構和動態(tài)數(shù)據(jù)綜合分析,通過計算直接篩選出潛在的高危測試漏洞,可以在短期內確定高危漏測模塊。針對性的解決方案,幫助用戶快速找到嚴重缺陷。
當測試時間不充分的時候,首先可以先看測試漏洞列表。列表里將顯示通過靜態(tài)信息和動態(tài)信息計算,得到的最高風險的漏測點模塊。我們通過復雜度進行計算,復雜度高的模塊。一般來講是重要模塊并且邏輯復雜,如果動態(tài)覆蓋比較低,將被篩選出來。
第二,處于調用和被調用中間的模塊,因為屬于中間關鍵模塊,我們也會計算它的扇入扇出和動態(tài)覆蓋率信息。如果比率很高,也會被認為是高風險模塊篩選、高亮標示出來。
從測試效率角度考量,我們建議在基本的功能黑盒測試完成后,先看這些高危模塊,補充他們的覆蓋率。在時間不充分的時候,優(yōu)先測試這些高危模塊。星云精準測試-結合代碼結構與動態(tài)數(shù)據(jù)的測試漏洞檢出。
圖4.3.3漏洞檢測列表
4.3.4 精準測試與自動化測試對接
星云精準測試提供了一個通用的自動化接口調用包,為眾多的自動化工具進行調用,可以無縫的對接各種主流的自動化工具,測試人員無需改變原有的測試腳本流程,即可執(zhí)行原有的自動化并在星云精準測試軟件示波器中自動建立測試用例并且與執(zhí)行的代碼進行相關聯(lián)。
星云精準測試與自動化對接還能通過其精準測試的回歸、新增代碼覆蓋率進行相結合使用達到新版本發(fā)布全自動的回歸測試。
圖4.3.4星云測試自動化流程
4.3.5 最小測試用例集
星云精準測試通過每個測試用例對應的代碼進行統(tǒng)計計算,給出測試用例之間的冗余部分,即滿足當前代碼覆蓋率所需要的運行的最小測試用例集合,主要用于對項目后期大量增長的自動化測試用例進行評審操作,從而降低對自動化用例的維護成本。
星云測試提供云報表,來實時精準的追蹤測試進度。星云測試web端的報表系統(tǒng),當客戶端錄入測試用例并采集數(shù)據(jù)后,將在web端產生實時的、具備高可信度的測試情況報表。
該報表與普通的測試管理系統(tǒng)不同:普通的測試管理系統(tǒng)有人為錄入數(shù)據(jù)的情況,數(shù)據(jù)本身的真實性就沒辦法保證。精準測試提供的報表,底層數(shù)據(jù)來自于執(zhí)行測試用例時候代碼數(shù)據(jù)的采集,通過專用接口上傳,完全無法篡改和偽造。星云精準測試-企業(yè)私有云端實時、精準、可信質量跟蹤。
(1)通過瀏覽器登錄測試系統(tǒng),選擇需要跟蹤的項目,就可以實時的對整個測試的質量、進度、人員進行精準的分析和管理。
(2)
企業(yè)私有云端管理系統(tǒng)展示的數(shù)據(jù)基于精準測試數(shù)據(jù)的分析,所有數(shù)據(jù)原生精確,支持移動測試+本地測試。
(3)
測試團隊、開發(fā)團隊、甲方負責人等多種角色都可以登錄系統(tǒng),從各個層面對測試、軟件質量進行分析。
圖4.4.1-1 項目匯總展示
星云精準測試項目匯總中,包含了項目信息、版本信息、測試匯總信息、測試過程監(jiān)控趨勢圖、測試設備組成和分布圖、各版本覆蓋率匯總圖、復雜度匯總圖等。
從另外一個角度來看,精準測試大企業(yè)版本也可以讓不同區(qū)域、不同時間的測試人員實現(xiàn)協(xié)同測試與協(xié)同管理,最終達到多人同地測試、多人異地測試、數(shù)據(jù)實時匯總共享與追蹤、測試過程與完成度一目了然的管理目標。
項目信息
圖4.4.1-3 測試信息匯總
測試用例通過率:無BUG的測試用例
BUG累計:測試用例運行完畢后提交的BUG數(shù)
當前版本覆蓋率(SC0):(執(zhí)行過可見段數(shù)/可見段數(shù))*100%的比例
覆蓋率增長:相比前一天的SC0增長差值
高復雜度預警函數(shù)個數(shù):高復雜度的函數(shù)個數(shù)
4.4.2 精準測試的企業(yè)私有云-測試效率的直觀展示
星云測試報告可直觀分析每天的測試效率,通過代碼模塊和復雜度關系圖,看到函數(shù)群落測試情況分布及趨勢,可直觀精準識別系統(tǒng)測試所處階段。
例如通過每日增長覆蓋,我們可以看到整個團隊的工作效率。一般系統(tǒng)都是在剛開始測試的時候覆蓋率增長快,到了黑盒測試的瓶頸點,就上升很慢了。管理者可以通過報表,清晰的看到整個團隊的效率趨勢,并采取相關策略。
覆蓋率和復雜度的關系圖,可以很直觀的看到測試的質量。如果測試不充分的時候,復雜度高的模塊通常覆蓋率都比較低,分布自一個左上角的區(qū)域,當測試深入進行,這些點就會向右側移動。管理者可以非常直觀的看到系統(tǒng)測試的充分程度和上線的質量把握。
(黑盒效率換擋點+測試深度運動趨勢)
(1)累計覆蓋率增長視圖直觀分析每天的測試實效以及確定從系統(tǒng)黑盒測試轉換到精準測試的最佳時點。
(2)代碼模塊覆蓋率和復雜度關系圖,看到函數(shù)群落測試情況分布以及運動趨勢,可以直觀精確識別系統(tǒng)測試所處階段。
圖4.4.2-1 覆蓋率每日增長趨勢圖與黑盒測試瓶頸
圖4.4.2-2 測試效率換檔點與測試深度趨勢觀察表
函數(shù)|類|文件復雜度和覆蓋率關系圖,以散點圖的形式展示各種復雜度和覆蓋率的關系,更清晰的掌握各種程度覆蓋率的分布。
圖中點:代表每個函數(shù),點擊后可以看到相關信息。
縱向:代表復雜度不同級別,取各種覆蓋率值,點擊自動進行切換到相應的復雜度
橫向:代表覆蓋率不同級別,取各種覆蓋率值,點擊自動進行切換到相應的覆蓋率
紅圈62:代表當前版本所選的復雜度類型中最高復雜度值
籃圈100:代表當前版本所選的覆蓋率類型中最高覆蓋率值
4.4.3 精準測試的企業(yè)私有云-測試用例排行圖
測試用例排行圖,可直觀展示參與測試工程師所執(zhí)行的用例數(shù)、通過率和缺陷率,真實記錄并分析每個測試用例的實效性。星云精準測試-測試工程師實效精準分析系統(tǒng),將參與的測試工程師所執(zhí)行的用例從邏輯覆蓋映射到代碼覆蓋,真實記錄并分析每個互聯(lián)網(wǎng)測試參與者的工作實效。以邏輯覆蓋為基準的而不是用例數(shù)量為考核標準。
圖4.4.3 測試用例排行圖
4.5 知識庫累積4.5.1 精準測試數(shù)據(jù)的價值
星云測試采集的測試數(shù)據(jù)和插裝后分析到的靜態(tài)結構信息將作為大型企業(yè)系統(tǒng)大數(shù)據(jù)分析的基礎數(shù)據(jù)。
星云精準測試-測試數(shù)據(jù)價值
(1)代碼級的程序靜態(tài)信息以及測試用例對應的海量動態(tài)測試的數(shù)據(jù),這些多維度數(shù)據(jù)將作為大型企業(yè)系統(tǒng)大數(shù)據(jù)分析的基礎數(shù)據(jù)。
(2)對本企業(yè)大量軟件質量數(shù)據(jù)進行挖掘和分析,找到相關質量技術標準衡量的合理區(qū)間,避免常規(guī)錯誤。
(3)通過數(shù)據(jù)分析確定優(yōu)異的開發(fā)方法和技術構件。
(4)通過質量大數(shù)據(jù)的分析結果,選擇更加合理的技術方法,在設計階段避免已知的缺陷。
4.5.2 精準測試智能回歸測試用例智能選取通過對測試數(shù)據(jù)分析,星云精準測試可自動篩選測試用例。在回歸測試時,大大減少回歸測試的時間及風險,如圖通過對版本a和版本b測試數(shù)據(jù)分析,通過歷史數(shù)據(jù)的比對,可在版本c上全自動得到回歸優(yōu)先級高的用例。
圖4.5.2-1 精準測試智能回歸測試用例的選取
適應快速的版本迭代周期,適應龐大的工程項目。
(2)在回歸測試時,自動篩選測試用例,大大減少了回歸測試的時間以及風險。
(3)降低了傳統(tǒng)人工回歸分析產生的測試盲點。
圖4.5.2-2 回歸測試用例選取界面
4.5.3 精準測試在回歸測試中的性能評估
回歸性能,通常一般回歸都是基于人對于系統(tǒng)的判斷來做的,一般來講國際上的統(tǒng)計每修改6行代碼就會引入一個未知的缺陷。由人來進行回歸用例集的判斷,隨著時間的延續(xù),記憶將不可逆轉地發(fā)生損耗并丟失,加之原團隊人員的不斷變更,老的系統(tǒng)維護越來越難,修改引入新的缺陷要越來越難風險。
通過星云精準測試企業(yè)離線平臺,內置程序將持續(xù)、高效地全自動記錄本企業(yè)自有的各系統(tǒng)測試用例和代碼的關系數(shù)據(jù),不用人工干預和記錄。使用一段時間后,企業(yè)會得到越來越精確的數(shù)據(jù),若加以有效利用,將發(fā)揮相關元數(shù)據(jù)及大數(shù)據(jù)的爆發(fā)性的價值。
圖4.5.3 智能回歸測試用例選取的性能評估
第五章 精準測試的管理報表分析星云精準測試報表體系,是根據(jù)大型企業(yè)實際工作中的訴求而設計。報表涉及內容很多,包括項目信息、測試過程及總結信息、團隊效率信息等,數(shù)字化展示企業(yè)分布式開發(fā)與測試過程、驗收和維護全過程。它深度解決軟件測試短板,數(shù)字化跟蹤、追溯、輸出開發(fā)與測試每一步信息。
它把原來很多需要人工錄入的數(shù)據(jù),由平臺代為自動化機器處理,確保所有的數(shù)據(jù)都是可信的、不可篡改的。它自動把測試用例、測試設備、測試數(shù)據(jù)、測試人員、測試時間等信息進行關聯(lián)分析,企業(yè)管理人員可以利用機器原生數(shù)據(jù),對測試全過程進行精準的數(shù)字化管理。
此項中將展示項目中各個指標匯總信息,如:程序代碼信息匯總,測試漏洞、程序覆蓋率指標、代碼違規(guī)統(tǒng)計、代碼重復度、程度復雜度指標、程序Crash情況等。
圖5.1 項目指標匯總圖
5.1.1 程序代碼信息匯總
程序代碼信息匯總中顯示當前代碼基本信息、代碼注釋比例、代碼可維護性。它能有效地檢查出代碼的整體狀況,并指出相應的薄弱點。
圖5.1.1 程序代碼信息匯總
上述指標,需要使用到以下數(shù)據(jù)并對應映射表來確定:可分析性、可修改性、穩(wěn)定性、可測試性的最終等級。
5.1.2 程序覆蓋率指標
程序覆蓋率指標:該值是程序測試過程中代碼段的覆蓋率數(shù)值
圖5.1.2-1程序覆蓋率指標
圖5.1.2-2覆蓋率百分比
程序復雜度指標:給出程序復雜度相關信息,以及文件、類、函數(shù)三個級別復雜度分級柱狀圖。(基于CC0計算)CCO表示的是圈復雜度
圖5.1.2-3 程序復雜度指標
5.2測試用例-按日趨勢圖
圖5.2 按日趨勢圖
圖5.2.1 項目信息
5.2.2測試用例按日趨勢圖折線圖和柱形圖可以在不同的圖形示例中切換,還原顯示默認折線圖
縱軸坐標:代表數(shù)量,取值范圍為自動適應最高值
橫軸坐標:代表日期時間
圖5.2.2測試用例按日趨勢圖
5.3測試用例-測試用例列表圖5.3-1 測試用例列表的詳細信息
顯示制作的測試用例的詳細信息,包括測試用例的名稱、創(chuàng)建時間、執(zhí)行時間、關聯(lián)函數(shù)、覆蓋率占比、運行狀態(tài)、測試人員等
圖5.3-2 測試用例排行與貢獻
5.3.1 星云精準測試軟件示波器(測試用例跟蹤) 5.3.1.1 測試用例描述
對選定測試用例表述其詳細信息,包括測試用的所屬模塊、日期、錄制人、執(zhí)行時間等。
圖5.3.1.1 測試用例描述圖
5.3.1.2 錄制記錄
記錄示波器最后的接收的塊、條件、函數(shù)的總信息,分最新一次和上一次,用于等價類測試比對。
圖5.3.1.2-1最新與上一次軟件示波器接收信息對比
按時間倒序排列示波器接收到的函數(shù),記錄程序最后運行的函數(shù)狀況,用于定位程序錯誤和測試用例運行過程中的邏輯分析。
圖5.3.1.2-2 軟件示波器接收函數(shù)圖
5.4測試缺陷-Bug信息匯總圖5.4Bug缺陷匯總
5.4.1 Bug按日趨勢圖和Bug類型分布組合
Bug按日趨勢圖直觀地反映Bug提交趨勢。
點擊折線圖上的點會顯示相應的Bug組成。
圖5.4.1 BUG按日趨勢圖
5.4.2 Bug提交排行榜給出提交Bug的測試工程師的排行榜。
彩條圖可以選擇按照Bug級別顯示,也可以選擇按照Bug類型顯示。
圖5.4.2BUG提交排行榜
圖5.5-1 bug詳細列表
顯示提交的BUG的詳細信息、包括提交人、BUG類型、對應的測試用例等。
圖5.5-2BUG詳細信息圖
5.6覆蓋率-按日增長趨勢圖圖5.6 按日增長趨勢圖
5.6.1 覆蓋率信息匯總
可以查看當前版本覆蓋率的信息,可以選擇多種覆蓋率進行查看以及各個測試模塊占覆蓋率的比。
圖5.6.1 覆蓋率信息匯總圖
5.6.2 覆蓋率按日增長曲線圖覆蓋率按日增長曲線圖,讓管理者更好的把握測試過程。
圖5.6.2 每日覆蓋率增長曲線圖
5.6.3 雷達圖
根據(jù)項目的需要,測試人員可以自己設置覆蓋率的上限,通過雷達圖展示是否達到預期。
覆蓋率指標是否要每項都到100%才算測試結束?在覆蓋率達標方面,用戶可以按每個應用的實際情況進行達標線設置。
給出數(shù)字化覆蓋率展示的用意在于:讓測試人員通過觀察,能更好的補充完善測試用例。雷達圖的目的,是為了當測試人員觀察是否達到預期。
圖5.6.3 覆蓋率總雷達圖
5.6.4 函數(shù)|類|文件覆蓋率統(tǒng)計
分析匯總了函數(shù)、類、文件的各個覆蓋率量度值,更清晰的掌握目標代碼覆蓋率。
圖內容:顯示當前版本的文件、類、函數(shù)在各個覆蓋率之間的分布。
縱向:代表覆蓋率的不同級別,取各種覆蓋率值,點擊后自動進行切換到相應的覆蓋率
橫向:代表覆蓋率%區(qū)間,取值0-20、20-40、40-60、60-80、80-100
總量:代表當前版本的函數(shù)總量
圖5.6.4 函數(shù)|類|文件覆蓋率統(tǒng)計圖
5.7覆蓋率列表圖5.7覆蓋率列表
5.7.1 覆蓋率列表與單函數(shù)的覆蓋率、復雜度雷達圖
通過對單個函數(shù)的覆蓋率的雷達圖設置,用數(shù)字化的形式展示核心模塊的測試充分度。
圖5.7.1蓋率列表與單函數(shù)的覆蓋率、復雜度雷達圖
5.7.2 函數(shù)對應的調用關系圖選擇函數(shù)列表的中的函數(shù),對應展示該函數(shù)的調用關系,總3層。
圖5.7.2 選擇單函數(shù)調用關系圖
5.8復雜度-函數(shù)|類|包復雜度統(tǒng)計圖5.8 函數(shù)/類/文件復雜度統(tǒng)計
5.8.1 復雜度統(tǒng)計信息為了正對復雜度的風險,星云精準測試給出了預警報告表和復雜度詳細列表。
對于安全系數(shù)高的客戶,測試人員可以要求開發(fā)進行重新設計降低風險。
圖5.8.1 復雜度預警
5.8.2 復雜度列表星云精準測試報表中,展示所有函數(shù)的復雜度信息。
點擊某一函數(shù),會在列表下方繪制對應的雷達統(tǒng)計圖。
圖5.8.2復雜度列表