您好,登錄后才能下訂單哦!
20年前(2000年),上網是一件很酷的事,叫做“網上沖浪”,主要是幾個門戶網站占據絕大多數注意力;20年后(2020年),我們已經全方位“浸泡”在軟件的海洋里,很多大型軟件系統已經超過億行,架構模型越來越復雜。未來的20年(2020-2040年),隨著各種智能應用的層出不窮,軟件系統內部邏輯會不可逆轉的越來越復雜,而外部操作會越來越“傻瓜”。用戶一個眼神或者一動腦,就能夠切換出不同的功能需求。同時中國的軟件產品化進程,近些年來正在蓬勃的進行,大量的公司開始研發自己的產品。伴隨著關鍵核心軟件的國產替代,使得原本應用級難度的開發正在向高復雜度和高質量的產品型研發轉型。這個轉型的過程,注定將產生對于高端測試工具的巨大需求。
軟件缺陷發現得越晚,其處理費用即呈幾何性激增,而不是線性增長。如何從龐大復雜的系統中迅速及時地找到故障所在,一直是行業的一大難點。無法對大型軟件進行有效的質量把控,就無法真正構建與維護大型軟件。目前國內軟件測試基本處于兩種狀態:一是絕大多數企業采用功能(黑盒)測試,二是小部分對軟件產品有高可靠性要求的軟件,企業會使用代碼級的白盒測試工具。但這兩種傳統測試辦法在目前的軟件日趨智能化復雜化下,弊端越來越明顯。
功能(黑盒)測試技術**,使墨菲定律在所難免。**由于無法獲知程序內部邏輯結構,這種測試辦法對軟件可靠性要求不高的應用來講問題不是很大,但是對于大型金融機構、智能工業、航天軍工等關鍵系統,就意味著時刻攜帶隱形的巨大風險。為此,功能測試后期需要極高的人力投入才能完成復雜邏輯的用例分析和設計。然而對于黑盒測試來說,程序越大,殺蟲劑效應越明顯。而行業內當作銀彈的自動化測試,當自動化程序本身規模擴大以后,它的維護本身就存在了很嚴重的問題。低效的黑盒測試狀態,最終將影響和制約未來整體軟件發展。
代碼級(白盒)測試工具一般重點應用在研發階段的單元測試上,滿足了客戶的部分高可靠性需求,但由于其價格高昂、技術老化,僅適合于小規模迭代瀑布式開發的軟件,無法完成復雜的系統級別的測試以及分布式基于云的測試,更不適應敏捷迭代的開發模式。另外白盒測試工具基本都是國外產品,通常這些產品無法完成深度的定制化功能實現以及快速的用戶響應,代碼安全更是一個較大的問題。
所有先進的科技都是具備前瞻性眼光的。隨著國內軍民各項大型核心軟件系統的上馬,研發一種面向高復雜度大型軟件、自主可控的高性能智能精準測試平臺的必要性,逐漸凸顯。在這個時代背景下,2012年初,星云測試團隊開始了篳路藍縷、心無旁騖的研發征程。精準測試是個交叉學科,里面涉及到編譯器、測試分析、圖形技術、高性能通信與存儲,軟件的研發等多項底層技術。
經歷無數個不眠之夜對技術難點突破的煎熬與最佳解決方案的反復推敲,星云精準測試產品在諸多方面率先實現了重大技術創新,成功突破了白盒測試使用難度大、價格高昂的桎梏,有效消弭了國外高端測試產品壟斷的壁壘。星云精準測試產品更偏向于軟件測試業界的“灰盒測試”,即用簡單的黑盒操作辦法,可以同時得到單元級和系統級的精準測試數據。
“星云精準測試”不負眾望,在眾多性能上大幅超越國外進口高端白盒測試工具產品,并在數據追溯、覆蓋率可視化、智能回歸、智能缺陷定位、分布式數據穿透與追蹤等特性上有突出貢獻。星云精準測試,既繼承了傳統功能測試前期的高效率運行區間,又能在后期通過系統的數據,讓開發、測試充分協同,完成全程高效的測試與數據分析。
(1)將測試團隊的價值放大,能夠將開發與測試更加緊密的連接起來,互為支撐。
(2)采用精準、可信的測試技術,測試管理的難度大幅度降低。
(3)降低企業對人員的過度依賴,通過系統適應人員的變更。
(4)為企業實現測試數據資產的有效積累和分析,打下堅實基礎。
“星云精準測試VIP大企業離線版云平臺”在整體測試功能上的優異特性,成功獲得了一批重要大型企業的高度認可及產品采購。
星云測試的首發版本為:穿線測試 ThreadingTest,2014年6月6日上線,側重于系統級白盒測試技術,測試用例和代碼邏輯的雙向追溯技術,測試示波器技術,覆蓋率可視化技術。
2015年8月6日,“穿線測試”正式更名為“星云測試”。在繼承穿線測試整體技術上,星云精準測試增強了回歸測試用例的自動選取技術,缺陷最后執行時序分析、智能缺陷定位、敏捷環境下多版本白盒測試數據的聚合、聚類分析、結合代碼結構與動態數據的測試漏洞檢出、代碼安全特性,全面的測試管理特性等幾十種優秀功能。
目前有“星云精準測試VIP大企業離線版云平臺”、“星云精準測試PASS在線云平臺 www.teststars.cc”、“全自動測試用例驅動生成系統Wings”等多種工具產品。
星云精準測試旗下產品平臺有Horn、Paw、Shell、Wings等系列產品。適用語言和平臺暫為:
為響應廣大用戶的需求,目前正在進一步擴展適應的語言和平臺覆蓋面。
圖1-1 精準測試在大型系統的效率運行分析
星云精準測試,既保證了傳統功能測試前期的高效率運行區間,又能在后期通過系統的數據,讓開發、測試充分協同,完成全程高效的自動化精準測試。
精準測試技術體系經過近6年的商業項目實踐日臻成熟,大量商業應用案例的正面積極反饋,表明它已經成為新的軟件測試技術方向體系。星云精準測試靈巧詳細的功能設計和高度可靠的產品內核得到了市場的廣泛認可,對于國際上原有的白盒測試工具來講,是一種質的飛躍。
2012年,精準測試的商用工具正式進入設計和研發階段。與引進國外技術不一樣,精準測試的核心技術體系是星云測試團隊在國內的原創設計和研發。產品經過3年的悉心研發、反復內測、不斷優化后,2014年精準測試在CSTQB會議上,發布了第一個商用版本ThreadingTest,引起了很大反響。6年前,行業上還全面沉浸在黑盒測試的大氛圍中,從未見過精準測試的超前的運行方法和提供的強大智能的功能,由于理念與設計過于超前,早期有一些業內質疑的聲音。但由于產品獨到的優秀特點和巨大的潛在價值,諸多伯樂開始試用,給了產品在實際場景中不斷優化、強化的寶貴機會。經過不同領域、不同客戶的各種高復雜度大型系統的百般錘煉、驗證后,自2016年開始,精準測試開始贏得全行業的重視和響應。
優秀的商用落地性是精準測試技術流行的一個重要因素。由于精準測試把準了黑盒測試無法解決的難題和固有瓶頸,踏準了測試技術發展大的進程,并從設計一開始就特意注重了商業場景下使用要求復雜性,因此它從誕生之日起就不僅僅是一套理論,而是有著非常強的實用性基因和可擴展架構,多場景應用成果卓然。
精準測試最底層的核心技術:“一種基于用例與源碼雙向追溯的測試裝置及方法”,類似在重建量子糾纏的場景和數據。它成功的將功能用例和對應的代碼二者之間的追溯路線,實現了精準無誤的可視化。這徹底解決了在黑盒的狀態下,軟件工程師們無法獲知程序內部運行軌跡的難題。自此開始,計算機處理海量測試數據的強大分析能力開始展現。
我們知道,所有的黑盒測試都是人工進行的,它依賴的是人的算力,而軟件正確性驗證的工作量,主要是組合路徑膨脹的問題,人的算力是遠遠跟不上的。那么精準測試如何從測試的角度對業務進行深度的測試輔助分析呢?我們用量子糾纏的形象類比來說明這個問題。量子糾纏理論我們可以簡單理解為兩個處在糾纏態的粒子一旦分開,不論分開多遠,如果對其中一個粒子作用,另一個粒子會立即發生變化,且是瞬時變化。“一個粒子”會與“另一個粒子”產生相互作用,兩個表面互相不關聯的粒子,互相作用互相影響,他們對外是一個整體,無法單獨描述“單個粒子”的性質,只能描述這“兩個粒子”的整體性質,這就叫做“量子糾纏”。類比到軟件測試上,我們的被測試軟件中常見的軟件界面和功能輸入輸出以及渲染它的復雜代碼,他們之間就和兩個糾纏在一起的粒子一樣,具備強關聯性。一個發生了變化,另一個必定發生變化。
精準測試的另一核心功能是:“回歸測試用例的自動選取”,就是基于用例和代碼的追溯(量子糾纏)關系在進行運算之后全自動得出的。用例和代碼精準的追溯機制,使數據開始可以實施大量的智能測試算法。在軟件測試理論界,大量論文算法的基礎都是默認建立在用例和代碼的關系上進行分析的,但因其追溯機制工業實現難度極大,所以一直停留在學術理論階段。星云測試引領的精準測試方法體系,落地在精確便捷的商用產品和大型解決方案中,讓大量先進的測試分析方法和理論,得以實實在在的驗證。
精準測試首次明確的提出了:如何采集和應用雙向追溯數據,進行測試輔助分析系統的構建。不管是純軟件系統還是運行在設備中的軟件系統,用例與代碼精準的數據可追溯性,都是基礎性的強需求。比如金融轉賬業務、用手機拍照、機器人控制器的動作控制指令等,每個操作都有與之對應的代碼。星云精準測試產品的強大之處在于:所有的分析算法不需要和被測系統的業務功能做特定的適配,因此可以應用于任意軟件系統的測試輔助分析。而傳統的白盒在產品實現上以采集和分析總體覆蓋率為主,沒有能力將覆蓋細化到用例層級,因此傳統的白盒測試囿于覆蓋率的概念中,無法實現更高層次的測試輔助分析需求。
星云測試產品的技術優越性及應用的易用性,使它成為新一代軟件測試技術流的中堅力量。星云精準測試在企業應用場景中,為了方便客戶還設計了完全靜默的“傻瓜”運行模式,客戶基本無需增加額外的學習成本。比如測試工程師打開測試用例的excel表格,當他準備執行某個用例的時候,只需點擊這一項測試用例。隨后通過VBA技術,直接調用星云精準測試的后臺接口,再附加一整套深入應用后臺執行線程的用戶標簽技術,就可以將用例和代碼關聯和分離出來(這里說的分離是指類似于J2EE服務端后臺應用)。在對外提供多用戶并發訪問的情況下,可分離出每個用戶執行的用例所對應的相應代碼。
前面我們提到功能和代碼這兩個量子數據的重建,以前主要出現在研發/開發人員相對比較零散的執行單步調試功能的時候(即單元測試),無法存儲。國外白盒工具因其設計基因的限制,無法支撐超大型、高復雜度的系統級測試需求。在星云精準測試體系中,只要測試工程師執行測試用例,幾乎不需要額外付出,在建立測試用例與數據的對應關系的同時,瞬間即可將海量數據實時采集并存儲起來,用于后續測試大數據的分析和運算上。它的內核設計,使之可以輕松應用在數億行的超大型應用上,實時采集、存儲測試數據,而對原有系統的響應性能不產生干擾。
星云精準測試對軟件測試體系是重大的技術革新,它從以下幾個層面改變并提升了測試:
1 對軟件測試的深度進行了大幅度的拓寬,讓計算機有能力直接對測試用例進行輔助分析,給出更深入的測試決策分析依據。傳統測試主要通過人工業務測試發現缺陷,定位缺陷必須由開發人員進行,二者信息沒有精確的數據交互。精準測試主要基于測試人員標識的用例狀態,以及自動記錄的用例對應的代碼路徑進行頻譜分析。它可以自動計算缺陷產生的代碼位置,在發現缺陷的同時,同步產生缺陷定位的結果數據。精準測試提供的測試用例的聚類分析,是基于測試用例的路徑空間距離進行聚類,聚類的結果可以直接對用例執行正確性進行審核,對用例進行等價類劃分、分析缺陷密集區以及對用例執行分布進行評估等。精準測試提供的回歸用例選取結果,經由海量的計算精準推薦而來,總體算法思路與人工分析的思路是類似的,采用人工智能算法模式把大量的計算完全交由計算機去總結分析,精準、穩定、可靠、高速。這個功能相當于解放了測試和開發團隊大量的人力資源,徹底解決因團隊成員變更而引入的未知風險。
2. 精準測試開辟的測試方法新體系,支撐了黑盒測試快速提升測試效能比的剛需。精準測試對于企業來講,相對于比需要人工編寫、維護龐大自動化腳本的自動化測試,工作量是低很多的。精準測試和自動化測試是并行的技術方向,企業應用可以根據各自團隊的特點來選擇,并沒有絕對的應用時序依賴關系。自動化測試近些年的應用遇到一個廣泛的批評就是:讓測試團隊疲于應付用例的編寫而不是測試用例設計等測試核心技術。精準測試屬于測試分析系統,著眼點和立意相對較高,在測試理論、方法和商業應用落地驗證與成果上,形成較好的整體閉環。它把測試需要關注的核心,引領到一個正確方向上來。
3. 精準測試在技術特性上解決了測試結果可信性的問題。在精準測試之前,我們所見到的所有測試數據都是易偽造、易篡改的。例如我們通常使用的測試管理系統,一個用例是否被有效執行,絕大部分是在測試管理系統中被人工錄入的。精準測試是在用例動態執行過程中,由計算機內部算法真實記錄對應的程序運行邏輯,然后形成后面對測試數據進行精確分析的數據源基礎。所以其底層程序運行的數據是沒有辦法也絕對不允許進行偽造和篡改的。精準測試果斷去除了阻礙測試行業發展的重要障礙,讓測試的結果精準化、可量化、可衡量化、可信化。此舉,將大幅減低測試行業本身的管理成本,有效推動測試行業的快速、健康發展。
4. 精準測試大幅提升了開發和測試部門的協作效能。前面提到全景調試器,測試工程師執行完用例,即時產生代碼層級的全景調試數據;測試完成后一旦用例存在缺陷,那么基于這個全景調試圖以及高度可視化的數據路徑追溯,開發人員可以直接對缺陷進行定位,不需要在開發環境下重現缺陷,再單步調試解決問題。實施精準測試之前,開發人員苦于很難有效參與對測試用例進行審核;實施精準測試后,用例的執行結果都映射到了代碼層,開發人員通過代碼的覆蓋視圖很容易就可以協助測試人員補充和確認用例,開發和測試的協作變得非常簡單和直接有效。
不可否認,在精準測試之前,開發和測試存在溝通不暢的問題。通過精準測試在項目中的有效實施我們會發現,精準測試可以幫助開發提供非常有價值的數據:例如代碼和用例的反向追溯可以幫助開發人員修改代碼做參考,精準測試自動計算回歸范圍減輕了開發人員必須協助測試進行分析的工作量,因此,精準測試對開發和測試來講,是一舉兩得、相得益彰的。
5. 星云精準測試發明了多個全新的、適應敏捷迭代開發模型下的覆蓋率計算方法。覆蓋率是白盒測試最基本的技術,但是隨著敏捷迭代的開發模式,即使最高端的白盒測試工具已經幾乎沒有用武之地,原因就在于由于迭代很快,在某個版本上通常只能采集少量的覆蓋率后新版本就發布了。本應在一個版本上分析的覆蓋數據,分布到了數個代碼結構不一樣的程序版本上,因此原有的統計方法和參考意義基本上都失效了。精準測試提供了累計覆蓋率,能夠將多個版本的覆蓋率以最新版本的代碼結構進行投影,在控制流上進行累加。這樣測試團隊無需關注每個版本的覆蓋情況,即可關注一個完整測試周期內所有版本的累積覆蓋率。另外,考慮到敏捷迭代每個版本的測試需求,即:針對特定模塊和功能范圍進行測試(并不是全量測試),精準測試提供了相關覆蓋率的計算方法。它可以自動圈定某個用例和用例集有關的代碼范圍(這些也是基于用例和代碼的關系分析基礎上動態計算的),在運行少量用例或者某個功能模塊的情況下,它可以自動確定相關代碼,把不相關的代碼從覆蓋率的分母中過濾掉。這樣相關覆蓋率在僅僅運行部分少量用例的情況下,依然具有很強的統計和參照意義。
精準測試定義:由中國團隊發起并原創完成測試理念設計和商用產品研發的全新測試技術。旨在測試用例執行過程中,全自動建立任意運行模式的軟件系統的功能點與源代碼之間高度的可視化追溯機制,獲取功能點相關的代碼覆蓋率并進行精準回歸等測試用例深度輔助分析算法的應用。精準測試是測試理論界首次同時使用測試用例及其相關代碼兩個關鍵因子,進行質量綜合考量和分析的創新測試方法體系。
星云精準測試在測試用例執行過程中,可以同步全自動建立任意運行模式的軟件系統功能點與源代碼之間的高度可視化追溯機制,即通過內部算法能夠將缺陷對應的代碼出錯位置直接定位出來;能夠獲取功能點相關的代碼覆蓋率并進行精準回歸等,使測試用例深度輔助分析算法得以強化應用。這是軟件測試首次同時使用測試用例及其相關代碼兩個關鍵因子,進行質量綜合考量和分析的創新測試理論方法體系。這種有效的數據追溯與“量子聯動”的突破性技術特性,大大增強了測試的深度與廣度,打破了測試部門的成長天花板,為測試過程本身的價值挖掘和測試數據資產的增值,提供了必要而充分的條件。
精準測試體系貫穿整個軟件測試生命周期。精準測試主要側重于系統級測試,在單元測試、集成測試、系統測試、驗收測試、回歸測試中,均能賦予測試數據強大的追溯能力。關鍵核心技術有:測試用例和代碼邏輯的雙向追溯,測試示波器、覆蓋率可視化、回歸測試用例的自動選取、缺陷最后執行時序分析、智能缺陷定位、敏捷環境下多版本白盒測試數據的聚合、聚類分析、結合代碼結構與動態數據的測試漏洞檢出等。
精準測試在測試用例執行過程中,為用戶從底層自動建立任意運行模式的軟件系統功能點與源代碼之間的可視化追溯機制,使用戶獲取用例級的代碼覆蓋率等多種高級測試數據。這一突破性的創新智能算法,有力的打破了軟件開發、測試、維護及管理人員等之間的數據孤島狀態,實現了軟件測試過程和結果的高度精準可視化,在軟件高可靠性和高可信度方面,提供了全面而有力的數據支撐。精準測試運行模式是灰盒模式,即:可以在黑盒功能測試的時候,同步完成數據采集和分析計算,讓“點測”團隊也可輕易切入到精準測試模式,無需改變現有測試形式與流程,不增加額外的技術學習與轉換成本。
精準測試適用于任何形態的軟件系統。星云精準測試可應用于各種軟件包括嵌入式系統、分布式系統、web應用系統、單機軟件系統等各類軟件的測試,并且完全不受限于被測試軟件本身的業務需求。
實現從發現缺陷到預防缺陷的轉型。減少因為缺陷而對整個研發運維流程造成的返工成本。使發現缺陷前移,減少因項目后期的嚴重缺陷而導致產品交付延期、成本增高,影響交付質量。
建立跨需求、開發、測試等部門的測試協同平臺。實現業務數據可追溯化和路徑可視化。
優化技術與業務方案。根據不同的質量要求,優先級順序、技術實現手段等,實現智能靈活的技術方案推薦、交付和應變機制。減少無數據支撐造成的內耗。
企業“精準眾測”平臺,支撐千人團隊同時在線。測試數據可以根據管理需要做分析,為企業內的成本管控提供選型參考。實現跨地區,跨部門的業務人員,開發人員和測試人員的測試協同,即使不在同一辦公地點的人員,也可針對測試需求,測試任務,測試用例和測試缺陷等方面進行遠程溝通和實時協同作用,最終完成整個測試過程的實施。
支持敏捷開發與測試模式。關注新功能的增量測試,支持自動化回歸測試,實現高效的IT交付。
精準測試從某些層面來講,賦予了測試用例真正的生命力。測試用例是測試數據的一種,當測試數據實現路線可追溯可視化的時候,一些高級算法的強大能力就可以顯示出來。我們從精準測試的整體架構圖中可以做一具體分析。
第一層:利用先進的前置編譯器,為客戶做源碼靜態結構分析(在客戶的實際環境中,根據客戶的需求進行相關的技術配合);
第二層:將處理好的系統程序放入測試環境運行,測試工程師通過人工或程序自動化的形式,開始執行用例(人工執行用例可以和測試管理平臺或者Excel表格方式進行對接),精準測試的 “軟件示波器”采集運行數據并進行高速智能運算,獲取精確的測試數據;
第三層:根據采集的代碼與對應的測試用例,在星云精準測試平臺中實現用例與源碼的互相追溯;
第四層:通過精準測試的分析平臺,可以對測試數據進行缺陷定位、用例聚類分析、回歸測試用例和最小測試用例集等功能的計算,用戶還可以根據需求,批量生成相應的測試報告,或進行測試數據高級分析。
在總體業務架構圖的左上角區域,我們可以看到“用例魔方”幾個字。大家可能會比較好奇“用例魔方”的涵義,它是精準測試中非常核心的高級回歸功能之一。所謂“魔”是精準測試核心算法所賦予的超能力,所謂“方”實際上是代表測試用例的集合,每個測試用例用一個小方塊標識,所有測試用例的集合用一個大方塊。當我們把精準測試的和用例分析相關的功能畫成架構圖形表示的時候,它自然而然地看起來就像魔方。
精準測試體系中,測試用例對應的代碼邏輯精確而完整的實現了全自動化的追溯和存儲,因此賦予了測試用例深入分析的基礎能力。在精準測試的用例魔方中,目前存在三個面(隨著后續功能的增加,將增加分析的面):即回歸測試用例選取、測試用例聚類分析、測試用例最小化,同時輔之以智能缺陷定位技術。當測試用例與代碼的追溯關系建立的時候,測試魔方的核心功能區即同步構建出來。為數據的多角度分析,提供了豐富的資源素材庫。
軟件示波器是星云精準測試獨有的功能,它如同軟件的質量運行情況“追溯穿行器”一樣,在測試工程師按下啟動鍵的同時,即時開始建立用例與代碼的自動關聯。示波器把采集到的測試數據通過可視化的窗口界面進行實時展示,內容涵蓋采集到的塊、條件和函數信息。藍色波形代表寫入的數值,黃色波形表示讀取的數值,用戶可以清晰的看到被測系統的數據變化。它如同心跳監控儀一樣,如果被測試程序發生了崩潰,軟件示波器就像人的心臟停止跳動一樣,一根橫線拉直向用戶報警。如果正常采集到數據,會有持續的波形展示出來,高效而精準地監控程序細微的運行狀況。示波器精密捕獲每個軟件單元任何微小的運行波動和行為改變,支持多次運行數據的比對。它可以根據需要記錄崩潰前的至少50個塊,使“崩潰重現”變得輕松簡單。
軟件示波器中的測試用例可以從現有的測試管理系統導入進來,先選中用例點擊開始,驅動被測試系統運行后,軟件示波器就會采集到程序內部運行邏輯對應的波形信息。用例執行結束后,點擊停止。這個用例運行階段的數據,通過開始和結束的點擊,邊界就記錄下來了。
面板的正下方可以展示函數的各種調用信息。包括類、函數,參數類型等。清晰的列示出參數列表、類運行情況、內存檢測數據、數據庫攔截等多角度的數據分析追溯情況信息。
示波器觀測的維度較多,用例與代碼的追溯是精準測試的基礎功能,后面的高級算法都在這個基礎上展開。用例和代碼的追溯就像一個全景的調試器,只要功能由測試人員運行,所有的內部代碼執行邏輯瞬間就可以展示出來。通過測試數據的反向追溯分析,開發人員可進行一致性修改,避免修改引入新的缺陷,通過正向追溯結果,開發可對用例的執行進行全面掌握,可用于快速修復缺陷和詳細實現確認。
同時軟件示波器也提供一個輔助的等價類劃分的功能,它將一個用例從開始到結束所執行的路徑信息終值,完整記錄下來。如果兩個用例終值不一樣,就可以確定為不是等價類。對于很多從功能表面很難界定是否等價類的測試用例,軟件示波器可以給出精確結果。
因此軟件示波器的價值與意義在于:
(1)只要測試開始執行,即可以透明方式高速采集功能運行過程中對應程序的運行邏輯。
(2)在系統高速運轉下采集,可保證對原有應用無干擾,超過1500w/s的采集速率。
(3)可采集程序的條件,執行路徑,執行參數,內存使用等動態運行數據。
為了方便客戶在運行項目測試時,一邊對被測系統做實時數據監測,一邊同步觀察到示波器里面數據寫入和讀取的波形,星云做出了實時數據監測的懸浮窗縮略圖,減少了切換帶來的工作量。它不影響原有被測系統的界面,以半透明懸浮的方式展示在被測試應用界面的前面。
精準測試的測試用例和代碼的雙向追溯功能,是精準測試核心技術之一。如同前文的“量子糾纏”,即運行測試用例的同時,精準測試可以通過程序自動的記錄并追溯到這個測試用例相應執行的代碼。如果測試人員關注某一些代碼行,它可以追溯出哪些測試用例在運行過程中運行過這段代碼。通過這個技術特性,測試工程師的每個測試用例都可以進行量化分析和統計,提供了開發人員和測試人員之間精準的數字化交流依據, 增加測試和開發的交流效率。
雙向追溯技術記錄了每個測試用例對應的程序內部的執行細節,細致到每個條件、分支、語句塊的執行情況。開發人員亦可通過雙向追溯的結果去理解程序邏輯,進行軟件維護以及進行可一致性的修改。
1) 將測試用例和代碼執行信息自動關聯,可追溯到函數級別及代碼塊級別;
2) 通過正向追溯可直接把BUG定位到故障和缺陷邏輯相應的代碼,并提供最后運行的時序數據;
3) 通過正向追溯自動記錄產生功能對應的詳細設計實現,輔助軟件解耦和架構分析。
1) 將代碼執行、函數、代碼塊級別和測試用例執行信息自動關聯;
2) 通過反向追溯可直接觀察代碼變動所影響的測試范圍;
3) 協助開發,進行代碼修改后影響功能的范圍評估;
4) 協助測試人員對代碼修改部分所影響的測試用例進行評估。
精準測試通過正向追溯把測試用例運行的代碼執行進行了全景繪制,在全景圖中,測試人員可以有效的觀察到函數之間的整體的調用與走向,觀察出被測模塊與上層之間的調用關系。
精準測試的核心組件與功能:軟件測試示波器、用例和代碼的雙向追溯、智能回歸測試用例選取、覆蓋率分析、缺陷定位、測試用例聚類分析、測試用例自動生成系統等,完整的構成了精準測試技術體系。
精準測試系統本質是一套強大的計算機開發與測試系統,實現了數據的可視化聯動,以及開發輔助分析。它的關鍵技術賦予了測試用例和代碼強大的相互追溯能力,隨后衍生實現了很多高級測試功能與算法。精準測試系統將用例深入到代碼層分析后,可以大幅改進人工測試所產生的各種問題。
接下來將從風險控制、工作協同、敏捷迭代方面詳細解析精準測試的核心功能和實際收益。
星云精準測試提供7種測試覆蓋率:分別為:SC0語句塊覆蓋率、True覆蓋率、Both覆蓋率、CDC覆蓋率、Branch覆蓋率、MC/DC覆蓋率。
用戶首先選擇分析覆蓋率的維度,例如選擇了“SCO語句塊”維度,那么系統就會將被測試程序的所有語句塊結構展示出來,并且用顏色表達覆蓋情況,綠色代表覆蓋,深藍色代表未覆蓋。同時告知覆蓋率的分子和分母都是哪些,非常清晰的展示覆蓋率可視化結果。精準測試在前期已經對程序的靜態結構進行了深度的分析,因此用戶在覆蓋率可視化界面,根據選擇的維度在代碼層面上把需要展示的結構單元都結構化的展示出來。例如圖5.1.1-1 七種測試覆蓋率中的第二張圖
MC/DC覆蓋率可視化
MC/DC覆蓋率,即修正判定條件覆蓋,該覆蓋率數據 MC/DC是DO-178B/C Level A認證標準中規定的、歐美民用航空器強制要求遵守的覆蓋率標準。MC/DC覆蓋率可以基本保證被測試軟件無缺陷,對于大型系統的可靠性要求很高的一些關鍵模塊,建議采用這個覆蓋率標準。MC/DC覆蓋簡單來說,就是追蹤復合條件中每個子條件的真假翻轉,在其子條件不變前提下,是否都獨立的影響了整個條件的真假值。星云精準測試系統會自動的把各種組合都列好,通過顏色表達哪些子條件已經滿足,以及對應滿足情況時其他獨立子條件的組織情況。
條件組合可視化展示
精準測試對于多條件組合的代碼,采用了最新研發的條件組合可視化視圖進行展示。視圖中,用戶可以觀察到每個條件的真假運行情況,以及條件與條件的組合運行情況。對于測試人員來說,當全部條件組合之間的T與F都完全滿足時,即可實現代碼全路徑覆蓋。
敏捷模式下,因迭代頻繁其存量的代碼量很大,通常更關注增量覆蓋度量。精準測試可以在程序新版本發布后,自動計算新增(變更)代碼的范圍,給出新增代碼的覆蓋率。覆蓋率的分母中的函數都是變更和新增的函數。與此同時,基于反向追溯的功能,我們還可以給出新增代碼對應的測試用例名稱。當某個新增函數沒有達到很高覆蓋率的時候,我們通過反向追溯的用例,可以判定因為哪些功能范圍的用例設計不充分,導致了新增代碼覆蓋率不高。
在做精準測試或統計覆蓋率時,往往測試管理者、開發人員、測試人員為了保證測試覆蓋率的正確性,會對某個方法、類進行查看或在統計中把代碼中一些廢棄的函數、某些特殊情況下無法測試到的代碼進行移除(至少是做相應備注),從而讓測試代碼覆蓋統計率達到更加準確。星云精準測試在設計中,通過多種搜索、方法、類、模塊過濾等功能,把需要統計的范圍進行縮小、不需要統計的去除。根據用戶的選擇,進行覆蓋率再統計展示。
精準測試打通開發與測試的協同工作通道,使得開發與測試能夠更好的溝通,提高工作效率。傳統模式下,開發人員關注的是代碼,測試人員關注的是業務角度的測試用例,彼此的直接關聯相對較弱。開發和測試的溝通,基本就是采用自然語言、Excel表格、內部系統等,存在交流信息不夠嚴謹的問題。例如測試工程師發現一個缺陷,提交到缺陷系統,開發需要花費大量時間再行理解、準備數據、復現、調試,直到最后的修正。因為業務上的功能執行和代碼并沒有明確的關系,通常測試工程師執行完功能測試用例后,讓開發人員幫助評審也非常困難。
若測試工程師提供的測試結果都是比較模糊的功能邏輯描述,重現缺陷需要花費大量的時間。開發人員修改代碼后,對于變更描述,以及變更引起的關聯問題描述通常也都很模糊,導致測試又出現新問題。
企業采用精準測試技術后,通過執行用例可以直接追溯到對應執行的程序代碼塊,這樣的數據化溝通,將使開發人員和測試人員之間的協同工作效率大大提高。
星云精準測試通過插裝得到的項目靜態結構信息,結合測試后采集到的測試數據,能夠精準記錄測試的過程,通過這些靜態數據和動態數據視圖,便于開發人員基于圖形化結果進行快速分析。
對于不懂開發的測試工程師,通過程序控制流程圖的圖形以及通過顏色表示的覆蓋信息,可以直接看到程序內部漏測的邏輯是什么,也可以通過這些結果直接與開發溝通,進行輔助用例和邏輯的補充。
因為內部邏輯的強追溯性并且能夠圖形化的打開,可以有力保證黑盒測試后期開發快速理解并解決瓶頸問題,保持全程測試的高效執行。
精準測試在程序靜態分析的基礎上,可以對程序繪制可視化的圖形,同時將動態執行的覆蓋信息染色到這些視圖上。對于不懂開發的測試人員也可以很清晰的看到程序的哪些結構節點沒有被覆蓋到。例如圖形中藍色的節點是未覆蓋的節點,綠色的是覆蓋的,因為控制流程圖本身有分支,嵌套等各種關系,測試工程師可以很容易判斷出覆蓋的范圍大致是哪些。而如果有開發人員介入,可以更清晰地分析測試工程師執行的用例所遺漏的程序邏輯。
星云測試可自動捕獲缺陷或崩潰發生時,程序最后執行的詳細路徑信息。缺陷發生后,開發人員能夠直接看到缺陷出現時,代碼執行的時序和路徑信息,直接定位缺陷并排查問題,節省大量的溝通、復現和調試的時間成本。
當功能執行發現缺陷后,在軟件示波器上可以立即按下“停止”鍵,那么最后執行的代碼序列就可以被抓取到,開發人員可快速定位缺陷最后執行的50個代碼塊、條件、判斷的各種執行信息。
在下面視圖中,我們可以根據標號(從1到50),看到代碼最后的運行時序,在圖形里面的每一個綠色小方塊為一個代碼語句塊或者一個條件、判定,在一個大方框下的綠色方塊代表一個函數內部的代碼塊。經過布局算法后產生下述圖形。
通常測試工程師只是負責發現缺陷,缺陷的具體定位只能交由開發人員來執行。精準測試打破了測試部門的天花板,即通過內部算法能夠將缺陷對應的代碼出錯位置直接定位出來。這相當于增加了測試深度,同時體現了測試數據和測試過程本身的價值。
對于測試工程師來說,只要發現用例相似而程序在輸出上有對錯區分,就可以使用精準測試的智能缺陷定位功能。精準測試平臺通過測試人員在功能測試階段標記的用例執行狀態,以及軟件示波器自動記錄的程序運行頻譜,自動分析缺陷的出現的代碼塊。因精準測試平臺可以獲取每個用例執行時詳細的路徑追溯信息,測試工程師只要告知系統用例的狀態,例如是否通過是否正確,那么精準測試內部算法就會去根據正確和失敗的路徑差異進行計算,給出缺陷出現具體位置的可疑度排名。
這個功能可以大大增強測試在整個開發流程的參與度和測試數據價值,也讓開發人員減少了自己去模擬場景的時間,快速提高開發和測試的協同和配合的效率。
1) 對于同類測試用例,經過多組測試可給出非常有效的結果。
2) 列出的可疑代碼,可直接通過測試過程給出,提升測試的價值及產出。
選擇可疑度算法、得到可疑度高的代碼塊,關聯源碼后,可根據代碼可視化查看具體位置。可疑度計算有一個公式,并不復雜,通常每個代碼塊有2個變量,四種狀態值。分別是:是否執行、是否通過,這樣每代碼塊都有一個可疑度值。
星云精準測試提供3種常用計算公式,供大家參考。
aep表示通過且覆蓋到該塊的測試用例的個數、anp表示通過且未覆蓋到該塊的測試用例的個數、aef表示未通過且覆蓋到該塊的測試用例的個數、anf表示未通過且覆蓋到該塊的測試用例的個數。結果表示該塊的可疑度。
在敏捷環境下由于版本迭代速度很快,每個不用的代碼版本上通常只能采集到少量的覆蓋率。一旦發布新版本,就意味著代碼發生了變化,覆蓋率數據就需要重新采集,但是每個版本采集的少量覆蓋率,從分析層面上并沒有多大的意義。
針對以上問題,精準測試給出了“ 累計覆蓋率”的計算方法。它將一系列迭代版本的覆蓋率,在最新的程序版本上進行投影累加。用戶可將一個階段各個版本的覆蓋率累加起來進行分析。算法的思路是以最新版本代碼為基礎,以某個函數為單位,一直往前累加。直到這個函數在之前的某個版本代碼發生了變化,就停止累加。例如下圖函數A的4個版本的覆蓋都可以累加,是因為這個函數在4個版本中都沒有發生變化。而紅色的函數B只累加了3個版本,是因為從版本v2.0-2后這個函數發生了代碼變更。之前的代碼覆蓋就不能累加了。
星云精準測試-敏捷環境下多版本白盒測試數據的聚合如圖所示。
這種累加是在確保函數代碼沒有發生變化的情況下,在控制流上對相應節點的覆蓋率進行累加。例如下圖中3個版本,覆蓋率不同的分支和控制流,數據累加后可以看到所有分支都覆蓋到了。
圖5.3.1-2敏捷環境下多版本白盒測試數據的合并分析
星云精準測試提供的聚類分析功能,根據測試用例的函數執行剖面的向量化信息,對測試用例進行精確的空間距離計算后執行聚類分析。聚類結果可以分析被錯誤執行的用例,例如不相關的功能點聚類到一起,則說明其測試執行可能存在錯誤。
精準測試提供的聚類分析功能,也可以輔助找到缺陷分布的密集區域。大部分情況下,缺陷分布會呈現2/8的聚集特性。在時間緊張的情況下,我們可以通過聚類結果,每個類選取中心點以及周邊幾個用例。如果沒有問題,就可以去測試其他聚類,如果發現一個類缺陷概率高,那么這個類就需要進行重點測試。通過聚類結果可以分析測試用例的分布密度等信息,輔助進行測試決策。
圖5.3.2-1 測試密度
下圖中測試用例分類都有一個名字,這個名字是聚類結果中每個類中心點的測試用例名字,它基本標定了這個類的功能點范圍。
聚類的大小代表了某個功能范圍測試是否足夠充分。例如一些應該重點測試的功能,聚類結果中的用例數應該很多;一些小眾的功能,聚類中用例數應該比較少。一個類中用例數越多,這個類圓圈比例越大,反之則越小。在聚類的基礎上,我們也可以對一個類中的等價類用例進行分析。是等價類的用例,會分成一組專門展示。
在敏捷迭代過程中,通常沒有充分的時間將所有函數的覆蓋率都達到一個很高的層級(Level)。精準測試結合代碼結構和動態數據綜合分析,通過計算直接篩選出潛在的高危測試漏洞,可以在短期內確定高危漏測模塊并針對性的解決,幫助用戶快速找到嚴重缺陷。
1) 當測試時間不充分的時候,執行完黑盒測試以后,先看測試漏洞列表,里面顯示了通過靜態信息和動態信息計算,得到的最高風險的漏測點模塊。
2) 我們可以通過復雜度進行計算,因為復雜度高的模塊一般來講,它是相對重要的模塊并且邏輯復雜,如果動態覆蓋比較低,我們會優先篩選出來進行排序。
3) 處于調用和被調用中間的模塊,因為屬于中間關鍵模塊,我們也會計算它的扇入扇出,和動態覆蓋率信息。如果它的比率很高,將被認為是高風險模塊,被篩選出來進行排序。回歸時,應優先測試風險指數高的高危模塊,補充他們的覆蓋率。
精準測試也可以對用例集進行優化。比如用戶有大量用例的情況下,尤其是自動化用例集含有長期維護的冗余用例。精準測試平臺可以對很多重復用例的邏輯進行篩選和過濾,優化出滿足當前總體覆蓋的最小用例集。
在時間有限,經費有限,資源有限的情況下,我們既要考慮測試是否充分,也要顧及時間、人員、設備配置等限制條件。精準測試可以支持企業不同剖面的軟件質量分析需求。
1) 測試資源分析:多少人,多長時間、整體測試有效率及執行率
2) 測試結果分析:描述需求的測試結果,系統實現了哪些功能點,哪些還沒有實現
3) 缺陷情況分析:缺陷復現、缺陷處理、缺陷數量、屬性、狀態分布,缺陷預防、缺陷收斂度
4) 度量指標分析:測試覆蓋率、測試執行率、測試執行通過率、測試缺陷解決率
5) 效率指標分析:進度偏離度、缺陷發現率、用例執行效率和質量等
6) 高風險識別與排序:注明當前項目中面臨的最嚴重、最優先的問題
7) 整體評估:哪些功能已經實現,哪些功能還未實現,還遺留哪些問題,遺留缺陷分析
8) 優化建議:測試過程優化,從測試組的角度為測試工作提出建議
對前期測試執行階段發現的問題、缺陷集中的功能,業務比較重要且使用頻繁的功能進行再次測試,確保系統上線后,已被修復的問題不會重新出現,重要的、高優先級的業務不會發生錯誤。
軟件測試的主要工作,是把軟件需求映射為軟件測試。測試用例是軟件測試全過程的核心,也是測試執行環節的基本依據。精準測試充分滿足軟件測試執行過程中的各種指標:
1) 測試用例執行進度
2) 測試用例通過率
3) 測試用例顆粒度分析
4) 識別無用的測試用例
5) 識別冗余的測試用例
6) 從側面提供增添新測試用例的依據
7) 從側面提供調整測試用例庫結構的依據
星云精準測試提供多個剖面的高可靠性測試質量進度追蹤報表。當客戶端錄入測試用例并采集數據后,用戶內網web端將產生實時、詳實的測試數據分析報表。
該報表與普通的測試管理系統不同:普通的測試管理系統人為錄入數據的情況比較多,使得數據狀態的真實性沒辦法確切保證。精準測試提供的報表,底層數據來自于執行測試用例時候代碼數據的采集,通過專用底層接口上傳,完全無法進行數據調整或者篡改和偽造。
1) 通過瀏覽器登錄測試系統,選擇需要跟蹤的項目,就可以實時對整個測試的質量、進度、人員進行精準的分析和管理。
2) 企業內網云端管理系統展示的數據基于精準測試數據的分析,所有數據原生精確,支持移動測試+本地測試。
3) 測試團隊、開發團隊、甲方負責人等多種角色都可以登錄系統,從各個層面對測試、軟件質量進行分析。
精準測試報告可直觀分析每天的測試效率,通過代碼模塊和復雜度關系圖,看到函數群落測試情況分布及趨勢,可直觀精準識別系統測試所處階段。
每日增長覆蓋率報表:管理者可以清晰的看到整個團隊的效率趨勢變化,比如剛開始測試的時候覆蓋率增長快,到了黑盒測試瓶頸點上升就很慢了。這時候精準測試技術就開始發力,可以清晰地看到它在彌補效率損失方面的優勢。
覆蓋率和復雜度報表:可以很直觀地看到測試的質量深度,例如在測試不充分的時候,復雜度高的模塊通常覆蓋率都比較低,統計點分布自一個左上角的區域(表示高復雜度+低覆蓋率),而當測試深入進行,這些點就會向右側移動。管理者可以非常直觀的看到系統測試的充分程度和上線的質量把握。
測試用例排行分析報表:可直觀展示參與測試工程師所執行的用例數、通過率和缺陷率,真實記錄并分析每個測試用例的實效性。星云精準測試-測試工程師實效精準分析系統,將參與的測試工程師所執行的用例從邏輯覆蓋映射到代碼覆蓋,真實記錄并分析每個測試參與者的工作實效。以邏輯覆蓋為基準的而不是用例數量為考核標準。
通過用戶的內網精準測試web報表,可以追蹤每個測試用例執行的覆蓋率和執行的函數路徑信息,那些沒有真正執行的用例,將無法偽造其對應的覆蓋率信息。
追蹤每個用例執行的函數信息以及具體的代碼覆蓋信息,在web端展示代碼覆蓋率視圖,更具體的分析用例的執行情況。
1、 完成數字化轉型。提高軟件交付質效、實現快速迭代持續交付,有效呈現測試價值。
2、 培養業務和測試的“兩棲專家”。從不同角度提供有價值的數據依據,使測試團隊既能熟悉業務知識、業務場景,又具備較強的業務分析評估和整合創新的能力。
3、 數據化交付。實現企業內部云平臺建設、明確各工程活動環節的交付物和交付標準,并將質量驗證標準、驗證手段和監控工具嵌入流水線,保證各環節的有效性,對質量趨勢進行提示和預警,及早發現缺陷,實現質量可視、過程可追溯、可審計。
4、 建立測試數據資源池,整合測試資產。利用大數據、人工智能等技術建立質量智能分析模型等,為“產品質量智能分析平臺”提供有效數據。
5、 減少因人員變動而產生的成本影響。一般外包人員的流失率普遍為20-40%左右,重新招聘和培養,將對項目進度及成本進度,造成很大影響。
微服務是DevOps場景下熱門的開發框架,在大型項目中被廣泛采用。它把一個大型的單個應用程序和服務拆分為數十個的支持微服務,獨立部署、互相隔離,通過擴展組件來處理功能瓶頸問題,比傳統的應用程序更能有效利用計算資源。微服務之間無需關心對方的模型,它通過事先約定好的接口進行數據流轉,使業務可以高效響應市場變化。
微服務一個明顯的表象就是隨著服務的增多,傳統測試模式受到很大制約,無法有效進行下去,威脅到整體系統質量。所有 J2EE 代碼層白盒采集工具都無法區分覆蓋和具體功能的對應關系,只能以后臺模式“籠統”的采集一個階段的總的覆蓋,無法滿足對于DevOps下對于故障定位、深度測試分析以及敏捷發布算法的要求。星云測試的分布式微服務精準測試解決方案,是目前市場上唯一可達到在復雜分布式系統中,跨多個服務器進行代碼白盒級分析、實現請求分布式追蹤的測試平臺。
精準測試通過分布式追蹤系統支持分布式系統的用例和代碼的關聯,首先在瀏覽器的請求端注入一個用戶標簽,通常這個用戶標簽和精準測試客戶端的登錄用戶是一致的。這個用戶標簽會一直帶到實際請求的執行線程里面,然后這個執行線程里面配合插裝的代碼,發出來的信息就知道是哪個用戶對應的哪個用例執行的代碼了。同時分布式系統的話,如果有后續節點的調用這個標簽會繼續根據支持的協議附加用戶標簽信息往后傳遞。
我們目前支持的協議包括httpclient、dubbo、spring cloud、web service以及消息隊列也支持線程池內部不同線程的傳遞等等,對于我們附加的標簽,可以在這些協議上繼續往后傳遞,通常是在協議上附加我們的用戶標簽信息來實現。對于用戶自定義的協議或者小眾的開發協議,用戶可以基于我們的接口自定義。
精準測試最核心的技術關鍵就是:用例和相關執行代碼之間有很強的對應和追溯關系。這個強追溯關系的建立,通過精準測試專屬客戶端上的“軟件示波器“,用人工點擊開始和結束按鈕來標記測試用例的執行,進而確定對應代碼執行路徑的邊界。
目前很多公司內部都有開發測試管理系統或者類似于JIRA這樣的通用產品來管理和執行用例,如果同步使用精準測試客戶端,則有指令重復之嫌。因此,星云精準測試做了具有深遠意義的客戶化改進-“靜默式”精準測試。
大部分的測試管理系統,測試過程中會點擊開始和結束按鈕用于界定測試用例的邊界,這和精準測試中的示波器操作是一致的。我們做了一個接口,使測試人員在“用例管理系統”中選擇某個用例執行到切換到另外一個用例的過程,和精準測試示波器進行無感對接,測試工程師不用登錄到精準測試客戶端,即可實現“靜默式”精準測試的數據采集。“測試管理系統”的用例會通過這個內部接口,自動的和精準測試平臺建立連接。
圖 7.2中是一個基于excel用例管理的對接的方案,測試工程師只要在用例的表格上用鼠標點一下當前要執行的用例條目,通過VBA接口就可以通知示波器當前某個用例即將開始測試,使用起來非常簡單。
精準測試也可以為JIRA這種企業級的管理平臺提供插件進行對接。如果是用戶自己開發的測試管理系統,也可以根據精準測試提供的接口文檔做相應的平滑對接。
現代的專業軟件測試中心,隨著項目迭代,通常針對每個系統構建了大量的自動化測試用例集,而啟動一次全量的自動化測試以CI級觸發,使之大比率通過,非常困難。測試工程師們常常需要投入很高的成本,把大量精力花在自動化用例失敗排查上面,然而有效發現BUG的概率依然很低。在反復排查無果、心神俱疲的情況下,很多單位幾乎對自動化產生絕望之心,視之為雞肋,用之無用,棄之可惜,讓測試中心極為頭疼。
如何讓自動化用例發揮它們應有的效用,讓QA工作不那么沉重呢?星云測試針對這一難題,進行了精準測試與自動化測試無縫對接的技術方案研發。經過大量企業實施與驗證,精準測試的數據流最終可以“無感”對接到自動化測試中,極大擴展了自動化測試的優勢,徹底改進了自動化測試變更管理難的短板。
這一技術方案的推出,就像給自動化測試裝上“精準測試”的眼睛和翅膀,瞬間就具備了多種飛躍性功能。比如:
1) 自動化測試用例與源碼自動建立關聯
2) 同步進行智能回歸用例選取
3) 有效縮小自動化測試執行范圍
4) 即時分析需要進行維護的測試用例集合
5) 全自動追蹤每個測試用例的執行代碼路徑
6) 當自動化執行結束后可輔助直接定位自動化用例的代碼出錯點
7) 對自動化測試用例集進行分析,例如聚類分析,以及最小用例集合分析等
8) 對測試用例集的優化給出指導意見
9) 給出測試用例集運行的總體覆蓋率信息
10) 協助有效的對用例集進行增補
11) 增量代碼覆蓋率分析等等。
精準測試系統提供標準接口,可以很容易的與企業原有的自動化平臺進行對接,當執行完自動化測試后,可以得到每個自動化用例對應的代碼邏輯信息、相應功能模塊等,為自動化測試提供有效的價值疊加與放大。
精準測試提供HTTP請求接口給自動化或測試管理平臺,通過HTTP請求將測試用例的創建、運行、結束與查看測試用例的覆蓋情況命令,發給星云精準測試自動化平臺的相應接口,進行測試用例的創建錄入與停止功能,并通過該接口進行覆蓋率信息返回。
1) 精準測試將自動化測試腳本與“業務全景圖”和測試用例庫建立關聯。
2) 在測試設計、測試執行、管理和質量監控等環節實現了“手自一體”的一體化管理理念。
3) 構建測試數據庫,實現測試數據統籌分配和復用。
4) 組建“精準自動化測試執行云平臺”,實現24小時測試目標。
對于精準測試的插樁代碼是直接靜態植入了發布包,只能供測試使用,不能用戶生產發布。通常精準測試與CI對接,每發布一個版本會產生兩個分支一個是發布生產的分支,一個是發布給測試環境的分支,他們的代碼基線是一致的,就是一個通過精準測試做了插樁,另一個沒有做插樁,他們的功能和版本都是一致的。插樁后的代碼運行后關聯代碼也是關聯同樣基線版本的代碼就可以了。
星云測試采集的測試數據和插裝后分析到的靜態結構信息,將作為大型企業系統大數據分析的基礎數據。
星云精準測試-測試數據價值
(1)代碼級的程序靜態信息以及測試用例對應的海量動態測試的數據,這些多維度數據將作為大型企業系統大數據分析的基礎數據。
(2)對本企業大量軟件質量數據進行挖掘和分析,找到相關質量技術標準衡量的合理區間,避免常規錯誤。
(3)通過數據分析確定優異的開發方法和技術構件。
(4)通過質量大數據的分析結果,選擇更加合理的技術方法,在設計階段避免已知的缺陷。
在大型軟件的迭代過程中,測試最大的壓力來自于回歸測試,因為對于大型系統很難說得清楚新的變更可能會意外的影響那些其它功能。國際上有相關統計:每修改6行代碼就會引入一個未知的缺陷。而要對回歸范圍進行分析通常必須是對系統很了解的架構師、高級開發人員或高級業務人員才能夠分析,因為程序的功能和它的實現就像是一張蜘蛛網錯綜復雜,即使高級人員也很難分析的非常清楚。精準測試在記錄了所有用例對應的代碼邏輯的基礎上,在新版本發布的時候通過分析用例執行的代碼路徑的變更范圍,就可以自動計算出來回歸用例的范圍。它的算法邏輯和人的分析非常相似,但可以進一步提供非常高效率、海量數據的穩定分析輸出,相當于把人的腦力算力轉換成了計算機算力。
(1)適應快速的版本迭代周期,適應龐大的工程項目。
(1)(2)在回歸測試時,自動篩選測試用例,大大減少了回歸測試的時間以及風險。
(1)(3)降低了傳統人工回歸分析產生的測試盲點。
(1)(4)精確計算回歸用例的權重,測試人員在時間有限的情況下可以重點回歸受改動影響最大的用例。
回歸性能,通常一般回歸都是基于人對于系統的判斷來做的。由人來進行回歸用例集的判斷,隨著時間的延續,記憶將不可逆轉地發生損耗并丟失,加之原團隊人員的不斷變更,老的系統維護越來越難,修改引入新的缺陷要越來越難風險。
通過星云精準測試企業離線平臺,內置程序將持續、高效地全自動記錄本企業自有的各系統測試用例和代碼的關系數據,不用人工干預和記錄。使用一段時間后,企業會得到越來越精確的數據,若加以有效利用,將發揮相關元數據及大數據的爆發性的價值。
測試資產:即與測試相關的技術、文檔、數據、腳本、管理、成本、進度、可用資源等。測試資產是測試工作過程中的產出,是項目的工作成果。建立測試資產庫是測試資產復用的重要前提條件。
1、 經過實際驗證,高效甄別出可復用的大量的測試用例和測試數據,可大幅縮短評審時間。新項目在測試過程中,如果需要測試用例或者測試數據,可直接在測試資產庫獲取,不必再花費大量的時間和人力重新編寫。
2、 測試資產庫適用于維護型的項目。功能點經過修改后,通過測試資產的復用,只需要更新經過變動的功能點測試用例,其它的未經更改的功能點測試用例就可以直接使用。通過這樣的測試資產的復用,可以大幅提高測試效率和測試質量,節約測試成本。
3、 測試資產庫的建立有助于保護測試項目的勞動成果。通過統一的途徑收集和整理測試資產,既便于回溯本次項目的測試過程,又可以為其它項目提供參考和幫助,是測試資產復用的前提和保障。測試資產庫在任何時候都處于最新和有效狀態。
4、 在測試可追溯的基礎上,降低了跨業務、跨部門業務分析的復雜程度。可視化的動態業務全景圖,為決策者、業務部門、技術人員的測試設計、執行和質量評估提供核心依據。
5、 建立有效測試質量指標評價體系,實現智能化測試方案設計。積累自動分析用例集覆蓋率、冗余度、回歸權重等有效數據資產,實現“以最優用例,覆蓋最全面功能”的目標。
6、 通過對歷史數據的挖掘與分析,歸納出影響測試資源分配的關鍵因素。通過對業務系統歷史測試數據的挖掘和分析,歸納出被測系統的缺陷特征和識別趨勢以及與之相關的關鍵因素,未來作為測試準入、準出判斷的參考依據,為識別待測系統的投產風險提供依據,為實測系統上線決策和風險應對提供支持。
7、 具備成為“測試中臺”的核心組件的條件。星云測試旗下產品具有高度自研創新能力,星云可以根據用戶的創新需求,做更為具體的行業整體解決方案。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。