隨著國(guó)內(nèi)大數(shù)據(jù)戴而、云計(jì)算凑术、人工智能等新技術(shù)的發(fā)展,銀行業(yè)的前中后臺(tái)正面臨著全面改造所意,金融科技是業(yè)務(wù)轉(zhuǎn)型發(fā)展的一個(gè)核心發(fā)力點(diǎn)淮逊。金融行業(yè)信息系統(tǒng)集中度高催首、規(guī)模龐大、多系統(tǒng)之間關(guān)聯(lián)性強(qiáng)泄鹏、業(yè)務(wù)復(fù)雜郎任、需求變化快,另外各種新舊系統(tǒng)錯(cuò)綜交互备籽,軟件質(zhì)量控制難度異常復(fù)雜舶治。通過技術(shù)手段精準(zhǔn)地追溯每一個(gè)數(shù)據(jù)路線,有效實(shí)現(xiàn)信息系統(tǒng)的高可靠性和易維護(hù)性车猬,是金融業(yè)界共同的目標(biāo)霉猛。
一、傳統(tǒng)測(cè)試的局限
目前珠闰,在大部分金融機(jī)構(gòu)中惜浅,主流的功能測(cè)試方法是黑盒測(cè)試輔之以一定量的自動(dòng)化測(cè)試。由于自動(dòng)化測(cè)試用例的維護(hù)問題較多伏嗜,黑盒手工(功能)測(cè)試依然是主流坛悉。它有很多經(jīng)典方法,如等價(jià)類阅仔、正交用例設(shè)計(jì)法以及近些年流行的探索性測(cè)試等吹散。因黑盒測(cè)試方法總體依賴于業(yè)務(wù)經(jīng)驗(yàn)弧械,以及一定的測(cè)試“靈感”和臨場(chǎng)發(fā)揮的“算力”八酒,隨著金融軟件復(fù)雜性和迭代速度的不斷加快、軟件系統(tǒng)組合路徑膨脹等問題刃唐,人腦的推算力顯然遠(yuǎn)遠(yuǎn)跟不上了羞迷。即使很優(yōu)秀的測(cè)試人員,也會(huì)因?yàn)闋顟B(tài)問題而導(dǎo)致測(cè)試用例設(shè)計(jì)水準(zhǔn)出現(xiàn)波動(dòng)画饥。后續(xù)測(cè)試覆蓋不充分性日益凸顯衔瓮,剩余至少30%以上的漏測(cè)點(diǎn)。而白盒測(cè)試工具抖甘,因?yàn)榧夹g(shù)沒有跟上敏捷迭代的開發(fā)場(chǎng)景热鞍,目前在金融企業(yè)幾乎很少在實(shí)際中應(yīng)用。
二衔彻、精準(zhǔn)測(cè)試概念的提出
如何快速定位金融大型信息系統(tǒng)的測(cè)試死角薇宠,用“可量化”和“可視化”的分析與測(cè)試手段,有效地發(fā)現(xiàn)程序深層隱藏的缺陷艰额、提高信息系統(tǒng)投產(chǎn)質(zhì)量澄港、降低投產(chǎn)風(fēng)險(xiǎn)、增強(qiáng)投產(chǎn)信心柄沮,金融業(yè)甚至軟件業(yè)均在尋求最佳解決方案回梧。
精準(zhǔn)測(cè)試方法體系废岂,是近年來業(yè)界頗為關(guān)注的新測(cè)試技術(shù)體系。它立足于“系統(tǒng)級(jí)”測(cè)試狱意,建立了業(yè)務(wù)功能與代碼之間的映射與追溯關(guān)系湖苞,在代碼優(yōu)化、快速定位代碼缺陷髓涯、確保關(guān)鍵代碼的測(cè)試覆蓋袒啼、精準(zhǔn)回歸等方面表現(xiàn)突出。為金融信息系統(tǒng)實(shí)施高效管理纬纪,提供了質(zhì)量抓手蚓再。
三、 精準(zhǔn)測(cè)試的關(guān)鍵技術(shù)
1. 精準(zhǔn)測(cè)試的核心技術(shù)
??精準(zhǔn)測(cè)試最底層的核心技術(shù):“一種基于用例與源碼雙向追溯的測(cè)試裝置及方量子糾纏的形象類比:如常見的金融轉(zhuǎn)賬包各、手機(jī)拍照摘仅、機(jī)器人控制等指令,每個(gè)操作都有與之對(duì)應(yīng)的代碼问畅,他們之間如同兩個(gè)糾纏在一起的粒子娃属,具備強(qiáng)關(guān)聯(lián)性。一個(gè)發(fā)生變化护姆,另一個(gè)必定發(fā)生相應(yīng)變化矾端。星云精準(zhǔn)測(cè)試將功能用例和對(duì)應(yīng)的代碼之間實(shí)現(xiàn)了精準(zhǔn)無誤的追溯路線可視化,徹底解決了“黑盒”的難題卵皂。在此核心技術(shù)基礎(chǔ)上秩铆,諸如:“回歸測(cè)試用例的自動(dòng)選取”、“覆蓋率可視化”灯变、“智能缺陷定位”殴玛、“聚類分析”等精準(zhǔn)測(cè)試的高級(jí)功能得以充分實(shí)現(xiàn)。
?????????????? 圖 雙向追溯(正向)-測(cè)試用例追溯到代碼
??由于優(yōu)秀的內(nèi)核設(shè)計(jì)添祸,星云精準(zhǔn)測(cè)試可以輕松應(yīng)用在數(shù)億行的超大型復(fù)雜應(yīng)用上著隆,在建立測(cè)試用例媚送、代碼安寺、模塊之間精準(zhǔn)可視追溯機(jī)制的同時(shí)勺远,瞬間可將海量數(shù)據(jù)實(shí)時(shí)采集并存儲(chǔ)起來,用于后續(xù)測(cè)試大數(shù)據(jù)的分析和運(yùn)算上耙替。整體過程對(duì)原有系統(tǒng)性能亚侠,不產(chǎn)生干擾。
2. 高度智能化的靜默式落地方案
??星云精準(zhǔn)測(cè)試并不改變現(xiàn)有的測(cè)試流程和團(tuán)隊(duì)組成林艘,它巧妙地使黑盒測(cè)試無縫對(duì)接到精準(zhǔn)測(cè)試體系盖奈,快速實(shí)現(xiàn)提升測(cè)試效能比的剛需。測(cè)試工程師打開測(cè)試用例的Excel表格狐援、執(zhí)行點(diǎn)擊用例钢坦,即可通過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)的代碼禾酱。測(cè)試者在整個(gè)過程中微酬,幾乎不需要增加額外工作量。
3. 精準(zhǔn)可信的測(cè)試數(shù)據(jù)記錄過程
??傳統(tǒng)測(cè)試有點(diǎn)像挖礦藏颤陶,主要依賴測(cè)試用例執(zhí)行數(shù)颗管、時(shí)長(zhǎng)、bug的數(shù)量等外在維度進(jìn)行衡量滓走,缺陷是未知數(shù)垦江,結(jié)果不那么具備公信力。精準(zhǔn)測(cè)試是傳統(tǒng)測(cè)試走向可信測(cè)試的一個(gè)最好的技術(shù)手段搅方。它的所有測(cè)試數(shù)據(jù)均是在測(cè)試執(zhí)行過程中比吭,由軟件自動(dòng)分析并錄入的底層代碼運(yùn)行原生數(shù)據(jù)。由于用例和執(zhí)行代碼之間信息被完整跟蹤姨涡,并且細(xì)分到測(cè)試用例級(jí)別衩藤,因此整個(gè)測(cè)試數(shù)據(jù)都可以在代碼層面可視化出來,人工無法介入修改涛漂。它真實(shí)再現(xiàn)測(cè)試現(xiàn)場(chǎng)情況赏表,結(jié)果可直接用于測(cè)試的過程管理和實(shí)效分析。從技術(shù)上確保所有數(shù)據(jù)精準(zhǔn)無篡改怖喻。這一舉措底哗,使測(cè)試的衡量點(diǎn)回歸到計(jì)算機(jī)程序的本質(zhì)-“代碼”上來岁诉。
四锚沸、精準(zhǔn)測(cè)試的應(yīng)用實(shí)踐
??精準(zhǔn)測(cè)試的用例與執(zhí)行代碼的強(qiáng)追溯性,為采集到的海量測(cè)試數(shù)據(jù)實(shí)現(xiàn)精準(zhǔn)度量以及全面涕癣、多維度的測(cè)試分析哗蜈,打下了堅(jiān)實(shí)基礎(chǔ)。測(cè)試管理從相對(duì)單一的覆蓋率考量視角坠韩,擴(kuò)展到多剖面的智能分析距潘。由于篇幅限制,本文選擇兩個(gè)主要功能點(diǎn)做一介紹:
1只搁、企業(yè)級(jí)覆蓋率方面的創(chuàng)新
??測(cè)試覆蓋率是測(cè)試界公認(rèn)的測(cè)試結(jié)項(xiàng)可用量化指標(biāo)音比。在敏捷迭代場(chǎng)景下,由于新版本快速發(fā)布氢惋,代碼變更頻繁洞翩,本應(yīng)在一個(gè)版本上分析的覆蓋數(shù)據(jù)稽犁,分布到了數(shù)個(gè)代碼結(jié)構(gòu)不一樣的程序版本上,因此傳統(tǒng)白盒覆蓋率的統(tǒng)計(jì)方法和參考意義基本上都失效了骚亿。星云精準(zhǔn)測(cè)試通過軟件示波器在系統(tǒng)測(cè)試階段取采集多種代碼覆蓋率(最高支持航天航空標(biāo)準(zhǔn)MC/DC的100%覆蓋率要求)已亥,提供實(shí)時(shí)覆蓋率增長(zhǎng)趨勢(shì)圖及各類分析報(bào)表,管理者可清晰的觀察整個(gè)測(cè)試進(jìn)度情況来屠、效率等虑椎。
??覆蓋率智能合并。精準(zhǔn)測(cè)試可以按照敏捷的模式俱笛,將多個(gè)版本的覆蓋率以最新程序代碼版本為投影進(jìn)行合并捆姜,在控制流上直接累加,無需在每個(gè)版本上跑全量用例迎膜。它在不同的版本上執(zhí)行不同功能范圍的用例娇未,然后合并一個(gè)測(cè)試周期的覆蓋率信息,看總體的覆蓋情況星虹。覆蓋率合并算法將全自動(dòng)分析每個(gè)版本序列上程序函數(shù)變更的情況零抬,以最新版本往前合并,直到某個(gè)模塊的代碼發(fā)生變化宽涌,在此之間的覆蓋率均可合并平夜。
??增量覆蓋率分析。版本發(fā)布后卸亮,精準(zhǔn)測(cè)試可以對(duì)增量代碼覆蓋專門有一個(gè)統(tǒng)計(jì)維度忽妒,這樣也是對(duì)于覆蓋率目標(biāo)的一種工業(yè)應(yīng)用新思路,不用去關(guān)注總體覆蓋兼贸,而在迭代中關(guān)注調(diào)整代碼的覆蓋段直,尤其是新增代碼的覆蓋情況。
??覆蓋率可視化溶诞。在星云精準(zhǔn)測(cè)試中鸯檬,用戶在選擇分析的覆蓋率維度后,系統(tǒng)就會(huì)將被測(cè)試程序的相關(guān)結(jié)構(gòu)展示出來螺垢,并且用顏色表達(dá)覆蓋情況:綠色代表覆蓋喧务,深藍(lán)色代表未覆蓋。同時(shí)告知覆蓋率的分子和分母都是哪些枉圃,非常清晰的展示覆蓋率可視化結(jié)果功茴。
??相關(guān)覆蓋率∧跚祝可將某個(gè)功能用例所觸及的函數(shù)范圍中坎穿,所有代碼分支作為覆蓋率的分母,真正運(yùn)行到的分支作為分子,這樣取得的相關(guān)覆蓋率非常具有實(shí)際指導(dǎo)意義玲昧。使用者在有權(quán)限的情況下犯祠,隨時(shí)可以看到:因此即使測(cè)試的是一個(gè)小功能范圍的用例集,其覆蓋結(jié)果也可以近似等價(jià)為這個(gè)功能范圍相關(guān)代碼的覆蓋率情況酌呆,亦可以用于分析某個(gè)功能范圍的測(cè)試是否充分衡载。
2、回歸測(cè)試用例的推薦和選认对:
??對(duì)于測(cè)試效率的提升痰娱,一般會(huì)提到狹義的自動(dòng)化測(cè)試,這也是行業(yè)內(nèi)通常解決回歸測(cè)試的辦法菩收。它是一種應(yīng)對(duì)全局回歸的方法梨睁,在無法有效確定回歸范圍的情況下,就通過技術(shù)手段全量回歸以確保系統(tǒng)的修改沒有引入新的問題娜饵。真正實(shí)施過全量自動(dòng)化回歸的團(tuán)隊(duì)坡贺,會(huì)對(duì)此項(xiàng)工作的難度和成本深有體會(huì)。
??星云精準(zhǔn)測(cè)試回歸用例自動(dòng)選取是屬于一種機(jī)器智能計(jì)算下安全的局部回歸箱舞。它根據(jù)歷史測(cè)試用例執(zhí)行的路徑信息以及新版本的代碼變更信息遍坟,自動(dòng)推薦和選取回歸測(cè)試用例集,并給出回歸優(yōu)先級(jí)和影響度晴股。用戶在測(cè)試人力有限的條件下愿伴,可以根據(jù)算法給出的優(yōu)先級(jí)安排測(cè)試執(zhí)行,以最有效的方法發(fā)現(xiàn)代碼調(diào)整引入的缺陷电湘。這種基于海量的程序運(yùn)行路徑計(jì)算的數(shù)據(jù)隔节,精確而完整,不會(huì)因團(tuán)隊(duì)工作狀態(tài)問題寂呛,而出現(xiàn)大量遺漏的現(xiàn)象怎诫。
五、小結(jié)
??精準(zhǔn)測(cè)試將大幅度提升測(cè)試數(shù)據(jù)的價(jià)值贷痪,也將產(chǎn)出大量對(duì)研發(fā)極有意義的分析數(shù)據(jù)幻妓。它必將推動(dòng)軟件行業(yè)的數(shù)字化改革,為傳統(tǒng)金融業(yè)務(wù)及金融創(chuàng)新(Fintech)呢诬,提供更智能涌哲、有效的軟件高端質(zhì)量保障思路與方法胖缤。