精準(zhǔn)測(cè)試白皮書2020版

第一章 精準(zhǔn)測(cè)試誕生的背景

附精準(zhǔn)測(cè)講解視頻和白皮書下載


20年前(2000年),上網(wǎng)是一件很酷的事,叫做“網(wǎng)上沖浪”,主要是幾個(gè)門戶網(wǎng)站占據(jù)絕大多數(shù)注意力;20年后(2020年),我們已經(jīng)全方位“浸泡”在軟件的海洋里禁偎,很多大型軟件系統(tǒng)已經(jīng)超過億行半沽,架構(gòu)模型越來越復(fù)雜惜互。未來的20年(2020-2040年),隨著各種智能應(yīng)用的層出不窮率挣,軟件系統(tǒng)內(nèi)部邏輯會(huì)不可逆轉(zhuǎn)的越來越復(fù)雜刻伊,而外部操作會(huì)越來越“傻瓜”。用戶一個(gè)眼神或者一動(dòng)腦椒功,就能夠切換出不同的功能需求捶箱。同時(shí)中國(guó)的軟件產(chǎn)品化進(jìn)程,近些年來正在蓬勃的進(jìn)行蛾茉,大量的公司開始研發(fā)自己的產(chǎn)品讼呢。伴隨著關(guān)鍵核心軟件的國(guó)產(chǎn)替代撩鹿,使得原本應(yīng)用級(jí)難度的開發(fā)正在向高復(fù)雜度和高質(zhì)量的產(chǎn)品型研發(fā)轉(zhuǎn)型谦炬。這個(gè)轉(zhuǎn)型的過程,注定將產(chǎn)生對(duì)于高端測(cè)試工具的巨大需求节沦。

軟件缺陷發(fā)現(xiàn)得越晚键思,其處理費(fèi)用即呈幾何性激增,而不是線性增長(zhǎng)甫贯。如何從龐大復(fù)雜的系統(tǒng)中迅速及時(shí)地找到故障所在吼鳞,一直是行業(yè)的一大難點(diǎn)。無法對(duì)大型軟件進(jìn)行有效的質(zhì)量把控叫搁,就無法真正構(gòu)建與維護(hù)大型軟件赔桌。目前國(guó)內(nèi)軟件測(cè)試基本處于兩種狀態(tài):一是絕大多數(shù)企業(yè)采用功能(黑盒)測(cè)試,二是小部分對(duì)軟件產(chǎn)品有高可靠性要求的軟件渴逻,企業(yè)會(huì)使用代碼級(jí)的白盒測(cè)試工具疾党。但這兩種傳統(tǒng)測(cè)試辦法在目前的軟件日趨智能化復(fù)雜化下,弊端越來越明顯惨奕。

功能(黑盒)測(cè)試技術(shù)雪位,****使墨菲定律在所難免。由于無法獲知程序內(nèi)部邏輯結(jié)構(gòu)梨撞,這種測(cè)試辦法對(duì)軟件可靠性要求不高的應(yīng)用來講問題不是很大雹洗,但是對(duì)于大型金融機(jī)構(gòu)、智能工業(yè)卧波、航天軍工等關(guān)鍵系統(tǒng)时肿,就意味著時(shí)刻攜帶隱形的巨大風(fēng)險(xiǎn)。為此港粱,功能測(cè)試后期需要極高的人力投入才能完成復(fù)雜邏輯的用例分析和設(shè)計(jì)螃成。然而對(duì)于黑盒測(cè)試來說,程序越大,殺蟲劑效應(yīng)越明顯锈颗。而行業(yè)內(nèi)當(dāng)作銀彈的自動(dòng)化測(cè)試顷霹,當(dāng)自動(dòng)化程序本身規(guī)模擴(kuò)大以后,它的維護(hù)本身就存在了很嚴(yán)重的問題击吱。低效的黑盒測(cè)試狀態(tài)淋淀,最終將影響和制約未來整體軟件發(fā)展。

代碼級(jí)(白盒)測(cè)試工具一般重點(diǎn)應(yīng)用在研發(fā)階段的單元測(cè)試上覆醇,滿足了客戶的部分高可靠性需求朵纷,但由于其價(jià)格高昂、技術(shù)老化永脓,僅適合于小規(guī)模迭代瀑布式開發(fā)的軟件袍辞,無法完成復(fù)雜的系統(tǒng)級(jí)別的測(cè)試以及分布式基于云的測(cè)試,更不適應(yīng)敏捷迭代的開發(fā)模式常摧。另外白盒測(cè)試工具基本都是國(guó)外產(chǎn)品搅吁,通常這些產(chǎn)品無法完成深度的定制化功能實(shí)現(xiàn)以及快速的用戶響應(yīng),代碼安全更是一個(gè)較大的問題落午。

所有先進(jìn)的科技都是具備前瞻性眼光的谎懦。隨著國(guó)內(nèi)軍民各項(xiàng)大型核心軟件系統(tǒng)的上馬,研發(fā)一種面向高復(fù)雜度大型軟件溃斋、自主可控的高性能智能精準(zhǔn)測(cè)試平臺(tái)的必要性界拦,逐漸凸顯。在這個(gè)時(shí)代背景下梗劫,2012年初享甸,星云測(cè)試團(tuán)隊(duì)開始了篳路藍(lán)縷、心無旁騖的研發(fā)征程梳侨。精準(zhǔn)測(cè)試是個(gè)交叉學(xué)科蛉威,里面涉及到編譯器、測(cè)試分析猫妙、圖形技術(shù)瓷翻、高性能通信與存儲(chǔ),軟件的研發(fā)等多項(xiàng)底層技術(shù)割坠。

經(jīng)歷無數(shù)個(gè)不眠之夜對(duì)技術(shù)難點(diǎn)突破的煎熬與最佳解決方案的反復(fù)推敲齐帚,星云精準(zhǔn)測(cè)試產(chǎn)品在諸多方面率先實(shí)現(xiàn)了重大技術(shù)創(chuàng)新,成功突破了白盒測(cè)試使用難度大彼哼、價(jià)格高昂的桎梏对妄,有效消弭了國(guó)外高端測(cè)試產(chǎn)品壟斷的壁壘。星云精準(zhǔn)測(cè)試產(chǎn)品更偏向于軟件測(cè)試業(yè)界的“灰盒測(cè)試”敢朱,即用簡(jiǎn)單的黑盒操作辦法剪菱,可以同時(shí)得到單元級(jí)和系統(tǒng)級(jí)的精準(zhǔn)測(cè)試數(shù)據(jù)摩瞎。

“星云精準(zhǔn)測(cè)試”不負(fù)眾望,在眾多性能上大幅超越國(guó)外進(jìn)口高端白盒測(cè)試工具產(chǎn)品孝常,并在數(shù)據(jù)追溯旗们、覆蓋率可視化、智能回歸构灸、智能缺陷定位上渴、分布式數(shù)據(jù)穿透與追蹤等特性上有突出貢獻(xiàn)。星云精準(zhǔn)測(cè)試喜颁,既繼承了傳統(tǒng)功能測(cè)試前期的高效率運(yùn)行區(qū)間稠氮,又能在后期通過系統(tǒng)的數(shù)據(jù),讓開發(fā)半开、測(cè)試充分協(xié)同隔披,完成全程高效的測(cè)試與數(shù)據(jù)分析。

(1)將測(cè)試團(tuán)隊(duì)的價(jià)值放大寂拆,能夠?qū)㈤_發(fā)與測(cè)試更加緊密的連接起來奢米,互為支撐。

(2)采用精準(zhǔn)漓库、可信的測(cè)試技術(shù)恃慧,測(cè)試管理的難度大幅度降低。

(3)降低企業(yè)對(duì)人員的過度依賴渺蒿,通過系統(tǒng)適應(yīng)人員的變更。

(4)為企業(yè)實(shí)現(xiàn)測(cè)試數(shù)據(jù)資產(chǎn)的有效積累和分析彪薛,打下堅(jiān)實(shí)基礎(chǔ)茂装。

“星云精準(zhǔn)測(cè)試VIP大企業(yè)離線版云平臺(tái)”在整體測(cè)試功能上的優(yōu)異特性,成功獲得了一批重要大型企業(yè)的高度認(rèn)可及產(chǎn)品采購(gòu)善延。

星云測(cè)試的首發(fā)版本為:穿線測(cè)試 ThreadingTest少态,2014年6月6日上線,側(cè)重于系統(tǒng)級(jí)白盒測(cè)試技術(shù)易遣,測(cè)試用例和代碼邏輯的雙向追溯技術(shù)彼妻,測(cè)試示波器技術(shù),覆蓋率可視化技術(shù)豆茫。

2015年8月6日侨歉,“穿線測(cè)試”正式更名為“星云測(cè)試”。在繼承穿線測(cè)試整體技術(shù)上揩魂,星云精準(zhǔn)測(cè)試增強(qiáng)了回歸測(cè)試用例的自動(dòng)選取技術(shù)幽邓,缺陷最后執(zhí)行時(shí)序分析、智能缺陷定位火脉、敏捷環(huán)境下多版本白盒測(cè)試數(shù)據(jù)的聚合牵舵、聚類分析柒啤、結(jié)合代碼結(jié)構(gòu)與動(dòng)態(tài)數(shù)據(jù)的測(cè)試漏洞檢出、代碼安全特性畸颅,全面的測(cè)試管理特性等幾十種優(yōu)秀功能担巩。

目前有“星云精準(zhǔn)測(cè)試VIP大企業(yè)離線版云平臺(tái)”、“星云精準(zhǔn)測(cè)試PASS在線云平臺(tái)www.teststars.cc”没炒、“全自動(dòng)測(cè)試用例驅(qū)動(dòng)生成系統(tǒng)Wings”等多種工具產(chǎn)品兵睛。

星云精準(zhǔn)測(cè)試旗下產(chǎn)品平臺(tái)有Horn、Paw窥浪、Shell祖很、Wings等系列產(chǎn)品。適用語(yǔ)言和平臺(tái)暫為:


為響應(yīng)廣大用戶的需求漾脂,目前正在進(jìn)一步擴(kuò)展適應(yīng)的語(yǔ)言和平臺(tái)覆蓋面假颇。

圖1-1 精準(zhǔn)測(cè)試在大型系統(tǒng)的效率運(yùn)行分析

星云精準(zhǔn)測(cè)試,既保證了傳統(tǒng)功能測(cè)試前期的高效率運(yùn)行區(qū)間骨稿,又能在后期通過系統(tǒng)的數(shù)據(jù)笨鸡,讓開發(fā)、測(cè)試充分協(xié)同坦冠,完成全程高效的自動(dòng)化精準(zhǔn)測(cè)試形耗。

第一章 精準(zhǔn)測(cè)試技術(shù)體系對(duì)軟件測(cè)試技術(shù)的升級(jí)解析

精準(zhǔn)測(cè)試技術(shù)體系經(jīng)過近6年的商業(yè)項(xiàng)目實(shí)踐日臻成熟,大量商業(yè)應(yīng)用案例的正面積極反饋辙浑,表明它已經(jīng)成為新的軟件測(cè)試技術(shù)方向體系激涤。星云精準(zhǔn)測(cè)試靈巧詳細(xì)的功能設(shè)計(jì)和高度可靠的產(chǎn)品內(nèi)核得到了市場(chǎng)的廣泛認(rèn)可,對(duì)于國(guó)際上原有的白盒測(cè)試工具來講判呕,是一種質(zhì)的飛躍倦踢。

2012年,精準(zhǔn)測(cè)試的商用工具正式進(jìn)入設(shè)計(jì)和研發(fā)階段侠草。與引進(jìn)國(guó)外技術(shù)不一樣辱挥,精準(zhǔn)測(cè)試的核心技術(shù)體系是星云測(cè)試團(tuán)隊(duì)在國(guó)內(nèi)的原創(chuàng)設(shè)計(jì)和研發(fā)。產(chǎn)品經(jīng)過3年的悉心研發(fā)边涕、反復(fù)內(nèi)測(cè)晤碘、不斷優(yōu)化后,2014年精準(zhǔn)測(cè)試在CSTQB會(huì)議上功蜓,發(fā)布了第一個(gè)商用版本ThreadingTest园爷,引起了很大反響。6年前霞赫,行業(yè)上還全面沉浸在黑盒測(cè)試的大氛圍中腮介,從未見過精準(zhǔn)測(cè)試的超前的運(yùn)行方法和提供的強(qiáng)大智能的功能,由于理念與設(shè)計(jì)過于超前端衰,早期有一些業(yè)內(nèi)質(zhì)疑的聲音叠洗。但由于產(chǎn)品獨(dú)到的優(yōu)秀特點(diǎn)和巨大的潛在價(jià)值甘改,諸多伯樂開始試用,給了產(chǎn)品在實(shí)際場(chǎng)景中不斷優(yōu)化灭抑、強(qiáng)化的寶貴機(jī)會(huì)十艾。經(jīng)過不同領(lǐng)域、不同客戶的各種高復(fù)雜度大型系統(tǒng)的百般錘煉腾节、驗(yàn)證后忘嫉,自2016年開始,精準(zhǔn)測(cè)試開始贏得全行業(yè)的重視和響應(yīng)案腺。

優(yōu)秀的商用落地性是精準(zhǔn)測(cè)試技術(shù)流行的一個(gè)重要因素庆冕。由于精準(zhǔn)測(cè)試把準(zhǔn)了黑盒測(cè)試無法解決的難題和固有瓶頸,踏準(zhǔn)了測(cè)試技術(shù)發(fā)展大的進(jìn)程劈榨,并從設(shè)計(jì)一開始就特意注重了商業(yè)場(chǎng)景下使用要求復(fù)雜性访递,因此它從誕生之日起就不僅僅是一套理論,而是有著非常強(qiáng)的實(shí)用性基因和可擴(kuò)展架構(gòu)同辣,多場(chǎng)景應(yīng)用成果卓然拷姿。

精準(zhǔn)測(cè)試最底層的核心技術(shù):“一種基于用例與源碼雙向追溯的測(cè)試裝置及方法”,類似在重建量子糾纏的場(chǎng)景和數(shù)據(jù)旱函。它成功的將功能用例和對(duì)應(yīng)的代碼二者之間的追溯路線响巢,實(shí)現(xiàn)了精準(zhǔn)無誤的可視化。這徹底解決了在黑盒的狀態(tài)下棒妨,軟件工程師們無法獲知程序內(nèi)部運(yùn)行軌跡的難題踪古。自此開始,計(jì)算機(jī)處理海量測(cè)試數(shù)據(jù)的強(qiáng)大分析能力開始展現(xiàn)靶衍。

我們知道灾炭,所有的黑盒測(cè)試都是人工進(jìn)行的,它依賴的是人的算力颅眶,而軟件正確性驗(yàn)證的工作量,主要是組合路徑膨脹的問題田弥,人的算力是遠(yuǎn)遠(yuǎn)跟不上的涛酗。那么精準(zhǔn)測(cè)試如何從測(cè)試的角度對(duì)業(yè)務(wù)進(jìn)行深度的測(cè)試輔助分析呢?我們用量子糾纏的形象類比來說明這個(gè)問題偷厦。量子糾纏理論我們可以簡(jiǎn)單理解為兩個(gè)處在糾纏態(tài)的粒子一旦分開商叹,不論分開多遠(yuǎn),如果對(duì)其中一個(gè)粒子作用只泼,另一個(gè)粒子會(huì)立即發(fā)生變化剖笙,且是瞬時(shí)變化∏氤“一個(gè)粒子”會(huì)與“另一個(gè)粒子”產(chǎn)生相互作用弥咪,兩個(gè)表面互相不關(guān)聯(lián)的粒子过蹂,互相作用互相影響,他們對(duì)外是一個(gè)整體聚至,無法單獨(dú)描述“單個(gè)粒子”的性質(zhì)酷勺,只能描述這“兩個(gè)粒子”的整體性質(zhì),這就叫做“量子糾纏”扳躬。類比到軟件測(cè)試上脆诉,我們的被測(cè)試軟件中常見的軟件界面和功能輸入輸出以及渲染它的復(fù)雜代碼,他們之間就和兩個(gè)糾纏在一起的粒子一樣,具備強(qiáng)關(guān)聯(lián)性截驮。一個(gè)發(fā)生了變化苔严,另一個(gè)必定發(fā)生變化。

精準(zhǔn)測(cè)試的另一核心功能是:“回歸測(cè)試用例的自動(dòng)選取”偶摔,就是基于用例和代碼的追溯(量子糾纏)關(guān)系在進(jìn)行運(yùn)算之后全自動(dòng)得出的。用例和代碼精準(zhǔn)的追溯機(jī)制字管,使數(shù)據(jù)開始可以實(shí)施大量的智能測(cè)試算法啰挪。在軟件測(cè)試?yán)碚摻纾罅空撐乃惴ǖ幕A(chǔ)都是默認(rèn)建立在用例和代碼的關(guān)系上進(jìn)行分析的嘲叔,但因其追溯機(jī)制工業(yè)實(shí)現(xiàn)難度極大亡呵,所以一直停留在學(xué)術(shù)理論階段。星云測(cè)試引領(lǐng)的精準(zhǔn)測(cè)試方法體系硫戈,落地在精確便捷的商用產(chǎn)品和大型解決方案中锰什,讓大量先進(jìn)的測(cè)試分析方法和理論,得以實(shí)實(shí)在在的驗(yàn)證丁逝。

精準(zhǔn)測(cè)試首次明確的提出了:如何采集和應(yīng)用雙向追溯數(shù)據(jù)汁胆,進(jìn)行測(cè)試輔助分析系統(tǒng)的構(gòu)建。不管是純軟件系統(tǒng)還是運(yùn)行在設(shè)備中的軟件系統(tǒng)丢间,用例與代碼精準(zhǔn)的數(shù)據(jù)可追溯性,都是基礎(chǔ)性的強(qiáng)需求虽风。比如金融轉(zhuǎn)賬業(yè)務(wù)忱辅、用手機(jī)拍照碧库、機(jī)器人控制器的動(dòng)作控制指令等,每個(gè)操作都有與之對(duì)應(yīng)的代碼儒搭。星云精準(zhǔn)測(cè)試產(chǎn)品的強(qiáng)大之處在于:所有的分析算法不需要和被測(cè)系統(tǒng)的業(yè)務(wù)功能做特定的適配拐辽,因此可以應(yīng)用于任意軟件系統(tǒng)的測(cè)試輔助分析。而傳統(tǒng)的白盒在產(chǎn)品實(shí)現(xiàn)上以采集和分析總體覆蓋率為主,沒有能力將覆蓋細(xì)化到用例層級(jí)晌涕,因此傳統(tǒng)的白盒測(cè)試囿于覆蓋率的概念中,無法實(shí)現(xiàn)更高層次的測(cè)試輔助分析需求痛悯。

星云測(cè)試產(chǎn)品的技術(shù)優(yōu)越性及應(yīng)用的易用性余黎,使它成為新一代軟件測(cè)試技術(shù)流的中堅(jiān)力量。星云精準(zhǔn)測(cè)試在企業(yè)應(yīng)用場(chǎng)景中灸蟆,為了方便客戶還設(shè)計(jì)了完全靜默的“傻瓜”運(yùn)行模式驯耻,客戶基本無需增加額外的學(xué)習(xí)成本。比如測(cè)試工程師打開測(cè)試用例的excel表格炒考,當(dāng)他準(zhǔn)備執(zhí)行某個(gè)用例的時(shí)候可缚,只需點(diǎn)擊這一項(xiàng)測(cè)試用例。隨后通過VBA技術(shù)斋枢,直接調(diào)用星云精準(zhǔn)測(cè)試的后臺(tái)接口帘靡,再附加一整套深入應(yīng)用后臺(tái)執(zhí)行線程的用戶標(biāo)簽技術(shù),就可以將用例和代碼關(guān)聯(lián)和分離出來(這里說的分離是指類似于J2EE服務(wù)端后臺(tái)應(yīng)用)瓤帚。在對(duì)外提供多用戶并發(fā)訪問的情況下描姚,可分離出每個(gè)用戶執(zhí)行的用例所對(duì)應(yīng)的相應(yīng)代碼。

前面我們提到功能和代碼這兩個(gè)量子數(shù)據(jù)的重建戈次,以前主要出現(xiàn)在研發(fā)/開發(fā)人員相對(duì)比較零散的執(zhí)行單步調(diào)試功能的時(shí)候(即單元測(cè)試)轩勘,無法存儲(chǔ)。國(guó)外白盒工具因其設(shè)計(jì)基因的限制怯邪,無法支撐超大型绊寻、高復(fù)雜度的系統(tǒng)級(jí)測(cè)試需求。在星云精準(zhǔn)測(cè)試體系中,只要測(cè)試工程師執(zhí)行測(cè)試用例澄步,幾乎不需要額外付出冰蘑,在建立測(cè)試用例與數(shù)據(jù)的對(duì)應(yīng)關(guān)系的同時(shí),瞬間即可將海量數(shù)據(jù)實(shí)時(shí)采集并存儲(chǔ)起來村缸,用于后續(xù)測(cè)試大數(shù)據(jù)的分析和運(yùn)算上祠肥。它的內(nèi)核設(shè)計(jì),使之可以輕松應(yīng)用在數(shù)億行的超大型應(yīng)用上梯皿,實(shí)時(shí)采集仇箱、存儲(chǔ)測(cè)試數(shù)據(jù),而對(duì)原有系統(tǒng)的響應(yīng)性能不產(chǎn)生干擾索烹。

星云精準(zhǔn)測(cè)試對(duì)軟件測(cè)試體系是重大的技術(shù)革新工碾,它從以下幾個(gè)層面改變并提升了測(cè)試:

  1. 對(duì)軟件測(cè)試的深度進(jìn)行了大幅度的拓寬,讓計(jì)算機(jī)有能力直接對(duì)測(cè)試用例進(jìn)行輔助分析百姓,給出更深入的測(cè)試決策分析依據(jù)渊额。傳統(tǒng)測(cè)試主要通過人工業(yè)務(wù)測(cè)試發(fā)現(xiàn)缺陷,定位缺陷必須由開發(fā)人員進(jìn)行垒拢,二者信息沒有精確的數(shù)據(jù)交互旬迹。精準(zhǔn)測(cè)試主要基于測(cè)試人員標(biāo)識(shí)的用例狀態(tài),以及自動(dòng)記錄的用例對(duì)應(yīng)的代碼路徑進(jìn)行頻譜分析求类。它可以自動(dòng)計(jì)算缺陷產(chǎn)生的代碼位置奔垦,在發(fā)現(xiàn)缺陷的同時(shí),同步產(chǎn)生缺陷定位的結(jié)果數(shù)據(jù)尸疆。精準(zhǔn)測(cè)試提供的測(cè)試用例的聚類分析椿猎,是基于測(cè)試用例的路徑空間距離進(jìn)行聚類,聚類的結(jié)果可以直接對(duì)用例執(zhí)行正確性進(jìn)行審核寿弱,對(duì)用例進(jìn)行等價(jià)類劃分犯眠、分析缺陷密集區(qū)以及對(duì)用例執(zhí)行分布進(jìn)行評(píng)估等。精準(zhǔn)測(cè)試提供的回歸用例選取結(jié)果症革,經(jīng)由海量的計(jì)算精準(zhǔn)推薦而來筐咧,總體算法思路與人工分析的思路是類似的,采用人工智能算法模式把大量的計(jì)算完全交由計(jì)算機(jī)去總結(jié)分析噪矛,精準(zhǔn)量蕊、穩(wěn)定、可靠艇挨、高速残炮。這個(gè)功能相當(dāng)于解放了測(cè)試和開發(fā)團(tuán)隊(duì)大量的人力資源,徹底解決因團(tuán)隊(duì)成員變更而引入的未知風(fēng)險(xiǎn)缩滨。

  2. 精準(zhǔn)測(cè)試開辟的測(cè)試方法新體系吉殃,支撐了黑盒測(cè)試快速提升測(cè)試效能比的剛需辞居。精準(zhǔn)測(cè)試對(duì)于企業(yè)來講,相對(duì)于比需要人工編寫蛋勺、維護(hù)龐大自動(dòng)化腳本的自動(dòng)化測(cè)試,工作量是低很多的鸠删。精準(zhǔn)測(cè)試和自動(dòng)化測(cè)試是并行的技術(shù)方向抱完,企業(yè)應(yīng)用可以根據(jù)各自團(tuán)隊(duì)的特點(diǎn)來選擇,并沒有絕對(duì)的應(yīng)用時(shí)序依賴關(guān)系刃泡。自動(dòng)化測(cè)試近些年的應(yīng)用遇到一個(gè)廣泛的批評(píng)就是:讓測(cè)試團(tuán)隊(duì)疲于應(yīng)付用例的編寫而不是測(cè)試用例設(shè)計(jì)等測(cè)試核心技術(shù)巧娱。精準(zhǔn)測(cè)試屬于測(cè)試分析系統(tǒng),著眼點(diǎn)和立意相對(duì)較高烘贴,在測(cè)試?yán)碚摻怼⒎椒ê蜕虡I(yè)應(yīng)用落地驗(yàn)證與成果上,形成較好的整體閉環(huán)桨踪。它把測(cè)試需要關(guān)注的核心老翘,引領(lǐng)到一個(gè)正確方向上來。

  3. 精準(zhǔn)測(cè)試在技術(shù)特性上解決了測(cè)試結(jié)果可信性的問題锻离。在精準(zhǔn)測(cè)試之前铺峭,我們所見到的所有測(cè)試數(shù)據(jù)都是易偽造、易篡改的汽纠。例如我們通常使用的測(cè)試管理系統(tǒng)卫键,一個(gè)用例是否被有效執(zhí)行,絕大部分是在測(cè)試管理系統(tǒng)中被人工錄入的虱朵。精準(zhǔn)測(cè)試是在用例動(dòng)態(tài)執(zhí)行過程中莉炉,由計(jì)算機(jī)內(nèi)部算法真實(shí)記錄對(duì)應(yīng)的程序運(yùn)行邏輯,然后形成后面對(duì)測(cè)試數(shù)據(jù)進(jìn)行精確分析的數(shù)據(jù)源基礎(chǔ)碴犬。所以其底層程序運(yùn)行的數(shù)據(jù)是沒有辦法也絕對(duì)不允許進(jìn)行偽造和篡改的絮宁。精準(zhǔn)測(cè)試果斷去除了阻礙測(cè)試行業(yè)發(fā)展的重要障礙,讓測(cè)試的結(jié)果精準(zhǔn)化翅敌、可量化羞福、可衡量化、可信化蚯涮。此舉治专,將大幅減低測(cè)試行業(yè)本身的管理成本,有效推動(dòng)測(cè)試行業(yè)的快速遭顶、健康發(fā)展张峰。

  4. 精準(zhǔn)測(cè)試大幅提升了開發(fā)和測(cè)試部門的協(xié)作效能。前面提到全景調(diào)試器棒旗,測(cè)試工程師執(zhí)行完用例喘批,即時(shí)產(chǎn)生代碼層級(jí)的全景調(diào)試數(shù)據(jù)撩荣;測(cè)試完成后一旦用例存在缺陷,那么基于這個(gè)全景調(diào)試圖以及高度可視化的數(shù)據(jù)路徑追溯饶深,開發(fā)人員可以直接對(duì)缺陷進(jìn)行定位餐曹,不需要在開發(fā)環(huán)境下重現(xiàn)缺陷,再單步調(diào)試以解決問題敌厘。實(shí)施精準(zhǔn)測(cè)試之前台猴,開發(fā)人員苦于很難有效參與對(duì)測(cè)試用例進(jìn)行審核;實(shí)施精準(zhǔn)測(cè)試后俱两,用例的執(zhí)行結(jié)果都映射到了代碼層饱狂,開發(fā)人員通過代碼的覆蓋視圖很容易就可以協(xié)助測(cè)試人員補(bǔ)充和確認(rèn)用例,開發(fā)和測(cè)試的協(xié)作變得非常簡(jiǎn)單和直接有效宪彩。

不可否認(rèn)休讳,在精準(zhǔn)測(cè)試之前,開發(fā)和測(cè)試存在溝通不暢的問題尿孔。通過精準(zhǔn)測(cè)試在項(xiàng)目中的有效實(shí)施我們會(huì)發(fā)現(xiàn)俊柔,精準(zhǔn)測(cè)試可以幫助開發(fā)提供非常有價(jià)值的數(shù)據(jù):例如代碼和用例的反向追溯可以幫助開發(fā)人員修改代碼做參考,精準(zhǔn)測(cè)試自動(dòng)計(jì)算回歸范圍減輕了開發(fā)人員必須協(xié)助測(cè)試進(jìn)行分析的工作量纳猫,因此婆咸,精準(zhǔn)測(cè)試對(duì)開發(fā)和測(cè)試來講,是一舉兩得芜辕、相得益彰的尚骄。

  1. 星云精準(zhǔn)測(cè)試發(fā)明了多個(gè)全新的、適應(yīng)敏捷迭代開發(fā)模型下的覆蓋率計(jì)算方法侵续。覆蓋率是白盒測(cè)試最基本的技術(shù)倔丈,但是隨著敏捷迭代的開發(fā)模式,即使最高端的白盒測(cè)試工具已經(jīng)幾乎沒有用武之地状蜗,原因就在于由于迭代很快需五,在某個(gè)版本上通常只能采集少量的覆蓋率后新版本就發(fā)布了。本應(yīng)在一個(gè)版本上分析的覆蓋數(shù)據(jù)轧坎,分布到了數(shù)個(gè)代碼結(jié)構(gòu)不一樣的程序版本上宏邮,因此原有的統(tǒng)計(jì)方法和參考意義基本上都失效了。精準(zhǔn)測(cè)試提供了累計(jì)覆蓋率缸血,能夠?qū)⒍鄠€(gè)版本的覆蓋率以最新版本的代碼結(jié)構(gòu)進(jìn)行投影蜜氨,在控制流上進(jìn)行累加。這樣測(cè)試團(tuán)隊(duì)無需關(guān)注每個(gè)版本的覆蓋情況捎泻,即可關(guān)注一個(gè)完整測(cè)試周期內(nèi)所有版本的累積覆蓋率飒炎。另外,考慮到敏捷迭代每個(gè)版本的測(cè)試需求笆豁,即:針對(duì)特定模塊和功能范圍進(jìn)行測(cè)試(并不是全量測(cè)試)郎汪,精準(zhǔn)測(cè)試提供了相關(guān)覆蓋率的計(jì)算方法赤赊。它可以自動(dòng)圈定某個(gè)用例和用例集有關(guān)的代碼范圍(這些也是基于用例和代碼的關(guān)系分析基礎(chǔ)上動(dòng)態(tài)計(jì)算的),在運(yùn)行少量用例或者某個(gè)功能模塊的情況下煞赢,它可以自動(dòng)確定相關(guān)代碼抛计,把不相關(guān)的代碼從覆蓋率的分母中過濾掉。這樣相關(guān)覆蓋率在僅僅運(yùn)行部分少量用例的情況下耕驰,依然具有很強(qiáng)的統(tǒng)計(jì)和參照意義爷辱。

第三章 精準(zhǔn)測(cè)試的定義

精準(zhǔn)測(cè)試定義:由中國(guó)團(tuán)隊(duì)發(fā)起并原創(chuàng)完成測(cè)試?yán)砟钤O(shè)計(jì)和商用產(chǎn)品研發(fā)的全新測(cè)試技術(shù)。旨在測(cè)試用例執(zhí)行過程中朦肘,全自動(dòng)建立任意運(yùn)行模式的軟件系統(tǒng)的功能點(diǎn)與源代碼之間高度的可視化追溯機(jī)制,獲取功能點(diǎn)相關(guān)的代碼覆蓋率并進(jìn)行精準(zhǔn)回歸等測(cè)試用例深度輔助分析算法的應(yīng)用双饥。精準(zhǔn)測(cè)試是測(cè)試?yán)碚摻缡状瓮瑫r(shí)使用測(cè)試用例及其相關(guān)代碼兩個(gè)關(guān)鍵因子媒抠,進(jìn)行質(zhì)量綜合考量和分析的創(chuàng)新測(cè)試方法體系。

3.1 基本定義

星云精準(zhǔn)測(cè)試在測(cè)試用例執(zhí)行過程中咏花,可以同步全自動(dòng)建立任意運(yùn)行模式的軟件系統(tǒng)功能點(diǎn)與源代碼之間的高度可視化追溯機(jī)制趴生,即通過內(nèi)部算法能夠?qū)⑷毕輰?duì)應(yīng)的代碼出錯(cuò)位置直接定位出來;能夠獲取功能點(diǎn)相關(guān)的代碼覆蓋率并進(jìn)行精準(zhǔn)回歸等昏翰,使測(cè)試用例深度輔助分析算法得以強(qiáng)化應(yīng)用苍匆。這是軟件測(cè)試首次同時(shí)使用測(cè)試用例及其相關(guān)代碼兩個(gè)關(guān)鍵因子,進(jìn)行質(zhì)量綜合考量和分析的創(chuàng)新測(cè)試?yán)碚摲椒w系棚菊。這種有效的數(shù)據(jù)追溯與“量子聯(lián)動(dòng)”的突破性技術(shù)特性浸踩,大大增強(qiáng)了測(cè)試的深度與廣度,打破了測(cè)試部門的成長(zhǎng)天花板统求,為測(cè)試過程本身的價(jià)值挖掘和測(cè)試數(shù)據(jù)資產(chǎn)的增值检碗,提供了必要而充分的條件。

3.2 關(guān)鍵技術(shù)

精準(zhǔn)測(cè)試體系貫穿整個(gè)軟件測(cè)試生命周期码邻。精準(zhǔn)測(cè)試主要側(cè)重于系統(tǒng)級(jí)測(cè)試折剃,在單元測(cè)試、集成測(cè)試像屋、系統(tǒng)測(cè)試怕犁、驗(yàn)收測(cè)試、回歸測(cè)試中己莺,均能賦予測(cè)試數(shù)據(jù)強(qiáng)大的追溯能力奏甫。關(guān)鍵核心技術(shù)有:測(cè)試用例和代碼邏輯的雙向追溯,測(cè)試示波器篇恒、覆蓋率可視化扶檐、回歸測(cè)試用例的自動(dòng)選取、缺陷最后執(zhí)行時(shí)序分析胁艰、智能缺陷定位款筑、敏捷環(huán)境下多版本白盒測(cè)試數(shù)據(jù)的聚合智蝠、聚類分析、結(jié)合代碼結(jié)構(gòu)與動(dòng)態(tài)數(shù)據(jù)的測(cè)試漏洞檢出等奈梳。

精準(zhǔn)測(cè)試在測(cè)試用例執(zhí)行過程中杈湾,為用戶從底層自動(dòng)建立任意運(yùn)行模式的軟件系統(tǒng)功能點(diǎn)與源代碼之間的可視化追溯機(jī)制,使用戶獲取用例級(jí)的代碼覆蓋率等多種高級(jí)測(cè)試數(shù)據(jù)攘须。這一突破性的創(chuàng)新智能算法漆撞,有力的打破了軟件開發(fā)、測(cè)試于宙、維護(hù)及管理人員等之間的數(shù)據(jù)孤島狀態(tài)浮驳,實(shí)現(xiàn)了軟件測(cè)試過程和結(jié)果的高度精準(zhǔn)可視化,在軟件高可靠性和高可信度方面捞魁,提供了全面而有力的數(shù)據(jù)支撐至会。精準(zhǔn)測(cè)試運(yùn)行模式是灰盒模式,即:可以在黑盒功能測(cè)試的時(shí)候谱俭,同步完成數(shù)據(jù)采集和分析計(jì)算奉件,讓“點(diǎn)測(cè)”團(tuán)隊(duì)也可輕易切入到精準(zhǔn)測(cè)試模式,無需改變現(xiàn)有測(cè)試形式與流程昆著,不增加額外的技術(shù)學(xué)習(xí)與轉(zhuǎn)換成本县貌。

3.3 應(yīng)用范圍

精準(zhǔn)測(cè)試適用于任何形態(tài)的軟件系統(tǒng)。星云精準(zhǔn)測(cè)試可應(yīng)用于各種軟件包括嵌入式系統(tǒng)凑懂、分布式系統(tǒng)煤痕、web應(yīng)用系統(tǒng)、單機(jī)軟件系統(tǒng)等各類軟件的測(cè)試征候,并且完全不受限于被測(cè)試軟件本身的業(yè)務(wù)需求杭攻。

3.4 用戶收益

  1. 實(shí)現(xiàn)從發(fā)現(xiàn)缺陷到預(yù)防缺陷的轉(zhuǎn)型。減少因?yàn)槿毕荻鴮?duì)整個(gè)研發(fā)運(yùn)維流程造成的返工成本疤坝。使發(fā)現(xiàn)缺陷前移兆解,減少因項(xiàng)目后期的嚴(yán)重缺陷而導(dǎo)致產(chǎn)品交付延期、成本增高跑揉,影響交付質(zhì)量锅睛。

  2. 建立跨需求、開發(fā)历谍、測(cè)試等部門的測(cè)試協(xié)同平臺(tái)现拒。實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)可追溯化和路徑可視化。

  3. 優(yōu)化技術(shù)與業(yè)務(wù)方案望侈。根據(jù)不同的質(zhì)量要求印蔬,優(yōu)先級(jí)順序、技術(shù)實(shí)現(xiàn)手段等脱衙,實(shí)現(xiàn)智能靈活的技術(shù)方案推薦侥猬、交付和應(yīng)變機(jī)制例驹。減少無數(shù)據(jù)支撐造成的內(nèi)耗。

  4. 企業(yè)“精準(zhǔn)眾測(cè)”平臺(tái)退唠,支撐千人團(tuán)隊(duì)同時(shí)在線鹃锈。測(cè)試數(shù)據(jù)可以根據(jù)管理需要做分析,為企業(yè)內(nèi)的成本管控提供選型參考瞧预。實(shí)現(xiàn)跨地區(qū)屎债,跨部門的業(yè)務(wù)人員,開發(fā)人員和測(cè)試人員的測(cè)試協(xié)同垢油,即使不在同一辦公地點(diǎn)的人員盆驹,也可針對(duì)測(cè)試需求,測(cè)試任務(wù)滩愁,測(cè)試用例和測(cè)試缺陷等方面進(jìn)行遠(yuǎn)程溝通和實(shí)時(shí)協(xié)同作用召娜,最終完成整個(gè)測(cè)試過程的實(shí)施。

  5. 支持敏捷開發(fā)與測(cè)試模式惊楼。關(guān)注新功能的增量測(cè)試,支持自動(dòng)化回歸測(cè)試秸讹,實(shí)現(xiàn)高效的IT交付檀咙。

第四章 精準(zhǔn)測(cè)試的基礎(chǔ)架構(gòu)介紹

4.1 精準(zhǔn)測(cè)試的技術(shù)架構(gòu)

精準(zhǔn)測(cè)試從某些層面來講,賦予了測(cè)試用例真正的生命力璃诀。測(cè)試用例是測(cè)試數(shù)據(jù)的一種弧可,當(dāng)測(cè)試數(shù)據(jù)實(shí)現(xiàn)路線可追溯可視化的時(shí)候,一些高級(jí)算法的強(qiáng)大能力就可以顯示出來劣欢。我們從精準(zhǔn)測(cè)試的整體架構(gòu)圖中可以做一具體分析棕诵。

圖4.1-1 精準(zhǔn)測(cè)試的總體架構(gòu)圖

第一層:利用先進(jìn)的前置編譯器,為客戶做源碼靜態(tài)結(jié)構(gòu)分析(在客戶的實(shí)際環(huán)境中凿将,根據(jù)客戶的需求進(jìn)行相關(guān)的技術(shù)配合)校套;

第二層:將處理好的系統(tǒng)程序放入測(cè)試環(huán)境運(yùn)行,測(cè)試工程師通過人工或程序自動(dòng)化的形式牧抵,開始執(zhí)行用例(人工執(zhí)行用例可以和測(cè)試管理平臺(tái)或者Excel表格方式進(jìn)行對(duì)接)笛匙,精準(zhǔn)測(cè)試的 “軟件示波器”采集運(yùn)行數(shù)據(jù)并進(jìn)行高速智能運(yùn)算驶鹉,獲取精確的測(cè)試數(shù)據(jù)折砸;

第三層:根據(jù)采集的代碼與對(duì)應(yīng)的測(cè)試用例,在星云精準(zhǔn)測(cè)試平臺(tái)中實(shí)現(xiàn)用例與源碼的互相追溯庸队;

第四層:通過精準(zhǔn)測(cè)試的分析平臺(tái)获枝,可以對(duì)測(cè)試數(shù)據(jù)進(jìn)行缺陷定位蠢正、用例聚類分析、回歸測(cè)試用例和最小測(cè)試用例集等功能的計(jì)算省店,用戶還可以根據(jù)需求嚣崭,批量生成相應(yīng)的測(cè)試報(bào)告笨触,或進(jìn)行測(cè)試數(shù)據(jù)高級(jí)分析。


圖4.1-2 精準(zhǔn)測(cè)試的用例魔方

在總體業(yè)務(wù)架構(gòu)圖的左上角區(qū)域有鹿,我們可以看到“用例魔方”幾個(gè)字旭旭。大家可能會(huì)比較好奇“用例魔方”的涵義,它是精準(zhǔn)測(cè)試中非常核心的高級(jí)回歸功能之一葱跋。所謂“魔”是精準(zhǔn)測(cè)試核心算法所賦予的超能力持寄,所謂“方”實(shí)際上是代表測(cè)試用例的集合,每個(gè)測(cè)試用例用一個(gè)小方塊標(biāo)識(shí)娱俺,所有測(cè)試用例的集合用一個(gè)大方塊稍味。當(dāng)我們把精準(zhǔn)測(cè)試的和用例分析相關(guān)的功能畫成架構(gòu)圖形表示的時(shí)候,它自然而然地看起來就像魔方荠卷。

精準(zhǔn)測(cè)試體系中模庐,測(cè)試用例對(duì)應(yīng)的代碼邏輯精確而完整的實(shí)現(xiàn)了全自動(dòng)化的追溯和存儲(chǔ),因此賦予了測(cè)試用例深入分析的基礎(chǔ)能力油宜。在精準(zhǔn)測(cè)試的用例魔方中掂碱,目前存在三個(gè)面(隨著后續(xù)功能的增加,將增加分析的面):即回歸測(cè)試用例選取慎冤、測(cè)試用例聚類分析疼燥、測(cè)試用例最小化,同時(shí)輔之以智能缺陷定位技術(shù)蚁堤。當(dāng)測(cè)試用例與代碼的追溯關(guān)系建立的時(shí)候醉者,測(cè)試魔方的核心功能區(qū)即同步構(gòu)建出來。為數(shù)據(jù)的多角度分析披诗,提供了豐富的資源素材庫(kù)撬即。

4.2 軟件示波器

軟件示波器是星云精準(zhǔn)測(cè)試獨(dú)有的功能,它如同軟件的質(zhì)量運(yùn)行情況“追溯穿行器”一樣呈队,在測(cè)試工程師按下啟動(dòng)鍵的同時(shí)剥槐,即時(shí)開始建立用例與代碼的自動(dòng)關(guān)聯(lián)。示波器把采集到的測(cè)試數(shù)據(jù)通過可視化的窗口界面進(jìn)行實(shí)時(shí)展示掂咒,內(nèi)容涵蓋采集到的塊才沧、條件和函數(shù)信息。藍(lán)色波形代表寫入的數(shù)值绍刮,黃色波形表示讀取的數(shù)值温圆,用戶可以清晰的看到被測(cè)系統(tǒng)的數(shù)據(jù)變化。它如同心跳監(jiān)控儀一樣孩革,如果被測(cè)試程序發(fā)生了崩潰岁歉,軟件示波器就像人的心臟停止跳動(dòng)一樣,一根橫線拉直向用戶報(bào)警。如果正常采集到數(shù)據(jù)锅移,會(huì)有持續(xù)的波形展示出來熔掺,高效而精準(zhǔn)地監(jiān)控程序細(xì)微的運(yùn)行狀況。示波器精密捕獲每個(gè)軟件單元任何微小的運(yùn)行波動(dòng)和行為改變非剃,支持多次運(yùn)行數(shù)據(jù)的比對(duì)置逻。它可以根據(jù)需要記錄崩潰前的至少50個(gè)塊,使“崩潰重現(xiàn)”變得輕松簡(jiǎn)單备绽。

軟件示波器中的測(cè)試用例可以從現(xiàn)有的測(cè)試管理系統(tǒng)導(dǎo)入進(jìn)來券坞,先選中用例點(diǎn)擊開始,驅(qū)動(dòng)被測(cè)試系統(tǒng)運(yùn)行后肺素,軟件示波器就會(huì)采集到程序內(nèi)部運(yùn)行邏輯對(duì)應(yīng)的波形信息恨锚。用例執(zhí)行結(jié)束后,點(diǎn)擊停止倍靡。這個(gè)用例運(yùn)行階段的數(shù)據(jù)猴伶,通過開始和結(jié)束的點(diǎn)擊,邊界就記錄下來了塌西。

圖4.2-1 軟件示波器

面板的正下方可以展示函數(shù)的各種調(diào)用信息他挎。包括類、函數(shù)捡需,參數(shù)類型等雇盖。清晰的列示出參數(shù)列表、類運(yùn)行情況栖忠、內(nèi)存檢測(cè)數(shù)據(jù)、數(shù)據(jù)庫(kù)攔截等多角度的數(shù)據(jù)分析追溯情況信息贸街。

示波器觀測(cè)的維度較多庵寞,用例與代碼的追溯是精準(zhǔn)測(cè)試的基礎(chǔ)功能,后面的高級(jí)算法都在這個(gè)基礎(chǔ)上展開薛匪。用例和代碼的追溯就像一個(gè)全景的調(diào)試器捐川,只要功能由測(cè)試人員運(yùn)行,所有的內(nèi)部代碼執(zhí)行邏輯瞬間就可以展示出來逸尖。通過測(cè)試數(shù)據(jù)的反向追溯分析古沥,開發(fā)人員可進(jìn)行一致性修改,避免修改引入新的缺陷娇跟,通過正向追溯結(jié)果岩齿,開發(fā)可對(duì)用例的執(zhí)行進(jìn)行全面掌握,可用于快速修復(fù)缺陷和詳細(xì)實(shí)現(xiàn)確認(rèn)苞俘。

同時(shí)軟件示波器也提供一個(gè)輔助的等價(jià)類劃分的功能盹沈,它將一個(gè)用例從開始到結(jié)束所執(zhí)行的路徑信息終值,完整記錄下來吃谣。如果兩個(gè)用例終值不一樣乞封,就可以確定為不是等價(jià)類做裙。對(duì)于很多從功能表面很難界定是否等價(jià)類的測(cè)試用例,軟件示波器可以給出精確結(jié)果肃晚。

因此軟件示波器的價(jià)值與意義在于:

(1)只要測(cè)試開始執(zhí)行锚贱,即可以透明方式高速采集功能運(yùn)行過程中對(duì)應(yīng)程序的運(yùn)行邏輯。

(2)在系統(tǒng)高速運(yùn)轉(zhuǎn)下采集关串,可保證對(duì)原有應(yīng)用無干擾拧廊,超過1500w/s的采集速率。

(3)可采集程序的條件悍缠,執(zhí)行路徑卦绣,執(zhí)行參數(shù),內(nèi)存使用等動(dòng)態(tài)運(yùn)行數(shù)據(jù)飞蚓。

為了方便客戶在運(yùn)行項(xiàng)目測(cè)試時(shí)滤港,一邊對(duì)被測(cè)系統(tǒng)做實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè),一邊同步觀察到示波器里面數(shù)據(jù)寫入和讀取的波形趴拧,星云做出了實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)的懸浮窗縮略圖溅漾,減少了切換帶來的工作量。它不影響原有被測(cè)系統(tǒng)的界面著榴,以半透明懸浮的方式展示在被測(cè)試應(yīng)用界面的前面添履。

圖4.2-2 軟件示波器懸浮窗

4.3精準(zhǔn)測(cè)試的雙向追溯

精準(zhǔn)測(cè)試的測(cè)試用例和代碼的雙向追溯功能,是精準(zhǔn)測(cè)試核心技術(shù)之一脑又。如同前文的“量子糾纏”暮胧,即運(yùn)行測(cè)試用例的同時(shí),精準(zhǔn)測(cè)試可以通過程序自動(dòng)的記錄并追溯到這個(gè)測(cè)試用例相應(yīng)執(zhí)行的代碼问麸。如果測(cè)試人員關(guān)注某一些代碼行往衷,它可以追溯出哪些測(cè)試用例在運(yùn)行過程中運(yùn)行過這段代碼。通過這個(gè)技術(shù)特性严卖,測(cè)試工程師的每個(gè)測(cè)試用例都可以進(jìn)行量化分析和統(tǒng)計(jì)席舍,提供了開發(fā)人員和測(cè)試人員之間精準(zhǔn)的數(shù)字化交流依據(jù), 增加測(cè)試和開發(fā)的交流效率哮笆。

雙向追溯技術(shù)記錄了每個(gè)測(cè)試用例對(duì)應(yīng)的程序內(nèi)部的執(zhí)行細(xì)節(jié)来颤,細(xì)致到每個(gè)條件、分支稠肘、語(yǔ)句塊的執(zhí)行情況福铅。開發(fā)人員亦可通過雙向追溯的結(jié)果去理解程序邏輯,進(jìn)行軟件維護(hù)以及進(jìn)行可一致性的修改项阴。

4.3.1 雙向追溯技術(shù)正向追溯

  1. 將測(cè)試用例和代碼執(zhí)行信息自動(dòng)關(guān)聯(lián)本讥,可追溯到函數(shù)級(jí)別及代碼塊級(jí)別;

  2. 通過正向追溯可直接把BUG定位到故障和缺陷邏輯相應(yīng)的代碼,并提供最后運(yùn)行的時(shí)序數(shù)據(jù)拷沸;

  3. 通過正向追溯自動(dòng)記錄產(chǎn)生功能對(duì)應(yīng)的詳細(xì)設(shè)計(jì)實(shí)現(xiàn)色查,輔助軟件解耦和架構(gòu)分析。

圖4.3.1-1 雙向追溯(正向)-測(cè)試用例追溯到代碼
圖4.3.1-2 雙向追溯(正向)-測(cè)試用例追溯到代碼

4.3.2 雙向追溯技術(shù)反向追溯

  1. 將代碼執(zhí)行撞芍、函數(shù)秧了、代碼塊級(jí)別和測(cè)試用例執(zhí)行信息自動(dòng)關(guān)聯(lián);

  2. 通過反向追溯可直接觀察代碼變動(dòng)所影響的測(cè)試范圍序无;

  3. 協(xié)助開發(fā)验毡,進(jìn)行代碼修改后影響功能的范圍評(píng)估;

  4. 協(xié)助測(cè)試人員對(duì)代碼修改部分所影響的測(cè)試用例進(jìn)行評(píng)估帝嗡。

圖4.3.2-1 雙向追溯(反向)-代碼追溯到測(cè)試用例
圖4.3.2-2 雙向追溯(反向)-代碼追溯到測(cè)試用例

4.3.3 數(shù)據(jù)追溯技術(shù)-追溯測(cè)試用例的全景調(diào)用

精準(zhǔn)測(cè)試通過正向追溯把測(cè)試用例運(yùn)行的代碼執(zhí)行進(jìn)行了全景繪制晶通,在全景圖中,測(cè)試人員可以有效的觀察到函數(shù)之間的整體的調(diào)用與走向哟玷,觀察出被測(cè)模塊與上層之間的調(diào)用關(guān)系狮辽。

圖4.3.3 測(cè)試用例運(yùn)行的代碼整體調(diào)用

第五章 精準(zhǔn)測(cè)試的核心組件與功能

精準(zhǔn)測(cè)試的核心組件與功能:軟件測(cè)試示波器、用例和代碼的雙向追溯巢寡、智能回歸測(cè)試用例選取喉脖、覆蓋率分析、缺陷定位抑月、測(cè)試用例聚類分析树叽、測(cè)試用例自動(dòng)生成系統(tǒng)等,完整的構(gòu)成了精準(zhǔn)測(cè)試技術(shù)體系谦絮。

精準(zhǔn)測(cè)試系統(tǒng)本質(zhì)是一套強(qiáng)大的計(jì)算機(jī)開發(fā)與測(cè)試系統(tǒng)题诵,實(shí)現(xiàn)了數(shù)據(jù)的可視化聯(lián)動(dòng),以及開發(fā)輔助分析臭家。它的關(guān)鍵技術(shù)賦予了測(cè)試用例和代碼強(qiáng)大的相互追溯能力,隨后衍生實(shí)現(xiàn)了很多高級(jí)測(cè)試功能與算法。精準(zhǔn)測(cè)試系統(tǒng)將用例深入到代碼層分析后,可以大幅改進(jìn)人工測(cè)試所產(chǎn)生的各種問題滑废。

接下來將從風(fēng)險(xiǎn)控制俺陋、工作協(xié)同、敏捷迭代方面詳細(xì)解析精準(zhǔn)測(cè)試的核心功能和實(shí)際收益法焰。

5.1 風(fēng)險(xiǎn)控制

5.1.1 七種測(cè)試覆蓋率

星云精準(zhǔn)測(cè)試提供7種測(cè)試覆蓋率:分別為:SC0語(yǔ)句塊覆蓋率秧荆、True覆蓋率、Both覆蓋率埃仪、CDC覆蓋率乙濒、Branch覆蓋率、MC/DC覆蓋率卵蛉。

用戶首先選擇分析覆蓋率的維度颁股,例如選擇了“SCO語(yǔ)句塊”維度,那么系統(tǒng)就會(huì)將被測(cè)試程序的所有語(yǔ)句塊結(jié)構(gòu)展示出來傻丝,并且用顏色表達(dá)覆蓋情況甘有,綠色代表覆蓋,深藍(lán)色代表未覆蓋葡缰。同時(shí)告知覆蓋率的分子和分母都是哪些亏掀,非常清晰的展示覆蓋率可視化結(jié)果忱反。精準(zhǔn)測(cè)試在前期已經(jīng)對(duì)程序的靜態(tài)結(jié)構(gòu)進(jìn)行了深度的分析,因此用戶在覆蓋率可視化界面滤愕,根據(jù)選擇的維度在代碼層面上把需要展示的結(jié)構(gòu)單元都結(jié)構(gòu)化的展示出來温算。例如圖5.1.1-1 七種測(cè)試覆蓋率中的第二張圖

圖5.1.1-1 七種測(cè)試覆蓋率

MC/DC覆蓋率可視化

MC/DC覆蓋率,即修正判定條件覆蓋该互,該覆蓋率數(shù)據(jù) MC/DC是DO-178B/C Level A認(rèn)證標(biāo)準(zhǔn)中規(guī)定的米者、歐美民用航空器強(qiáng)制要求遵守的覆蓋率標(biāo)準(zhǔn)。MC/DC覆蓋率可以基本保證被測(cè)試軟件無缺陷宇智,對(duì)于大型系統(tǒng)的可靠性要求很高的一些關(guān)鍵模塊蔓搞,建議采用這個(gè)覆蓋率標(biāo)準(zhǔn)。MC/DC覆蓋簡(jiǎn)單來說随橘,就是追蹤復(fù)合條件中每個(gè)子條件的真假翻轉(zhuǎn)喂分,在其子條件不變前提下,是否都獨(dú)立的影響了整個(gè)條件的真假值机蔗。星云精準(zhǔn)測(cè)試系統(tǒng)會(huì)自動(dòng)的把各種組合都列好蒲祈,通過顏色表達(dá)哪些子條件已經(jīng)滿足,以及對(duì)應(yīng)滿足情況時(shí)其他獨(dú)立子條件的組織情況萝嘁。

圖5.1.1-2 MC/DC覆蓋率可視化

條件組合可視化展示

精準(zhǔn)測(cè)試對(duì)于多條件組合的代碼梆掸,采用了最新研發(fā)的條件組合可視化視圖進(jìn)行展示。視圖中牙言,用戶可以觀察到每個(gè)條件的真假運(yùn)行情況酸钦,以及條件與條件的組合運(yùn)行情況。對(duì)于測(cè)試人員來說咱枉,當(dāng)全部條件組合之間的T與F都完全滿足時(shí)卑硫,即可實(shí)現(xiàn)代碼全路徑覆蓋。

圖5.1.1-3條件組合可視化展示

5.1.2 新增代碼覆蓋率

敏捷模式下蚕断,因迭代頻繁其存量的代碼量很大欢伏,通常更關(guān)注增量覆蓋度量。精準(zhǔn)測(cè)試可以在程序新版本發(fā)布后亿乳,自動(dòng)計(jì)算新增(變更)代碼的范圍硝拧,給出新增代碼的覆蓋率。覆蓋率的分母中的函數(shù)都是變更和新增的函數(shù)葛假。與此同時(shí)障陶,基于反向追溯的功能,我們還可以給出新增代碼對(duì)應(yīng)的測(cè)試用例名稱桐款。當(dāng)某個(gè)新增函數(shù)沒有達(dá)到很高覆蓋率的時(shí)候,我們通過反向追溯的用例夷恍,可以判定因?yàn)槟男┕δ芊秶挠美O(shè)計(jì)不充分魔眨,導(dǎo)致了新增代碼覆蓋率不高媳维。


圖5.1.2 新增代碼覆蓋率

5.1.3 測(cè)試覆蓋率范圍篩選與再統(tǒng)計(jì)

在做精準(zhǔn)測(cè)試或統(tǒng)計(jì)覆蓋率時(shí),往往測(cè)試管理者遏暴、開發(fā)人員侄刽、測(cè)試人員為了保證測(cè)試覆蓋率的正確性,會(huì)對(duì)某個(gè)方法朋凉、類進(jìn)行查看或在統(tǒng)計(jì)中把代碼中一些廢棄的函數(shù)州丹、某些特殊情況下無法測(cè)試到的代碼進(jìn)行移除(至少是做相應(yīng)備注),從而讓測(cè)試代碼覆蓋統(tǒng)計(jì)率達(dá)到更加準(zhǔn)確杂彭。星云精準(zhǔn)測(cè)試在設(shè)計(jì)中墓毒,通過多種搜索、方法亲怠、類所计、模塊過濾等功能,把需要統(tǒng)計(jì)的范圍進(jìn)行縮小团秽、不需要統(tǒng)計(jì)的去除主胧。根據(jù)用戶的選擇,進(jìn)行覆蓋率再統(tǒng)計(jì)展示习勤。

圖5.1.3 測(cè)試覆蓋率范圍篩選與再統(tǒng)計(jì)

5.2 工作協(xié)同

5.2.1 打通開發(fā)與測(cè)試的隔閡

精準(zhǔn)測(cè)試打通開發(fā)與測(cè)試的協(xié)同工作通道踪栋,使得開發(fā)與測(cè)試能夠更好的溝通,提高工作效率图毕。傳統(tǒng)模式下夷都,開發(fā)人員關(guān)注的是代碼,測(cè)試人員關(guān)注的是業(yè)務(wù)角度的測(cè)試用例吴旋,彼此的直接關(guān)聯(lián)相對(duì)較弱损肛。開發(fā)和測(cè)試的溝通,基本就是采用自然語(yǔ)言荣瑟、Excel表格治拿、內(nèi)部系統(tǒng)等,存在交流信息不夠嚴(yán)謹(jǐn)?shù)膯栴}笆焰。例如測(cè)試工程師發(fā)現(xiàn)一個(gè)缺陷劫谅,提交到缺陷系統(tǒng),開發(fā)需要花費(fèi)大量時(shí)間再行理解嚷掠、準(zhǔn)備數(shù)據(jù)捏检、復(fù)現(xiàn)、調(diào)試不皆,直到最后的修正贯城。因?yàn)闃I(yè)務(wù)上的功能執(zhí)行和代碼并沒有明確的關(guān)系,通常測(cè)試工程師執(zhí)行完功能測(cè)試用例后霹娄,讓開發(fā)人員幫助評(píng)審也非常困難能犯。

若測(cè)試工程師提供的測(cè)試結(jié)果都是比較模糊的功能邏輯描述鲫骗,重現(xiàn)缺陷需要花費(fèi)大量的時(shí)間。開發(fā)人員修改代碼后踩晶,對(duì)于變更描述执泰,以及變更引起的關(guān)聯(lián)問題描述通常也都很模糊,導(dǎo)致測(cè)試又出現(xiàn)新問題渡蜻。

企業(yè)采用精準(zhǔn)測(cè)試技術(shù)后术吝,通過執(zhí)行用例可以直接追溯到對(duì)應(yīng)執(zhí)行的程序代碼塊,這樣的數(shù)據(jù)化溝通茸苇,將使開發(fā)人員和測(cè)試人員之間的協(xié)同工作效率大大提高排苍。

圖5.2.1** **協(xié)同模式

5.2.2 源碼動(dòng)靜態(tài)數(shù)據(jù)的統(tǒng)一

星云精準(zhǔn)測(cè)試通過插裝得到的項(xiàng)目靜態(tài)結(jié)構(gòu)信息,結(jié)合測(cè)試后采集到的測(cè)試數(shù)據(jù)税弃,能夠精準(zhǔn)記錄測(cè)試的過程纪岁,通過這些靜態(tài)數(shù)據(jù)和動(dòng)態(tài)數(shù)據(jù)視圖,便于開發(fā)人員基于圖形化結(jié)果進(jìn)行快速分析则果。

對(duì)于不懂開發(fā)的測(cè)試工程師幔翰,通過程序控制流程圖的圖形以及通過顏色表示的覆蓋信息,可以直接看到程序內(nèi)部漏測(cè)的邏輯是什么西壮,也可以通過這些結(jié)果直接與開發(fā)溝通遗增,進(jìn)行輔助用例和邏輯的補(bǔ)充。

因?yàn)閮?nèi)部邏輯的強(qiáng)追溯性并且能夠圖形化的打開款青,可以有力保證黑盒測(cè)試后期開發(fā)快速理解并解決瓶頸問題做修,保持全程測(cè)試的高效執(zhí)行。

圖5.2.2-1 源碼靜態(tài)結(jié)構(gòu)與動(dòng)態(tài)測(cè)試數(shù)據(jù)統(tǒng)一圖(函數(shù)調(diào)用圖)
圖5.2.2-2 源碼靜態(tài)結(jié)構(gòu)與動(dòng)態(tài)測(cè)試數(shù)據(jù)統(tǒng)一圖(控制流程圖)

精準(zhǔn)測(cè)試在程序靜態(tài)分析的基礎(chǔ)上抡草,可以對(duì)程序繪制可視化的圖形饰及,同時(shí)將動(dòng)態(tài)執(zhí)行的覆蓋信息染色到這些視圖上。對(duì)于不懂開發(fā)的測(cè)試人員也可以很清晰的看到程序的哪些結(jié)構(gòu)節(jié)點(diǎn)沒有被覆蓋到康震。例如圖形中藍(lán)色的節(jié)點(diǎn)是未覆蓋的節(jié)點(diǎn)燎含,綠色的是覆蓋的,因?yàn)榭刂屏鞒虉D本身有分支腿短,嵌套等各種關(guān)系屏箍,測(cè)試工程師可以很容易判斷出覆蓋的范圍大致是哪些。而如果有開發(fā)人員介入橘忱,可以更清晰地分析測(cè)試工程師執(zhí)行的用例所遺漏的程序邏輯赴魁。

圖 5.2.2-3源碼靜態(tài)結(jié)構(gòu)與動(dòng)態(tài)測(cè)試數(shù)據(jù)統(tǒng)一視圖

5.2.3 缺陷最后執(zhí)行時(shí)序分析

星云測(cè)試可自動(dòng)捕獲缺陷或崩潰發(fā)生時(shí),程序最后執(zhí)行的詳細(xì)路徑信息钝诚。缺陷發(fā)生后颖御,開發(fā)人員能夠直接看到缺陷出現(xiàn)時(shí),代碼執(zhí)行的時(shí)序和路徑信息凝颇,直接定位缺陷并排查問題潘拱,節(jié)省大量的溝通秉继、復(fù)現(xiàn)和調(diào)試的時(shí)間成本。

當(dāng)功能執(zhí)行發(fā)現(xiàn)缺陷后泽铛,在軟件示波器上可以立即按下“停止”鍵,那么最后執(zhí)行的代碼序列就可以被抓取到辑鲤,開發(fā)人員可快速定位缺陷最后執(zhí)行的50個(gè)代碼塊盔腔、條件、判斷的各種執(zhí)行信息月褥。

在下面視圖中弛随,我們可以根據(jù)標(biāo)號(hào)(從1到50)翎猛,看到代碼最后的運(yùn)行時(shí)序婶熬,在圖形里面的每一個(gè)綠色小方塊為一個(gè)代碼語(yǔ)句塊或者一個(gè)條件塔粒、判定荷鼠,在一個(gè)大方框下的綠色方塊代表一個(gè)函數(shù)內(nèi)部的代碼塊挥唠。經(jīng)過布局算法后產(chǎn)生下述圖形耘子。

缺陷最后執(zhí)行時(shí)序分析

5.2.4 智能缺陷定位

通常測(cè)試工程師只是負(fù)責(zé)發(fā)現(xiàn)缺陷过咬,缺陷的具體定位只能交由開發(fā)人員來執(zhí)行浪讳。精準(zhǔn)測(cè)試打破了測(cè)試部門的天花板佛猛,即通過內(nèi)部算法能夠?qū)⑷毕輰?duì)應(yīng)的代碼出錯(cuò)位置直接定位出來惑芭。這相當(dāng)于增加了測(cè)試深度,同時(shí)體現(xiàn)了測(cè)試數(shù)據(jù)和測(cè)試過程本身的價(jià)值继找。

對(duì)于測(cè)試工程師來說遂跟,只要發(fā)現(xiàn)用例相似而程序在輸出上有對(duì)錯(cuò)區(qū)分,就可以使用精準(zhǔn)測(cè)試的智能缺陷定位功能婴渡。精準(zhǔn)測(cè)試平臺(tái)通過測(cè)試人員在功能測(cè)試階段標(biāo)記的用例執(zhí)行狀態(tài)幻锁,以及軟件示波器自動(dòng)記錄的程序運(yùn)行頻譜,自動(dòng)分析缺陷的出現(xiàn)的代碼塊边臼。因精準(zhǔn)測(cè)試平臺(tái)可以獲取每個(gè)用例執(zhí)行時(shí)詳細(xì)的路徑追溯信息哄尔,測(cè)試工程師只要告知系統(tǒng)用例的狀態(tài),例如是否通過是否正確硼瓣,那么精準(zhǔn)測(cè)試內(nèi)部算法就會(huì)去根據(jù)正確和失敗的路徑差異進(jìn)行計(jì)算究飞,給出缺陷出現(xiàn)具體位置的可疑度排名。

這個(gè)功能可以大大增強(qiáng)測(cè)試在整個(gè)開發(fā)流程的參與度和測(cè)試數(shù)據(jù)價(jià)值堂鲤,也讓開發(fā)人員減少了自己去模擬場(chǎng)景的時(shí)間亿傅,快速提高開發(fā)和測(cè)試的協(xié)同和配合的效率。

  1. 對(duì)于同類測(cè)試用例瘟栖,經(jīng)過多組測(cè)試可給出非常有效的結(jié)果葵擎。

  2. 列出的可疑代碼,可直接通過測(cè)試過程給出半哟,提升測(cè)試的價(jià)值及產(chǎn)出酬滤。

圖5.2.4-1 通過功能測(cè)試頻譜法分析進(jìn)行智能缺陷定位

選擇可疑度算法签餐、得到可疑度高的代碼塊,關(guān)聯(lián)源碼后盯串,可根據(jù)代碼可視化查看具體位置氯檐。可疑度計(jì)算有一個(gè)公式体捏,并不復(fù)雜冠摄,通常每個(gè)代碼塊有2個(gè)變量,四種狀態(tài)值几缭。分別是:是否執(zhí)行河泳、是否通過,這樣每代碼塊都有一個(gè)可疑度值年栓。

星云精準(zhǔn)測(cè)試提供3種常用計(jì)算公式拆挥,供大家參考。

aep表示通過且覆蓋到該塊的測(cè)試用例的個(gè)數(shù)某抓、anp表示通過且未覆蓋到該塊的測(cè)試用例的個(gè)數(shù)纸兔、aef表示未通過且覆蓋到該塊的測(cè)試用例的個(gè)數(shù)、anf表示未通過且覆蓋到該塊的測(cè)試用例的個(gè)數(shù)否副。結(jié)果表示該塊的可疑度食拜。

圖5.2.4-2 智能缺陷定位展示*

5.3 精準(zhǔn)測(cè)試對(duì)敏捷迭代的支持

5.3.1 敏捷迭代下多版本白盒測(cè)試數(shù)據(jù)的聚合

在敏捷環(huán)境下由于版本迭代速度很快,每個(gè)不用的代碼版本上通常只能采集到少量的覆蓋率副编。一旦發(fā)布新版本负甸,就意味著代碼發(fā)生了變化,覆蓋率數(shù)據(jù)就需要重新采集痹届,但是每個(gè)版本采集的少量覆蓋率呻待,從分析層面上并沒有多大的意義。

針對(duì)以上問題队腐,精準(zhǔn)測(cè)試給出了“累計(jì)覆蓋率”的計(jì)算方法蚕捉。它將一系列迭代版本的覆蓋率,在最新的程序版本上進(jìn)行投影累加柴淘。用戶可將一個(gè)階段各個(gè)版本的覆蓋率累加起來進(jìn)行分析迫淹。算法的思路是以最新版本代碼為基礎(chǔ),以某個(gè)函數(shù)為單位为严,一直往前累加敛熬。直到這個(gè)函數(shù)在之前的某個(gè)版本代碼發(fā)生了變化,就停止累加第股。例如下圖函數(shù)A的4個(gè)版本的覆蓋都可以累加应民,是因?yàn)檫@個(gè)函數(shù)在4個(gè)版本中都沒有發(fā)生變化。而紅色的函數(shù)B只累加了3個(gè)版本,是因?yàn)閺陌姹緑2.0-2后這個(gè)函數(shù)發(fā)生了代碼變更诲锹。之前的代碼覆蓋就不能累加了繁仁。

星云精準(zhǔn)測(cè)試-敏捷環(huán)境下多版本白盒測(cè)試數(shù)據(jù)的聚合如圖所示。

圖5.3.1-1敏捷環(huán)境下多版本白盒測(cè)試數(shù)據(jù)的聚合

這種累加是在確保函數(shù)代碼沒有發(fā)生變化的情況下归园,在控制流上對(duì)相應(yīng)節(jié)點(diǎn)的覆蓋率進(jìn)行累加黄虱。例如下圖中3個(gè)版本,覆蓋率不同的分支和控制流庸诱,數(shù)據(jù)累加后可以看到所有分支都覆蓋到了悬钳。


圖5.3.1-2敏捷環(huán)境下多版本白盒測(cè)試數(shù)據(jù)的合并分析

5.3.2 聚類分析

星云精準(zhǔn)測(cè)試提供的聚類分析功能,根據(jù)測(cè)試用例的函數(shù)執(zhí)行剖面的向量化信息偶翅,對(duì)測(cè)試用例進(jìn)行精確的空間距離計(jì)算后執(zhí)行聚類分析。聚類結(jié)果可以分析被錯(cuò)誤執(zhí)行的用例碉渡,例如不相關(guān)的功能點(diǎn)聚類到一起聚谁,則說明其測(cè)試執(zhí)行可能存在錯(cuò)誤。

精準(zhǔn)測(cè)試提供的聚類分析功能滞诺,也可以輔助找到缺陷分布的密集區(qū)域形导。大部分情況下,缺陷分布會(huì)呈現(xiàn)2/8的聚集特性习霹。在時(shí)間緊張的情況下朵耕,我們可以通過聚類結(jié)果,每個(gè)類選取中心點(diǎn)以及周邊幾個(gè)用例淋叶。如果沒有問題阎曹,就可以去測(cè)試其他聚類,如果發(fā)現(xiàn)一個(gè)類缺陷概率高煞檩,那么這個(gè)類就需要進(jìn)行重點(diǎn)測(cè)試处嫌。通過聚類結(jié)果可以分析測(cè)試用例的分布密度等信息,輔助進(jìn)行測(cè)試決策斟湃。

圖5.3.2-1 測(cè)試密度

下圖中測(cè)試用例分類都有一個(gè)名字熏迹,這個(gè)名字是聚類結(jié)果中每個(gè)類中心點(diǎn)的測(cè)試用例名字,它基本標(biāo)定了這個(gè)類的功能點(diǎn)范圍凝赛。

聚類的大小代表了某個(gè)功能范圍測(cè)試是否足夠充分注暗。例如一些應(yīng)該重點(diǎn)測(cè)試的功能,聚類結(jié)果中的用例數(shù)應(yīng)該很多墓猎;一些小眾的功能捆昏,聚類中用例數(shù)應(yīng)該比較少。一個(gè)類中用例數(shù)越多毙沾,這個(gè)類圓圈比例越大屡立,反之則越小。在聚類的基礎(chǔ)上,我們也可以對(duì)一個(gè)類中的等價(jià)類用例進(jìn)行分析膨俐。是等價(jià)類的用例勇皇,會(huì)分成一組專門展示。

圖5.3.2-2 聚類分析

5.3.3 覆蓋率漏洞檢出

在敏捷迭代過程中焚刺,通常沒有充分的時(shí)間將所有函數(shù)的覆蓋率都達(dá)到一個(gè)很高的層級(jí)(Level)敛摘。精準(zhǔn)測(cè)試結(jié)合代碼結(jié)構(gòu)和動(dòng)態(tài)數(shù)據(jù)綜合分析,通過計(jì)算直接篩選出潛在的高危測(cè)試漏洞乳愉,可以在短期內(nèi)確定高危漏測(cè)模塊并針對(duì)性的解決兄淫,幫助用戶快速找到嚴(yán)重缺陷。

  1. 當(dāng)測(cè)試時(shí)間不充分的時(shí)候蔓姚,執(zhí)行完黑盒測(cè)試以后捕虽,先看測(cè)試漏洞列表,里面顯示了通過靜態(tài)信息和動(dòng)態(tài)信息計(jì)算坡脐,得到的最高風(fēng)險(xiǎn)的漏測(cè)點(diǎn)模塊泄私。

  2. 我們可以通過復(fù)雜度進(jìn)行計(jì)算,因?yàn)閺?fù)雜度高的模塊一般來講备闲,它是相對(duì)重要的模塊并且邏輯復(fù)雜晌端,如果動(dòng)態(tài)覆蓋比較低,我們會(huì)優(yōu)先篩選出來進(jìn)行排序恬砂。

  3. 處于調(diào)用和被調(diào)用中間的模塊咧纠,因?yàn)閷儆谥虚g關(guān)鍵模塊,我們也會(huì)計(jì)算它的扇入扇出泻骤,和動(dòng)態(tài)覆蓋率信息漆羔。如果它的比率很高,將被認(rèn)為是高風(fēng)險(xiǎn)模塊狱掂,被篩選出來進(jìn)行排序钧椰。回歸時(shí)符欠,應(yīng)優(yōu)先測(cè)試風(fēng)險(xiǎn)指數(shù)高的高危模塊嫡霞,補(bǔ)充他們的覆蓋率。

圖5.3.3漏洞檢測(cè)列表

5.3.4 最小測(cè)試用例集

精準(zhǔn)測(cè)試也可以對(duì)用例集進(jìn)行優(yōu)化希柿。比如用戶有大量用例的情況下诊沪,尤其是自動(dòng)化用例集含有長(zhǎng)期維護(hù)的冗余用例。精準(zhǔn)測(cè)試平臺(tái)可以對(duì)很多重復(fù)用例的邏輯進(jìn)行篩選和過濾曾撤,優(yōu)化出滿足當(dāng)前總體覆蓋的最小用例集端姚。


圖5.3.4星云測(cè)試最小測(cè)試用例集

第六章 精準(zhǔn)測(cè)試支持不同剖面的分析報(bào)告

在時(shí)間有限,經(jīng)費(fèi)有限挤悉,資源有限的情況下渐裸,我們既要考慮測(cè)試是否充分,也要顧及時(shí)間、人員昏鹃、設(shè)備配置等限制條件尚氛。精準(zhǔn)測(cè)試可以支持企業(yè)不同剖面的軟件質(zhì)量分析需求。

6.1 詳細(xì)的測(cè)試總結(jié)報(bào)告內(nèi)容

  1. 測(cè)試資源分析:多少人洞渤,多長(zhǎng)時(shí)間阅嘶、整體測(cè)試有效率及執(zhí)行率

  2. 測(cè)試結(jié)果分析:描述需求的測(cè)試結(jié)果,系統(tǒng)實(shí)現(xiàn)了哪些功能點(diǎn)载迄,哪些還沒有實(shí)現(xiàn)

  3. 缺陷情況分析:缺陷復(fù)現(xiàn)讯柔、缺陷處理、缺陷數(shù)量护昧、屬性魂迄、狀態(tài)分布,缺陷預(yù)防惋耙、缺陷收斂度

  4. 度量指標(biāo)分析:測(cè)試覆蓋率捣炬、測(cè)試執(zhí)行率、測(cè)試執(zhí)行通過率怠晴、測(cè)試缺陷解決率

  5. 效率指標(biāo)分析:進(jìn)度偏離度、缺陷發(fā)現(xiàn)率浴捆、用例執(zhí)行效率和質(zhì)量等

  6. 高風(fēng)險(xiǎn)識(shí)別與排序:注明當(dāng)前項(xiàng)目中面臨的最嚴(yán)重蒜田、最優(yōu)先的問題

  7. 整體評(píng)估:哪些功能已經(jīng)實(shí)現(xiàn),哪些功能還未實(shí)現(xiàn)选泻,還遺留哪些問題冲粤,遺留缺陷分析

  8. 優(yōu)化建議:測(cè)試過程優(yōu)化,從測(cè)試組的角度為測(cè)試工作提出建議

圖6.1 星云測(cè)試的差異報(bào)告分析

6.2 高級(jí)回歸測(cè)試報(bào)告

對(duì)前期測(cè)試執(zhí)行階段發(fā)現(xiàn)的問題页眯、缺陷集中的功能梯捕,業(yè)務(wù)比較重要且使用頻繁的功能進(jìn)行再次測(cè)試,確保系統(tǒng)上線后窝撵,已被修復(fù)的問題不會(huì)重新出現(xiàn)傀顾,重要的、高優(yōu)先級(jí)的業(yè)務(wù)不會(huì)發(fā)生錯(cuò)誤碌奉。

圖6.2智能回歸測(cè)試用例選取

6.3 測(cè)試用例庫(kù)評(píng)估報(bào)告

軟件測(cè)試的主要工作短曾,是把軟件需求映射為軟件測(cè)試。測(cè)試用例是軟件測(cè)試全過程的核心赐劣,也是測(cè)試執(zhí)行環(huán)節(jié)的基本依據(jù)嫉拐。精準(zhǔn)測(cè)試充分滿足軟件測(cè)試執(zhí)行過程中的各種指標(biāo):

  1. 測(cè)試用例執(zhí)行進(jìn)度

  2. 測(cè)試用例通過率

  3. 測(cè)試用例顆粒度分析

  4. 識(shí)別無用的測(cè)試用例

  5. 識(shí)別冗余的測(cè)試用例

  6. 從側(cè)面提供增添新測(cè)試用例的依據(jù)

  7. 從側(cè)面提供調(diào)整測(cè)試用例庫(kù)結(jié)構(gòu)的依據(jù)

圖6.3 測(cè)試用例最小集

6.4 精準(zhǔn)測(cè)試的VIP企業(yè)內(nèi)網(wǎng)私有云可信化報(bào)表

星云精準(zhǔn)測(cè)試提供多個(gè)剖面的高可靠性測(cè)試質(zhì)量進(jìn)度追蹤報(bào)表。當(dāng)客戶端錄入測(cè)試用例并采集數(shù)據(jù)后魁兼,用戶內(nèi)網(wǎng)web端將產(chǎn)生實(shí)時(shí)婉徘、詳實(shí)的測(cè)試數(shù)據(jù)分析報(bào)表。

該報(bào)表與普通的測(cè)試管理系統(tǒng)不同:普通的測(cè)試管理系統(tǒng)人為錄入數(shù)據(jù)的情況比較多,使得數(shù)據(jù)狀態(tài)的真實(shí)性沒辦法確切保證盖呼。精準(zhǔn)測(cè)試提供的報(bào)表儒鹿,底層數(shù)據(jù)來自于執(zhí)行測(cè)試用例時(shí)候代碼數(shù)據(jù)的采集,通過專用底層接口上傳塌计,完全無法進(jìn)行數(shù)據(jù)調(diào)整或者篡改和偽造挺身。

  1. 通過瀏覽器登錄測(cè)試系統(tǒng),選擇需要跟蹤的項(xiàng)目锌仅,就可以實(shí)時(shí)對(duì)整個(gè)測(cè)試的質(zhì)量章钾、進(jìn)度、人員進(jìn)行精準(zhǔn)的分析和管理热芹。

  2. 企業(yè)內(nèi)網(wǎng)云端管理系統(tǒng)展示的數(shù)據(jù)基于精準(zhǔn)測(cè)試數(shù)據(jù)的分析贱傀,所有數(shù)據(jù)原生精確,支持移動(dòng)測(cè)試+本地測(cè)試伊脓。

  3. 測(cè)試團(tuán)隊(duì)府寒、開發(fā)團(tuán)隊(duì)、甲方負(fù)責(zé)人等多種角色都可以登錄系統(tǒng)报腔,從各個(gè)層面對(duì)測(cè)試株搔、軟件質(zhì)量進(jìn)行分析。

圖6.4項(xiàng)目匯總展示

6.4.1 精準(zhǔn)測(cè)試的VIP企業(yè)內(nèi)網(wǎng)私有云-測(cè)試效率的直觀展示

精準(zhǔn)測(cè)試報(bào)告可直觀分析每天的測(cè)試效率纯蛾,通過代碼模塊和復(fù)雜度關(guān)系圖纤房,看到函數(shù)群落測(cè)試情況分布及趨勢(shì),可直觀精準(zhǔn)識(shí)別系統(tǒng)測(cè)試所處階段翻诉。

每日增長(zhǎng)覆蓋率報(bào)表:管理者可以清晰的看到整個(gè)團(tuán)隊(duì)的效率趨勢(shì)變化炮姨,比如剛開始測(cè)試的時(shí)候覆蓋率增長(zhǎng)快,到了黑盒測(cè)試瓶頸點(diǎn)上升就很慢了碰煌。這時(shí)候精準(zhǔn)測(cè)試技術(shù)就開始發(fā)力舒岸,可以清晰地看到它在彌補(bǔ)效率損失方面的優(yōu)勢(shì)。

覆蓋率和復(fù)雜度報(bào)表:可以很直觀地看到測(cè)試的質(zhì)量深度芦圾,例如在測(cè)試不充分的時(shí)候蛾派,復(fù)雜度高的模塊通常覆蓋率都比較低,統(tǒng)計(jì)點(diǎn)分布自一個(gè)左上角的區(qū)域(表示高復(fù)雜度+低覆蓋率)个少,而當(dāng)測(cè)試深入進(jìn)行碍脏,這些點(diǎn)就會(huì)向右側(cè)移動(dòng)。管理者可以非常直觀的看到系統(tǒng)測(cè)試的充分程度和上線的質(zhì)量把握稍算。

圖6.4.1-1 覆蓋率每日增長(zhǎng)趨勢(shì)圖與黑盒測(cè)試瓶頸

圖6.4.1-2 測(cè)試效率換檔點(diǎn)與測(cè)試深度趨勢(shì)觀察表

6.4.2 精準(zhǔn)測(cè)試的VIP企業(yè)內(nèi)網(wǎng)私有云-測(cè)試用例排行圖

測(cè)試用例排行分析報(bào)表:可直觀展示參與測(cè)試工程師所執(zhí)行的用例數(shù)典尾、通過率和缺陷率,真實(shí)記錄并分析每個(gè)測(cè)試用例的實(shí)效性糊探。星云精準(zhǔn)測(cè)試-測(cè)試工程師實(shí)效精準(zhǔn)分析系統(tǒng)钾埂,將參與的測(cè)試工程師所執(zhí)行的用例從邏輯覆蓋映射到代碼覆蓋河闰,真實(shí)記錄并分析每個(gè)測(cè)試參與者的工作實(shí)效。以邏輯覆蓋為基準(zhǔn)的而不是用例數(shù)量為考核標(biāo)準(zhǔn)褥紫。

圖6.4.2 測(cè)試用例排行圖

6.4.3 精準(zhǔn)測(cè)試的VIP企業(yè)私有云-測(cè)試用例雙向追溯與覆蓋率可視化

通過用戶的內(nèi)網(wǎng)精準(zhǔn)測(cè)試web報(bào)表姜性,可以追蹤每個(gè)測(cè)試用例執(zhí)行的覆蓋率和執(zhí)行的函數(shù)路徑信息,那些沒有真正執(zhí)行的用例髓考,將無法偽造其對(duì)應(yīng)的覆蓋率信息部念。

圖6.4.3-1測(cè)試用例雙向追溯

追蹤每個(gè)用例執(zhí)行的函數(shù)信息以及具體的代碼覆蓋信息,在web端展示代碼覆蓋率視圖氨菇,更具體的分析用例的執(zhí)行情況儡炼。

圖6.4.3-1覆蓋率可視化

6.5 精準(zhǔn)測(cè)試在數(shù)字化轉(zhuǎn)型中的作用

1、 完成數(shù)字化轉(zhuǎn)型查蓉。提高軟件交付質(zhì)效乌询、實(shí)現(xiàn)快速迭代持續(xù)交付,有效呈現(xiàn)測(cè)試價(jià)值豌研。

2妹田、 培養(yǎng)業(yè)務(wù)和測(cè)試的“兩棲專家”。從不同角度提供有價(jià)值的數(shù)據(jù)依據(jù)鹃共,使測(cè)試團(tuán)隊(duì)既能熟悉業(yè)務(wù)知識(shí)鬼佣、業(yè)務(wù)場(chǎng)景,又具備較強(qiáng)的業(yè)務(wù)分析評(píng)估和整合創(chuàng)新的能力霜浴。

3晶衷、 數(shù)據(jù)化交付。實(shí)現(xiàn)企業(yè)內(nèi)部云平臺(tái)建設(shè)坷随、明確各工程活動(dòng)環(huán)節(jié)的交付物和交付標(biāo)準(zhǔn)房铭,并將質(zhì)量驗(yàn)證標(biāo)準(zhǔn)驻龟、驗(yàn)證手段和監(jiān)控工具嵌入流水線温眉,保證各環(huán)節(jié)的有效性,對(duì)質(zhì)量趨勢(shì)進(jìn)行提示和預(yù)警翁狐,及早發(fā)現(xiàn)缺陷类溢,實(shí)現(xiàn)質(zhì)量可視、過程可追溯露懒、可審計(jì)闯冷。

4、 建立測(cè)試數(shù)據(jù)資源池懈词,整合測(cè)試資產(chǎn)蛇耀。利用大數(shù)據(jù)、人工智能等技術(shù)建立質(zhì)量智能分析模型等坎弯,為“產(chǎn)品質(zhì)量智能分析平臺(tái)”提供有效數(shù)據(jù)纺涤。

5译暂、 減少因人員變動(dòng)而產(chǎn)生的成本影響。一般外包人員的流失率普遍為20-40%左右撩炊,重新招聘和培養(yǎng)外永,將對(duì)項(xiàng)目進(jìn)度及成本進(jìn)度,造成很大影響拧咳。

第七章 精準(zhǔn)測(cè)試企業(yè)級(jí)方案

7.1 DevOps微服務(wù)架構(gòu)下具有代碼級(jí)穿透能力的精準(zhǔn)測(cè)試

微服務(wù)是DevOps場(chǎng)景下熱門的開發(fā)框架伯顶,在大型項(xiàng)目中被廣泛采用。它把一個(gè)大型的單個(gè)應(yīng)用程序和服務(wù)拆分為數(shù)十個(gè)的支持微服務(wù)骆膝,獨(dú)立部署祭衩、互相隔離,通過擴(kuò)展組件來處理功能瓶頸問題谭网,比傳統(tǒng)的應(yīng)用程序更能有效利用計(jì)算資源汪厨。微服務(wù)之間無需關(guān)心對(duì)方的模型,它通過事先約定好的接口進(jìn)行數(shù)據(jù)流轉(zhuǎn)愉择,使業(yè)務(wù)可以高效響應(yīng)市場(chǎng)變化劫乱。

微服務(wù)一個(gè)明顯的表象就是隨著服務(wù)的增多,傳統(tǒng)測(cè)試模式受到很大制約锥涕,無法有效進(jìn)行下去衷戈,威脅到整體系統(tǒng)質(zhì)量。所有 J2EE 代碼層白盒采集工具都無法區(qū)分覆蓋和具體功能的對(duì)應(yīng)關(guān)系层坠,只能以后臺(tái)模式“籠統(tǒng)”的采集一個(gè)階段的總的覆蓋殖妇,無法滿足對(duì)于DevOps下對(duì)于故障定位、深度測(cè)試分析以及敏捷發(fā)布算法的要求破花。星云測(cè)試的分布式微服務(wù)精準(zhǔn)測(cè)試解決方案谦趣,是目前市場(chǎng)上唯一可達(dá)到在復(fù)雜分布式系統(tǒng)中,跨多個(gè)服務(wù)器進(jìn)行代碼白盒級(jí)分析座每、實(shí)現(xiàn)請(qǐng)求分布式追蹤的測(cè)試平臺(tái)前鹅。

精準(zhǔn)測(cè)試通過分布式追蹤系統(tǒng)支持分布式系統(tǒng)的用例和代碼的關(guān)聯(lián),首先在瀏覽器的請(qǐng)求端注入一個(gè)用戶標(biāo)簽峭梳,通常這個(gè)用戶標(biāo)簽和精準(zhǔn)測(cè)試客戶端的登錄用戶是一致的舰绘。這個(gè)用戶標(biāo)簽會(huì)一直帶到實(shí)際請(qǐng)求的執(zhí)行線程里面,然后這個(gè)執(zhí)行線程里面配合插裝的代碼葱椭,發(fā)出來的信息就知道是哪個(gè)用戶對(duì)應(yīng)的哪個(gè)用例執(zhí)行的代碼了捂寿。同時(shí)分布式系統(tǒng)的話,如果有后續(xù)節(jié)點(diǎn)的調(diào)用這個(gè)標(biāo)簽會(huì)繼續(xù)根據(jù)支持的協(xié)議附加用戶標(biāo)簽信息往后傳遞孵运。

我們目前支持的協(xié)議包括httpclient秦陋、dubbo、spring cloud治笨、web service以及消息隊(duì)列也支持線程池內(nèi)部不同線程的傳遞等等驳概,對(duì)于我們附加的標(biāo)簽粪小,可以在這些協(xié)議上繼續(xù)往后傳遞,通常是在協(xié)議上附加我們的用戶標(biāo)簽信息來實(shí)現(xiàn)抡句。對(duì)于用戶自定義的協(xié)議或者小眾的開發(fā)協(xié)議探膊,用戶可以基于我們的接口自定義。

圖7.1-1 微服務(wù)穿透方案
圖7.1-2 微服務(wù)模塊調(diào)用關(guān)系圖

7.2 “靜默式”精準(zhǔn)測(cè)試待榔,讓企業(yè)無縫完成黑盒測(cè)試的升級(jí)對(duì)接

精準(zhǔn)測(cè)試最核心的技術(shù)關(guān)鍵就是:用例和相關(guān)執(zhí)行代碼之間有很強(qiáng)的對(duì)應(yīng)和追溯關(guān)系逞壁。這個(gè)強(qiáng)追溯關(guān)系的建立,通過精準(zhǔn)測(cè)試專屬客戶端上的“軟件示波器“锐锣,用人工點(diǎn)擊開始和結(jié)束按鈕來標(biāo)記測(cè)試用例的執(zhí)行腌闯,進(jìn)而確定對(duì)應(yīng)代碼執(zhí)行路徑的邊界。

目前很多公司內(nèi)部都有開發(fā)測(cè)試管理系統(tǒng)或者類似于JIRA這樣的通用產(chǎn)品來管理和執(zhí)行用例雕憔,如果同步使用精準(zhǔn)測(cè)試客戶端姿骏,則有指令重復(fù)之嫌。因此斤彼,星云精準(zhǔn)測(cè)試做了具有深遠(yuǎn)意義的客戶化改進(jìn)-“靜默式”精準(zhǔn)測(cè)試分瘦。

大部分的測(cè)試管理系統(tǒng),測(cè)試過程中會(huì)點(diǎn)擊開始和結(jié)束按鈕用于界定測(cè)試用例的邊界琉苇,這和精準(zhǔn)測(cè)試中的示波器操作是一致的嘲玫。我們做了一個(gè)接口,使測(cè)試人員在“用例管理系統(tǒng)”中選擇某個(gè)用例執(zhí)行到切換到另外一個(gè)用例的過程并扇,和精準(zhǔn)測(cè)試示波器進(jìn)行無感對(duì)接去团,測(cè)試工程師不用登錄到精準(zhǔn)測(cè)試客戶端,即可實(shí)現(xiàn)“靜默式”精準(zhǔn)測(cè)試的數(shù)據(jù)采集穷蛹⊥僚悖“測(cè)試管理系統(tǒng)”的用例會(huì)通過這個(gè)內(nèi)部接口,自動(dòng)的和精準(zhǔn)測(cè)試平臺(tái)建立連接肴熏。

7.2中是一個(gè)基于excel用例管理的對(duì)接的方案鬼雀,測(cè)試工程師只要在用例的表格上用鼠標(biāo)點(diǎn)一下當(dāng)前要執(zhí)行的用例條目,通過VBA接口就可以通知示波器當(dāng)前某個(gè)用例即將開始測(cè)試扮超,使用起來非常簡(jiǎn)單取刃。

精準(zhǔn)測(cè)試也可以為JIRA這種企業(yè)級(jí)的管理平臺(tái)提供插件進(jìn)行對(duì)接蹋肮。如果是用戶自己開發(fā)的測(cè)試管理系統(tǒng)出刷,也可以根據(jù)精準(zhǔn)測(cè)試提供的接口文檔做相應(yīng)的平滑對(duì)接。

圖7.2 與excel表格對(duì)接

7.3 為自動(dòng)化測(cè)試裝上精準(zhǔn)測(cè)試的“翅膀”

現(xiàn)代的專業(yè)軟件測(cè)試中心坯辩,隨著項(xiàng)目迭代馁龟,通常針對(duì)每個(gè)系統(tǒng)構(gòu)建了大量的自動(dòng)化測(cè)試用例集,而啟動(dòng)一次全量的自動(dòng)化測(cè)試以CI級(jí)觸發(fā)漆魔,使之大比率通過坷檩,非常困難却音。測(cè)試工程師們常常需要投入很高的成本,把大量精力花在自動(dòng)化用例失敗排查上面矢炼,然而有效發(fā)現(xiàn)BUG的概率依然很低。在反復(fù)排查無果、心神俱疲的情況下雾叭,很多單位幾乎對(duì)自動(dòng)化產(chǎn)生絕望之心料身,視之為雞肋,用之無用胰锌,棄之可惜骗绕,讓測(cè)試中心極為頭疼。

如何讓自動(dòng)化用例發(fā)揮它們應(yīng)有的效用资昧,讓QA工作不那么沉重呢酬土?星云測(cè)試針對(duì)這一難題,進(jìn)行了精準(zhǔn)測(cè)試與自動(dòng)化測(cè)試無縫對(duì)接的技術(shù)方案研發(fā)格带。經(jīng)過大量企業(yè)實(shí)施與驗(yàn)證撤缴,精準(zhǔn)測(cè)試的數(shù)據(jù)流最終可以“無感”對(duì)接到自動(dòng)化測(cè)試中,極大擴(kuò)展了自動(dòng)化測(cè)試的優(yōu)勢(shì)叽唱,徹底改進(jìn)了自動(dòng)化測(cè)試變更管理難的短板腹泌。

這一技術(shù)方案的推出,就像給自動(dòng)化測(cè)試裝上“精準(zhǔn)測(cè)試”的眼睛和翅膀尔觉,瞬間就具備了多種飛躍性功能凉袱。比如:

  1. 自動(dòng)化測(cè)試用例與源碼自動(dòng)建立關(guān)聯(lián)

  2. 同步進(jìn)行智能回歸用例選取

  3. 有效縮小自動(dòng)化測(cè)試執(zhí)行范圍

  4. 即時(shí)分析需要進(jìn)行維護(hù)的測(cè)試用例集合

  5. 全自動(dòng)追蹤每個(gè)測(cè)試用例的執(zhí)行代碼路徑

  6. 當(dāng)自動(dòng)化執(zhí)行結(jié)束后可輔助直接定位自動(dòng)化用例的代碼出錯(cuò)點(diǎn)

  7. 對(duì)自動(dòng)化測(cè)試用例集進(jìn)行分析,例如聚類分析侦铜,以及最小用例集合分析等

  8. 對(duì)測(cè)試用例集的優(yōu)化給出指導(dǎo)意見

  9. 給出測(cè)試用例集運(yùn)行的總體覆蓋率信息

  10. 協(xié)助有效的對(duì)用例集進(jìn)行增補(bǔ)

  11. 增量代碼覆蓋率分析等等专甩。

精準(zhǔn)測(cè)試系統(tǒng)提供標(biāo)準(zhǔn)接口,可以很容易的與企業(yè)原有的自動(dòng)化平臺(tái)進(jìn)行對(duì)接钉稍,當(dāng)執(zhí)行完自動(dòng)化測(cè)試后涤躲,可以得到每個(gè)自動(dòng)化用例對(duì)應(yīng)的代碼邏輯信息、相應(yīng)功能模塊等贡未,為自動(dòng)化測(cè)試提供有效的價(jià)值疊加與放大种樱。

7.3.1 精準(zhǔn)測(cè)試提供HTTP請(qǐng)求中轉(zhuǎn)臺(tái)直連對(duì)接模式方案

精準(zhǔn)測(cè)試提供HTTP請(qǐng)求接口給自動(dòng)化或測(cè)試管理平臺(tái),通過HTTP請(qǐng)求將測(cè)試用例的創(chuàng)建俊卤、運(yùn)行嫩挤、結(jié)束與查看測(cè)試用例的覆蓋情況命令,發(fā)給星云精準(zhǔn)測(cè)試自動(dòng)化平臺(tái)的相應(yīng)接口消恍,進(jìn)行測(cè)試用例的創(chuàng)建錄入與停止功能岂昭,并通過該接口進(jìn)行覆蓋率信息返回。

圖7.3.1-1 精準(zhǔn)測(cè)試HTTP接口請(qǐng)求中轉(zhuǎn)臺(tái)直連對(duì)接模式
圖7.3.1-2 精準(zhǔn)測(cè)試與自動(dòng)化對(duì)接后推薦自動(dòng)化用例場(chǎng)景

7.3.2 實(shí)現(xiàn)“手自一體”的高效解決方案

  1. 精準(zhǔn)測(cè)試將自動(dòng)化測(cè)試腳本與“業(yè)務(wù)全景圖”和測(cè)試用例庫(kù)建立關(guān)聯(lián)狠怨。

  2. 在測(cè)試設(shè)計(jì)约啊、測(cè)試執(zhí)行邑遏、管理和質(zhì)量監(jiān)控等環(huán)節(jié)實(shí)現(xiàn)了“手自一體”的一體化管理理念。

  3. 構(gòu)建測(cè)試數(shù)據(jù)庫(kù)恰矩,實(shí)現(xiàn)測(cè)試數(shù)據(jù)統(tǒng)籌分配和復(fù)用记盒。

  4. 組建“精準(zhǔn)自動(dòng)化測(cè)試執(zhí)行云平臺(tái)”,實(shí)現(xiàn)24小時(shí)測(cè)試目標(biāo)外傅。

7.4 星云測(cè)試插樁編譯流程與CI集成

對(duì)于精準(zhǔn)測(cè)試的插樁代碼是直接靜態(tài)植入了發(fā)布包孽鸡,只能供測(cè)試使用,不能用戶生產(chǎn)發(fā)布栏豺。通常精準(zhǔn)測(cè)試與CI對(duì)接彬碱,每發(fā)布一個(gè)版本會(huì)產(chǎn)生兩個(gè)分支一個(gè)是發(fā)布生產(chǎn)的分支,一個(gè)是發(fā)布給測(cè)試環(huán)境的分支奥洼,他們的代碼基線是一致的巷疼,就是一個(gè)通過精準(zhǔn)測(cè)試做了插樁,另一個(gè)沒有做插樁灵奖,他們的功能和版本都是一致的嚼沿。插樁后的代碼運(yùn)行后關(guān)聯(lián)代碼也是關(guān)聯(lián)同樣基線版本的代碼就可以了。

圖7.4 精準(zhǔn)測(cè)試與CI對(duì)接方案

第八章 知識(shí)庫(kù)累積

8.1 精準(zhǔn)測(cè)試數(shù)據(jù)的價(jià)值

星云測(cè)試采集的測(cè)試數(shù)據(jù)和插裝后分析到的靜態(tài)結(jié)構(gòu)信息瓷患,將作為大型企業(yè)系統(tǒng)大數(shù)據(jù)分析的基礎(chǔ)數(shù)據(jù)骡尽。

星云精準(zhǔn)測(cè)試-測(cè)試數(shù)據(jù)價(jià)值

(1)代碼級(jí)的程序靜態(tài)信息以及測(cè)試用例對(duì)應(yīng)的海量動(dòng)態(tài)測(cè)試的數(shù)據(jù),這些多維度數(shù)據(jù)將作為大型企業(yè)系統(tǒng)大數(shù)據(jù)分析的基礎(chǔ)數(shù)據(jù)擅编。

(2)對(duì)本企業(yè)大量軟件質(zhì)量數(shù)據(jù)進(jìn)行挖掘和分析攀细,找到相關(guān)質(zhì)量技術(shù)標(biāo)準(zhǔn)衡量的合理區(qū)間,避免常規(guī)錯(cuò)誤爱态。

(3)通過數(shù)據(jù)分析確定優(yōu)異的開發(fā)方法和技術(shù)構(gòu)件谭贪。

(4)通過質(zhì)量大數(shù)據(jù)的分析結(jié)果,選擇更加合理的技術(shù)方法锦担,在設(shè)計(jì)階段避免已知的缺陷俭识。

8.2 精準(zhǔn)測(cè)試智能回歸測(cè)試用例智能選取

在大型軟件的迭代過程中,測(cè)試最大的壓力來自于回歸測(cè)試洞渔,因?yàn)閷?duì)于大型系統(tǒng)很難說得清楚新的變更可能會(huì)意外的影響那些其它功能套媚。國(guó)際上有相關(guān)統(tǒng)計(jì):每修改6行代碼就會(huì)引入一個(gè)未知的缺陷。而要對(duì)回歸范圍進(jìn)行分析通常必須是對(duì)系統(tǒng)很了解的架構(gòu)師磁椒、高級(jí)開發(fā)人員或高級(jí)業(yè)務(wù)人員才能夠分析堤瘤,因?yàn)槌绦虻墓δ芎退膶?shí)現(xiàn)就像是一張蜘蛛網(wǎng)錯(cuò)綜復(fù)雜,即使高級(jí)人員也很難分析的非常清楚衷快。精準(zhǔn)測(cè)試在記錄了所有用例對(duì)應(yīng)的代碼邏輯的基礎(chǔ)上宙橱,在新版本發(fā)布的時(shí)候通過分析用例執(zhí)行的代碼路徑的變更范圍姨俩,就可以自動(dòng)計(jì)算出來回歸用例的范圍蘸拔。它的算法邏輯和人的分析非常相似师郑,但可以進(jìn)一步提供非常高效率、海量數(shù)據(jù)的穩(wěn)定分析輸出调窍,相當(dāng)于把人的腦力算力轉(zhuǎn)換成了計(jì)算機(jī)算力宝冕。

圖8.2-1 精準(zhǔn)測(cè)試智能回歸測(cè)試用例的選取

(1)適應(yīng)快速的版本迭代周期,適應(yīng)龐大的工程項(xiàng)目邓萨。

(1)(2)在回歸測(cè)試時(shí)地梨,自動(dòng)篩選測(cè)試用例,大大減少了回歸測(cè)試的時(shí)間以及風(fēng)險(xiǎn)缔恳。

(1)(3)降低了傳統(tǒng)人工回歸分析產(chǎn)生的測(cè)試盲點(diǎn)宝剖。

(1)(4)精確計(jì)算回歸用例的權(quán)重,測(cè)試人員在時(shí)間有限的情況下可以重點(diǎn)回歸受改動(dòng)影響最大的用例歉甚。

圖8.2-2 回歸測(cè)試用例選取界面

8.3 精準(zhǔn)測(cè)試在回歸測(cè)試中的性能評(píng)估

回歸性能万细,通常一般回歸都是基于人對(duì)于系統(tǒng)的判斷來做的。由人來進(jìn)行回歸用例集的判斷纸泄,隨著時(shí)間的延續(xù)赖钞,記憶將不可逆轉(zhuǎn)地發(fā)生損耗并丟失,加之原團(tuán)隊(duì)人員的不斷變更聘裁,老的系統(tǒng)維護(hù)越來越難雪营,修改引入新的缺陷要越來越難風(fēng)險(xiǎn)。

通過星云精準(zhǔn)測(cè)試企業(yè)離線平臺(tái)衡便,內(nèi)置程序?qū)⒊掷m(xù)献起、高效地全自動(dòng)記錄本企業(yè)自有的各系統(tǒng)測(cè)試用例和代碼的關(guān)系數(shù)據(jù),不用人工干預(yù)和記錄镣陕。使用一段時(shí)間后征唬,企業(yè)會(huì)得到越來越精確的數(shù)據(jù),若加以有效利用茁彭,將發(fā)揮相關(guān)元數(shù)據(jù)及大數(shù)據(jù)的爆發(fā)性的價(jià)值总寒。

圖8.3 智能回歸測(cè)試用例選取的性能評(píng)估

8.4 精準(zhǔn)測(cè)試形成的測(cè)試資產(chǎn)

測(cè)試資產(chǎn):即與測(cè)試相關(guān)的技術(shù)、文檔理肺、數(shù)據(jù)摄闸、腳本、管理妹萨、成本年枕、進(jìn)度、可用資源等乎完。測(cè)試資產(chǎn)是測(cè)試工作過程中的產(chǎn)出熏兄,是項(xiàng)目的工作成果。建立測(cè)試資產(chǎn)庫(kù)是測(cè)試資產(chǎn)復(fù)用的重要前提條件。

1摩桶、 經(jīng)過實(shí)際驗(yàn)證桥状,高效甄別出可復(fù)用的大量的測(cè)試用例和測(cè)試數(shù)據(jù),可大幅縮短評(píng)審時(shí)間硝清。新項(xiàng)目在測(cè)試過程中辅斟,如果需要測(cè)試用例或者測(cè)試數(shù)據(jù),可直接在測(cè)試資產(chǎn)庫(kù)獲取芦拿,不必再花費(fèi)大量的時(shí)間和人力重新編寫士飒。

2、 測(cè)試資產(chǎn)庫(kù)適用于維護(hù)型的項(xiàng)目蔗崎。功能點(diǎn)經(jīng)過修改后酵幕,通過測(cè)試資產(chǎn)的復(fù)用,只需要更新經(jīng)過變動(dòng)的功能點(diǎn)測(cè)試用例缓苛,其它的未經(jīng)更改的功能點(diǎn)測(cè)試用例就可以直接使用裙盾。通過這樣的測(cè)試資產(chǎn)的復(fù)用,可以大幅提高測(cè)試效率和測(cè)試質(zhì)量他嫡,節(jié)約測(cè)試成本番官。

3、 測(cè)試資產(chǎn)庫(kù)的建立有助于保護(hù)測(cè)試項(xiàng)目的勞動(dòng)成果钢属。通過統(tǒng)一的途徑收集和整理測(cè)試資產(chǎn)徘熔,既便于回溯本次項(xiàng)目的測(cè)試過程,又可以為其它項(xiàng)目提供參考和幫助淆党,是測(cè)試資產(chǎn)復(fù)用的前提和保障酷师。測(cè)試資產(chǎn)庫(kù)在任何時(shí)候都處于最新和有效狀態(tài)。

4染乌、 在測(cè)試可追溯的基礎(chǔ)上山孔,降低了跨業(yè)務(wù)、跨部門業(yè)務(wù)分析的復(fù)雜程度荷憋。可視化的動(dòng)態(tài)業(yè)務(wù)全景圖台颠,為決策者、業(yè)務(wù)部門勒庄、技術(shù)人員的測(cè)試設(shè)計(jì)串前、執(zhí)行和質(zhì)量評(píng)估提供核心依據(jù)。

5实蔽、 建立有效測(cè)試質(zhì)量指標(biāo)評(píng)價(jià)體系荡碾,實(shí)現(xiàn)智能化測(cè)試方案設(shè)計(jì)。積累自動(dòng)分析用例集覆蓋率局装、冗余度坛吁、回歸權(quán)重等有效數(shù)據(jù)資產(chǎn)劳殖,實(shí)現(xiàn)“以最優(yōu)用例,覆蓋最全面功能”的目標(biāo)拨脉。

6哆姻、 通過對(duì)歷史數(shù)據(jù)的挖掘與分析,歸納出影響測(cè)試資源分配的關(guān)鍵因素女坑。通過對(duì)業(yè)務(wù)系統(tǒng)歷史測(cè)試數(shù)據(jù)的挖掘和分析填具,歸納出被測(cè)系統(tǒng)的缺陷特征和識(shí)別趨勢(shì)以及與之相關(guān)的關(guān)鍵因素统舀,未來作為測(cè)試準(zhǔn)入匆骗、準(zhǔn)出判斷的參考依據(jù),為識(shí)別待測(cè)系統(tǒng)的投產(chǎn)風(fēng)險(xiǎn)提供依據(jù)誉简,為實(shí)測(cè)系統(tǒng)上線決策和風(fēng)險(xiǎn)應(yīng)對(duì)提供支持碉就。

7、 具備成為“測(cè)試中臺(tái)”的核心組件的條件闷串。星云測(cè)試旗下產(chǎn)品具有高度自研創(chuàng)新能力瓮钥,星云可以根據(jù)用戶的創(chuàng)新需求,做更為具體的行業(yè)整體解決方案烹吵。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末碉熄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子肋拔,更是在濱河造成了極大的恐慌锈津,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凉蜂,死亡現(xiàn)場(chǎng)離奇詭異琼梆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)窿吩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門茎杂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纫雁,你說我怎么就攤上這事煌往。” “怎么了轧邪?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵携冤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我闲勺,道長(zhǎng)曾棕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任菜循,我火速辦了婚禮翘地,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己衙耕,他們只是感情好昧穿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著橙喘,像睡著了一般时鸵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厅瞎,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天饰潜,我揣著相機(jī)與錄音,去河邊找鬼和簸。 笑死彭雾,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的锁保。 我是一名探鬼主播薯酝,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼爽柒!你這毒婦竟也來了吴菠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤浩村,失蹤者是張志新(化名)和其女友劉穎做葵,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體穴亏,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蜂挪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嗓化。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片棠涮。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖刺覆,靈堂內(nèi)的尸體忽然破棺而出严肪,到底是詐尸還是另有隱情,我是刑警寧澤谦屑,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布驳糯,位于F島的核電站,受9級(jí)特大地震影響氢橙,放射性物質(zhì)發(fā)生泄漏酝枢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一悍手、第九天 我趴在偏房一處隱蔽的房頂上張望帘睦。 院中可真熱鬧袍患,春花似錦、人聲如沸竣付。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)古胆。三九已至肆良,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逸绎,已是汗流浹背惹恃。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留桶良,地道東北人座舍。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓沮翔,卻偏偏與公主長(zhǎng)得像陨帆,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子采蚀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355