專利解讀 | 蘇州空天信息研究院在軟件工程領(lǐng)域創(chuàng)新性地提出一種程序運(yùn)行過程符合性驗(yàn)證方法
蘇州空天信息研究院23室軟件工程技術(shù)部在充分發(fā)揮自身在技術(shù)研發(fā)、人才資源優(yōu)勢的基礎(chǔ)上,時刻關(guān)注和研究國內(nèi)外軟件工程領(lǐng)域的發(fā)展動態(tài)和技術(shù)導(dǎo)向,不斷探索新方向,采用新技術(shù),研發(fā)優(yōu)化新產(chǎn)品,于2020年開始著手研發(fā)技術(shù)體制驗(yàn)證平臺等產(chǎn)品。
蘇州空天信息研究院23室軟件工程技術(shù)部于2020年12月1日,申請了一篇名為《一種程序運(yùn)行過程符合性驗(yàn)證方法》的發(fā)明專利,本專利技術(shù)提供了一種程序運(yùn)行流程驗(yàn)證的方法,通過插樁埋點(diǎn)、數(shù)據(jù)建模等方法直觀、定量地展示出程序運(yùn)行時內(nèi)部的執(zhí)行流程信息,自2021年6月應(yīng)用于技術(shù)體制驗(yàn)證平臺以來,取得了非常可觀的效益,避免了人工誤判的風(fēng)險以及人力的損耗,填補(bǔ)了針對軟件運(yùn)行過程符合性驗(yàn)證的空白。
隨著軟件應(yīng)用規(guī)模的日益擴(kuò)大和軟件應(yīng)用環(huán)境的日益復(fù)雜,如何保證軟件質(zhì)量、軟件的規(guī)范性以及標(biāo)準(zhǔn)符合性等逐漸成為人們關(guān)注的焦點(diǎn),軟件自動化驗(yàn)證技術(shù)也因此得到了迅猛的發(fā)展。軟件插樁技術(shù)是軟件自動化驗(yàn)證中的關(guān)鍵技術(shù),對于軟件運(yùn)行時監(jiān)測有著重要的意義。所謂插樁,即在目標(biāo)程序內(nèi)部植入探針程序,通過探針程序嗅探目標(biāo)軟件內(nèi)部的運(yùn)行邏輯和流程并將特征數(shù)據(jù)拋出,分析這些特征數(shù)據(jù)獲取目標(biāo)程序控制流和數(shù)據(jù)流信息,進(jìn)而得到邏輯覆蓋等動態(tài)信息,以此來實(shí)現(xiàn)對目標(biāo)程序的監(jiān)測。目標(biāo)代碼插樁技術(shù)因其高效性和低侵入性得到了很多軟件測試開發(fā)者的青睞,被廣泛應(yīng)用于軟件系統(tǒng)監(jiān)控、軟件測試方法性能評價等領(lǐng)域,然而未應(yīng)用于軟件程序過程符合性驗(yàn)證中。
本發(fā)明提出了一種程序運(yùn)行過程符合性驗(yàn)證方法,包括動態(tài)插樁和過程驗(yàn)證兩個環(huán)節(jié)。動態(tài)插樁接收并解析用戶傳入的指令,執(zhí)行插樁啟停過程,并回傳過程數(shù)據(jù)日志;過程驗(yàn)證接收過程數(shù)據(jù)日志,提取日志中方法間的關(guān)系(包括順序、并行、選擇、循環(huán)等)建立過程圖模型,并將過程圖模型與標(biāo)準(zhǔn)規(guī)則進(jìn)行順序匹配,從而驗(yàn)證程序運(yùn)行過程的標(biāo)準(zhǔn)符合性。本發(fā)明的整體框架及工作情況如圖1所示。
圖1?本發(fā)明的整體架構(gòu)圖
動態(tài)插樁的原理如圖2所示。動態(tài)插樁工作時,接收并處理用戶通過URL形式發(fā)來的終端請求,終端請求包括插樁動作類型、任務(wù)ID、目標(biāo)軟件端口號以及攔截規(guī)則等參數(shù);JavaAgent程序解析傳入的參數(shù),得到待插樁程序段的絕對位置以及插樁攔截方式,插樁攔截方式包括定位到包進(jìn)行攔截和定位到具體方法進(jìn)行攔截,根據(jù)攔截方式的不同,調(diào)用不同的JavaAgent字節(jié)碼處理程序?qū)r截目標(biāo)代碼進(jìn)行遍歷,并將遍歷得到的目標(biāo)字節(jié)碼添加至JavaAgent機(jī)制提供的插樁算法程序中;插樁算法程序獲得目標(biāo)字節(jié)碼后,判斷該字節(jié)碼的目標(biāo)程序類是否已經(jīng)被加載至Java虛擬機(jī)中,若尚未加載,則根據(jù)JavaAgent程序中預(yù)先編寫的部署程序?qū)⒉鍢墩Z句塊部署到目標(biāo)字節(jié)碼中,若已加載,則調(diào)用JavaAgent機(jī)制提供的attach功能將插樁語句塊部署到目標(biāo)字節(jié)碼中,插樁語句塊包括編輯完成的系統(tǒng)時間獲取語句塊與日志記錄語句塊,當(dāng)目標(biāo)軟件執(zhí)行到插樁點(diǎn)時,執(zhí)行植入的代碼進(jìn)行信息獲取和日志信息生成,插樁日志作為最終圖形化驗(yàn)證對象的數(shù)據(jù)來源,需為文本文件格式,日志內(nèi)容由若干條目組成,條目描述信息細(xì)化至待測程序函數(shù)方法塊。
圖2 動態(tài)插樁示意圖
過程驗(yàn)證的原理如圖3所示。
圖3?過程驗(yàn)證示意圖
過程驗(yàn)證工作時,接收并處理過程數(shù)據(jù)日志,根據(jù)插樁日志中記錄的請求URI信息區(qū)分不同的操作,對于每一次操作,按照執(zhí)行先后順序提取日志中的方法名,將方法名用數(shù)字編號形成數(shù)字鏈,通過一系列數(shù)字鏈實(shí)現(xiàn)對于某次任務(wù)不同操作軌跡信息的量化描述,插樁日志預(yù)處理原理如圖4所示;
圖4?插樁日志預(yù)處理示意圖
根據(jù)軌跡信息,采用算法生成過程圖模型,算法存在3種關(guān)系,第一種是順序關(guān)系“>”,例如,“1>3”表示1出現(xiàn)在3前面,第二種是并行關(guān)系“|”,例如,“1|3”表示“1>3”且“3>1”,第三種是選擇關(guān)系“#”,例如,“1#3”表示從未出現(xiàn)過“1>3”和“3>1”,過程建模原理如圖5所示;
圖5?過程建模示意圖
將目標(biāo)軟件的軌跡過程圖模型與軟件運(yùn)行過程標(biāo)準(zhǔn)中既定的規(guī)則進(jìn)行匹配,驗(yàn)證目標(biāo)軟件的執(zhí)行順序是否符合規(guī)范,若不符合規(guī)范則報出相應(yīng)的錯誤,錯誤類型包括兩種,一是規(guī)則中出現(xiàn)了未執(zhí)行的方法,二是規(guī)則順序不符合規(guī)范。
本專利既是蘇州空天信息研究院23室軟件工程技術(shù)部團(tuán)隊成員心血凝聚的結(jié)晶,也是科研創(chuàng)新實(shí)力的展示,為技術(shù)體制驗(yàn)證平臺提供了強(qiáng)有力的科技支撐,也為多個項目提供了核心技術(shù)支撐。蘇州空天信息研究院23室軟件工程技術(shù)部將始終注重新產(chǎn)品的研發(fā),并將知識產(chǎn)權(quán)作為重中之重,提高核心競爭能力,促進(jìn)快速穩(wěn)健發(fā)展。
專利聯(lián)系作者:劉亮 部長
蘇州空天信息研究院
2014年6月6日,原中國科學(xué)院電子學(xué)研究所(以下簡稱原電子所)與蘇州工業(yè)園區(qū)簽訂了共建中國科學(xué)院電子學(xué)研究所蘇州研究院(現(xiàn)更名為蘇州空天信息研究院,以下簡稱蘇研院)合作協(xié)議。協(xié)議的簽署,標(biāo)志著蘇研院的建設(shè)正式啟動。
蘇研院是原電子所為滿足國家國防戰(zhàn)略科技需求,破解基地、人才等發(fā)展瓶頸,釋放創(chuàng)新生產(chǎn)力,與蘇州工業(yè)園區(qū)共同發(fā)起成立的地方事業(yè)法人單位。中國科學(xué)院正在實(shí)施以四類機(jī)構(gòu)改革為核心的率先行動計劃,其中,由中國科學(xué)院電子學(xué)研究所、遙感與數(shù)字地球研究所、光電研究院重組建設(shè)中國科學(xué)院空天信息研究院(以下簡稱空天院),是在空天電子信息技術(shù)領(lǐng)域?qū)嵤┑闹卮篌w制改革舉措之一,對四類機(jī)構(gòu)改革具有示范意義。蘇研院作為原電子所的重要組成部分,是空天院優(yōu)化科研布局的重要承載平臺和科研成果轉(zhuǎn)化平臺。
蘇研院建設(shè)總投資10億元,規(guī)劃總占地面積約130余畝,位于蘇州工業(yè)園區(qū)納米城東南角、獨(dú)墅湖之畔,擬建設(shè)成20萬平方米理念先進(jìn)、布局合理、功能配套齊全、環(huán)境優(yōu)美的現(xiàn)代科研園區(qū)。蘇研院是以開展電子信息技術(shù)研發(fā)與應(yīng)用為主的實(shí)體機(jī)構(gòu),主要面向國防、國民經(jīng)濟(jì)和區(qū)域發(fā)展戰(zhàn)略需求,致力于電子信息技術(shù)領(lǐng)域核心關(guān)鍵技術(shù)突破、共性技術(shù)研發(fā)、應(yīng)用系統(tǒng)集成和成果產(chǎn)業(yè)化轉(zhuǎn)移。
蘇研院首期開發(fā)建設(shè)了4.7萬平方米科研、配套設(shè)施,擁有一支450余人的高水平技術(shù)研發(fā)隊伍,開拓了平臺架構(gòu)技術(shù)、圖像解譯技術(shù)、星地信息處理技術(shù)等9個技術(shù)方向,科研保障體系全面建成,管理體系有效運(yùn)行,主持或參與承擔(dān)國家“863”任務(wù)、中科院重大任務(wù)、國防重點(diǎn)任務(wù)以及省市地區(qū)科技項目等科研任務(wù)近60項。
蘇研院將依托空天院的科研優(yōu)勢,結(jié)合區(qū)域特色,在國家創(chuàng)新體系和區(qū)域源頭創(chuàng)新活動中打造“示范效應(yīng)”,未來形成一支超過1000人規(guī)模的結(jié)構(gòu)合理、創(chuàng)新能力卓越、流動有序的高水平研發(fā)隊伍,成為運(yùn)行管理體系先進(jìn)高效、重大任務(wù)保障有力、并與地方發(fā)展緊密融合的高水平研究機(jī)構(gòu)。在與區(qū)域發(fā)展戰(zhàn)略接軌的基礎(chǔ)上,匯聚和造就一流人才、培育和轉(zhuǎn)化一流成果、催生和布局一流產(chǎn)業(yè),為國家戰(zhàn)略需求和區(qū)域經(jīng)濟(jì)發(fā)展做出一流貢獻(xiàn)。
作 者 | 蘇州空天信息研究院二十三室
策 劃 | 姜 麗、馬秀強(qiáng)
校 對 | 融媒體工作室
審 核 | 陳 倩