《一種測試覆蓋分析方法與系統(tǒng)》的實踐和思考一

隨著年紀增長,記性越來越差柱宦,現(xiàn)在把之前寫的專利《一種測試覆蓋分析方法與系統(tǒng)》的實踐、思考和技術(shù)實現(xiàn)過程記錄下來播瞳,以便思考和學習掸刊,繼續(xù)深入。

PS:想法基于“沖天炮”赢乓,主要邏輯寫在Oracle Procedure存過忧侧,具有一定的獨特(約束)性,但是實現(xiàn)的想法涉及很多方面的工具和技術(shù)牌芋。)

想法來源于一些項目需要:

1. 由于需求變更蚓炬,需要表變更或者調(diào)整存過,需手工梳理存過和修改的配置文件躺屁;

2. 由于“沖天炮”技術(shù)升級肯夏,配合程序修改,需提供測試入口菜單犀暑;

3. 根據(jù)服務接口的登記情況驯击,通知上下游修改;

4. 自動化的測試腳本關(guān)聯(lián)程序耐亏。

“沖天炮”是一個非常棒(非前后端分離)的框架徊都,易學好使實用,愧于本人水平所限广辰,把基于“沖天炮”搭建的系統(tǒng)想象為這樣:

菜單程序鏈路圖.jpeg

然后根據(jù)XML的信息碟贾、程序內(nèi)容嵌套的“調(diào)用”關(guān)鍵字(forward币喧、include、form等等)袱耽,生成菜單程序鏈路杀餐。

開始的實現(xiàn),通過啟發(fā)式的雙向?qū)挾葍?yōu)先搜索朱巨,發(fā)現(xiàn)程序鏈路圖的規(guī)模很大史翘,菜單-程序-程序之間——多對多的網(wǎng)絡(luò)關(guān)系,當時通過內(nèi)存和文件方式存儲冀续,一直無法滿足日常使用的需要琼讽。后來采用NoSQL的Neo4j存儲鏈路節(jié)點,去重寫鏈路生成和遍歷洪唐,效果滿足日常使用的需求钻蹬。

此時得到一份菜單為入口的菜單程序鏈路圖,生成了所有菜單經(jīng)過的程序凭需、存儲過程和涉及的表的關(guān)聯(lián)圖问欠。該方法有局限性,純文本分析和XML解析粒蜈,容易把多余的程序鏈路生成顺献,改進想法通過系統(tǒng)運行的日志,還原菜單運行過程中的程序鏈路枯怖。

為了實現(xiàn)測試覆蓋分析注整,想法是基于各種Guard系列(PageObject 模式)的自動化測試框架,自動生成自動化腳本(Velocity實現(xiàn))度硝,人工只需配置數(shù)據(jù)和斷言:

1)Oracle Procedure的存過單元測試肿轨;

2)底層是Java程序的系統(tǒng)內(nèi)部和外部調(diào)用接口;

3)菜單頁面的UI是基于Selenium和SikuliX的封fuzzer先建立測試案例蕊程,自動化測試腳本與程序鏈路的關(guān)系(手動)萝招,然后
捕捉到代碼變化(Java git tool)或者表結(jié)構(gòu)變化,便可完成通過菜單鏈路調(diào)用自動化測試存捺,同時測試覆蓋的統(tǒng)計依賴沖天炮自帶,jacoco曙蒸,還有利器antrl捌治。
實踐中,自動化測試的能力得到擴展:ui幫助實現(xiàn)ie兼容性測試纽窟;基于owasp的 top10 payloads實現(xiàn)接口測試和存過單元測試的安全能力肖油;基于覆蓋率反饋和魯棒性的思考,引入了fuzzer data generator,提升測試覆蓋率臂港,fuzzer的斷言非常不易森枪,做過基于機器學習做數(shù)據(jù)分類和結(jié)果聚類视搏,在小的接口測試結(jié)果樣本沒有較好的準確率, 大神指導過有深度學習的方法還沒嘗試;一直沒有了解基于AFL的測試覆蓋反饋做fuzz 也沒完整用oss-fuzz做0day县袱。
過程中浑娜,觀察到測試問題反饋,需求描述式散,開發(fā)進度筋遭,項目質(zhì)量,測試覆蓋的關(guān)系暴拄,用jieba做了這些內(nèi)容的NLP漓滔,然后暴力knn,發(fā)現(xiàn)一些有趣的東西乖篷,但是模型是有問題的响驴,跟項目其他特征如工作量,人數(shù)撕蔼,關(guān)聯(lián)系統(tǒng)等特征來重建模型豁鲤。
既然需要更多資源和語聊,特意用scrapy寫了spider罕邀,基于itchat搭了一個基于規(guī)則的應答機器人畅形,本意是作為入口查看爬蟲數(shù)據(jù),結(jié)果發(fā)現(xiàn)如果基于常見開發(fā)測試運維問題做智能應答诉探,豈不美事日熬,規(guī)則易建,智能難做肾胯。
待續(xù)…

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末竖席,一起剝皮案震驚了整個濱河市敬肚,隨后出現(xiàn)的幾起案子毕荐,更是在濱河造成了極大的恐慌艳馒,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弄慰,死亡現(xiàn)場離奇詭異第美,居然都是意外死亡,警方通過查閱死者的電腦和手機陆爽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來慌闭,“玉大人躯舔,你說我怎么就攤上這事∈」牛” “怎么了粥庄?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長衫樊。 經(jīng)常有香客問我,道長科侈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任蔫慧,我火速辦了婚禮权薯,結(jié)果婚禮上姑躲,老公的妹妹穿的比我還像新娘盟蚣。我一直安慰自己,他們只是感情好屎开,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蔼两,像睡著了一般逞度。 火紅的嫁衣襯著肌膚如雪额划。 梳的紋絲不亂的頭發(fā)上档泽,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音抑胎,去河邊找鬼甜熔。 笑死,一個胖子當著我的面吹牛腔稀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播焊虏,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼诵闭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起瘟芝,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤褥琐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后敌呈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡吭练,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年析显,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片叫榕。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖寓落,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情伶选,我是刑警寧澤尖昏,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站抽诉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏迹淌。R本人自食惡果不足惜己单,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一耙饰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苟跪,春花似錦、人聲如沸件已。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞻惋。三九已至,卻和暖如春歼狼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羽峰。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留值纱,地道東北人坯汤。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像惰聂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子搓幌,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 曾經(jīng)有個朋友告訴我:在對的時間來到對的地方遇見對的人就是幸福溉愁。 小李去年在利群超市地下開了個賣衣服的小店处铛。她以前...
    木子果兒閱讀 166評論 0 2
  • 十二月枫疆,南方的冬天來得很慢,像是貪玩的孩童流連在色彩斑斕的糖果店鋪敷鸦,結(jié)果一轉(zhuǎn)頭才發(fā)現(xiàn)被時間遠遠地落在了后頭。亞熱帶...
    影落青苔閱讀 832評論 7 7
  • 2018年1月8號 這場雪期待了好久值依。 去年12月的某一天碟案,下雪了愿险,但不是我所想象中的那場雪价说,那場雪下...
    沐沐子手攝記閱讀 238評論 0 0