• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      軟件靜態(tài)分析融合技術(shù)研究*

      2022-03-08 06:48:02吳亞鋒
      火力與指揮控制 2022年1期
      關(guān)鍵詞:相似性語料庫代碼

      王 鑫,趙 偉,吳亞鋒

      (1.解放軍32381 部隊,北京 100000;2.江蘇自動化研究所,江蘇 連云港 222061)

      0 引言

      軍品軟件可靠性直接決定武器裝備產(chǎn)品的質(zhì)量,必經(jīng)多輪測試后方可交付列裝。代碼規(guī)則檢查在軟件產(chǎn)品研制與測試過程中均至關(guān)重要。針對C/C++語言的自動化代碼檢測工具在大規(guī)模代碼的多輪迭代及回歸中凸顯其高效性,但單一工具檢測結(jié)果存在誤檢或漏檢,且需人工復(fù)核以確保準(zhǔn)確性,本文提出一種多測試工具代碼規(guī)則檢查報告自動融合的方法,極大縮短了軟件迭代測試周期,提升了復(fù)查結(jié)果準(zhǔn)確率,降低迭代測試的時間、經(jīng)濟成本。

      1 面向C/C++ 語言靜態(tài)測試工具及結(jié)果比較

      LDRATestbedForC/C++、Klocwork、可集成在Visual C++工具中的C++test 以及HelixQAC 工具是4款面向C/C++語言的靜態(tài)分析工具。除了檢查代碼的標(biāo)準(zhǔn)符合性,更以圖和報告形式實現(xiàn)代碼可視化測試,提高了代碼測試的可視性和清晰度,其中C++test 更支持代碼復(fù)審及在線回歸。4 款測試工具均支持代碼規(guī)則定制以及檢測結(jié)果文本形式瀏覽。基于工具起動方式、結(jié)果輸出形式、支持編碼語言以及規(guī)則可查看角度對工具進行分析,如表1 所示。

      表1 工具特性表

      上述工具均無法檢測出全部違規(guī)代碼,測試結(jié)果之間互有補充又諸多重合,各工具分析代碼所依據(jù)的規(guī)則也并非完全一致。

      比對測試結(jié)果與原始代碼可以發(fā)現(xiàn)工具自動生成的測試報告具有以下特征:

      1)針對存在問題的同一行源碼,不同工具測試結(jié)果描述語言不同,具有獨特語言風(fēng)格;

      2)不同測試工具檢測的同一問題代碼,其問題定位信息在不同結(jié)果中顯示不同。測試報告中的問題代碼行數(shù)與源碼存在差異(工程實踐經(jīng)驗該誤差通常不大于5);

      3)選定參考標(biāo)準(zhǔn)為GB、GJB 后,測試報告中的問題描述與GB、GJB 建立對應(yīng)關(guān)系。測試工具生成的測試報告為英文描述,而GJB 與GB 均為漢字描述,在人工復(fù)核檢測結(jié)果工作中帶來不便。

      綜合上述比對可知,多工具自動化生成的英文檢測報告與漢語描述的GB、GJB 之間仍未完全對應(yīng),面對規(guī)模龐大的代碼,人工分析其測試報告在GB、GJB 標(biāo)中的映射,其時間和人力成本都隨代碼規(guī)模的擴張,呈現(xiàn)幾何級數(shù)的增長。因此,將工具生成的報告與標(biāo)準(zhǔn)之間建立準(zhǔn)確的映射關(guān)系,成為提升“最后一步”工作效率的可行手段。

      2 基于語義的跨語言文本聚類方法

      檢測結(jié)果與GB 之間的映射關(guān)系可以理解為對不同語言之間語義相近的語句分類,描述同一個問題的英文檢測結(jié)果與其在GB 中的漢字規(guī)則描述理論上存在相關(guān)性。在自然語言研究中,通常把一個詞匯描述為向量,一條語句描述為一個矩陣,語義相近的兩句話之間在語義空間上必然存在向量一致性。為解決上文提出的多工具檢測報告與規(guī)則集映射問題,基于語義的跨語言文本聚類方法體現(xiàn)了其優(yōu)勢。

      國內(nèi)外諸多學(xué)者對自然語言文本聚類方法進行了深入探討,本文采用基于VTM(Vector Term-frequency Model,向量詞頻模型)完成文本分類。該方法具有以下特點:

      1)基于語料庫實現(xiàn)跨語言的文本聚類。多測試工具生成的檢測報告中全部問題描述語句和規(guī)則集構(gòu)成平行語料庫,從各自有限大的語料庫中提取文本分類所需要的信息。通過平行語料庫完成語句分類可以避免傳統(tǒng)模式的先翻譯,再將翻譯結(jié)果進行分類帶來的大量計算,全部聚類過程處于語義和概念層面,更多結(jié)合自然語言的涵義。

      2)借鑒Word2Vec模型完成“語句- 向量”轉(zhuǎn)換。Word2vec 模型最早由Mikolov 提出,由圖1 可知,由CBOW 模型和Skip-gram 模型構(gòu)成。

      圖1 Word2Vec 模型數(shù)學(xué)表達示意圖

      CBOW 模型由詞的前后m 個詞匯出現(xiàn)的概率決定詞A 出現(xiàn)的概率,其數(shù)學(xué)表達式如下:

      類似地,Skip-gram 模型則是由上下文n 個詞匯預(yù)測詞A 出現(xiàn)的概率,其數(shù)學(xué)表達式如下:

      Word2Vec 是自然語言研究中將詞語劃分為實數(shù)值向量表達的深度機器學(xué)習(xí)工具,在詞向量訓(xùn)練中涵蓋語料的上下文,從語義的層面解決了跨語言文本分類主題漂變和語言隔離問題。同時

      Word2Vec 工具訓(xùn)練高效,300 M 語料詞向量的訓(xùn)練時間僅40 min 左右。

      2.1 文本的向量表達

      采用Word2Vec 模型,將一段文本S 描述為一組向量V(T),向量存在一個幾何中心,如同該文本存在一個核心詞。核心詞定義為Core(S),其歸一化向量表達形式如下:

      如式(2)所示,歸一化向量表達式描述了文本S的幾何中心,也是該文本向量表示。

      2.2 基于加權(quán)詞頻的文本向量表示

      本文用TF-IDF(Term Frequency-Inverse Document frequency)方法確定式(2)中的詞向量權(quán)重。TF-IDF 是一種常用數(shù)據(jù)挖掘的加權(quán)技術(shù),TF(Term Frequency,詞頻)表示目標(biāo)詞在文本中出現(xiàn)的頻率,體現(xiàn)該詞在文本中的重要程度,IDF(Inverse Document Frequency,逆向文本頻率)用度量目標(biāo)詞的普遍性,反映了該詞在文本集中的識別度。TF-IDF 是TF 與IDF 的乘積。

      假設(shè)一個預(yù)料庫D 中存在一段文本包含N 個的詞(其中k 個詞不重復(fù)),對于一個詞T而言,其重要性可表示如下:

      文本中每個詞的權(quán)重向量可表示如下:

      通過式(9)可以得知,在有限語料庫場景下,基于詞頻的文本權(quán)重向量表達式與TF 無關(guān),僅需要計算IDF 即可得出一段文本的權(quán)重向量表達式。

      2.3 相似性測度計算

      圖2 基于語義的檢測結(jié)果規(guī)則聚類流程圖

      此時兩文本之間歐氏距離等價于余弦距離,在文本分類中以此為相似性測度。當(dāng)兩個文本相似性測度(歐氏距離)大于設(shè)定閾值時,判定為語義相近。至此完成跨語言的文本聚類。

      3 基于語義的檢測結(jié)果與規(guī)則集聚類流程

      首先,建立包含檢測結(jié)果與規(guī)則集的平行語料庫,語料庫內(nèi)容如圖3 所示,運行圖4 代碼,完成文本向量表達和文本向量距離計算。

      圖3 平行語料庫截圖

      圖4 文本向量相似性計算實現(xiàn)

      表2 中第1 列選取了5 條檢測結(jié)果,每一行對應(yīng)計算該檢測結(jié)果與規(guī)則集之間的相似性測度計算值,對于成功匹配的兩條文本相似性計算結(jié)果加粗標(biāo)明??梢姡瑑蓷l文本語義上接近的相似性測度值更大,與無關(guān)文本相似性測度存在明顯的分離性,可以通過合理的相似性測度閾值加以區(qū)分。

      表2 檢測結(jié)果與規(guī)則集相似性計算

      上述方法僅實現(xiàn)檢測報告與規(guī)則集之間映射關(guān)系,檢測結(jié)果之間仍存在重合與互補。檢測結(jié)果自身攜帶問題代碼路徑Path 以及所在函數(shù)中行數(shù)Line 可區(qū)分問題代碼。類似的,規(guī)則集的常見形式是:“編號ID+規(guī)則描述”,編號即一個規(guī)則在其集合中的唯一識別。規(guī)則描述與檢測結(jié)果完成映射,意味著“Path+Line”與“規(guī)則ID”之間建立映射。根據(jù)測試工作實踐,問題與規(guī)則之間的關(guān)系如下頁圖5所示。

      圖5 問題代碼路徑與規(guī)則標(biāo)識關(guān)系圖

      對于近似行代碼對應(yīng)單規(guī)則ID 情況判定為重復(fù)檢測,任選其一作為最終結(jié)果;單行代碼對應(yīng)多個規(guī)則ID 情況判定為結(jié)果互補,保留不重復(fù)ID規(guī)則。至此完成多工具檢測結(jié)果與規(guī)則集合的融合匹配。

      4 結(jié)論

      本文結(jié)合靜態(tài)測試實踐,整理代碼規(guī)則檢查工具,針對C/C++語言檢查結(jié)果。以檢測結(jié)果及規(guī)則集作為有限集語料庫,以文本加權(quán)詞頻向量之間的相似程度為判別條件進行相似性判斷,并對聚類文本進行去重及融合,達到檢測結(jié)果互相補充、彼此完善的目的。實現(xiàn)了多工具檢測結(jié)果與規(guī)則集智能匹配,提高了代碼級規(guī)則檢測效率。本文介紹了文本詞頻向量表達聚類算法在多工具檢測結(jié)果與規(guī)則集之間的匹配方法,仍存在優(yōu)化空間。文中相似性測度算法值得在未來研究中完善優(yōu)化,同時面向更多種類語言的代碼規(guī)則檢測結(jié)果融合也具有較高的研究價值。

      猜你喜歡
      相似性語料庫代碼
      一類上三角算子矩陣的相似性與酉相似性
      淺析當(dāng)代中西方繪畫的相似性
      河北畫報(2020年8期)2020-10-27 02:54:20
      《語料庫翻譯文體學(xué)》評介
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      把課文的優(yōu)美表達存進語料庫
      低滲透黏土中氯離子彌散作用離心模擬相似性
      基于JAVAEE的維吾爾中介語語料庫開發(fā)與實現(xiàn)
      語言與翻譯(2015年4期)2015-07-18 11:07:45
      宁海县| 油尖旺区| 新绛县| 藁城市| 榆中县| 名山县| 新乡县| 孟连| 忻州市| 永清县| 永年县| 孟津县| 电白县| 区。| 溧阳市| 祁门县| 顺平县| 余姚市| 威信县| 西青区| 隆林| 博湖县| 文化| 广西| 宜君县| 时尚| 五河县| 佛教| 温州市| 莱阳市| 江北区| 诸城市| 女性| 邓州市| 西峡县| 招远市| 延安市| 乌兰浩特市| 会宁县| 梁山县| 宁德市|