本發(fā)明涉及計(jì)算機(jī),尤其涉及一種代碼校驗(yàn)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)。
背景技術(shù):
1、現(xiàn)有技術(shù)中,在進(jìn)行代碼校驗(yàn)或檢測(cè)時(shí),通常只是單方面的在代碼層面上檢測(cè),檢查代碼的功能是否完善,但隨著程序的功能化更新需求的增加,代碼與程序的應(yīng)用場(chǎng)景的關(guān)系越來(lái)越密切,單純從代碼方面的校驗(yàn)將可能會(huì)造成代碼對(duì)應(yīng)的程序的應(yīng)用場(chǎng)景的功能漏洞無(wú)法準(zhǔn)確檢測(cè)出來(lái),從而影響到用戶的實(shí)際功能使用,對(duì)整個(gè)應(yīng)用的運(yùn)營(yíng)造成不良影響。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明的主要目的在于提供一種代碼校驗(yàn)方法、裝置、設(shè)備及存儲(chǔ)介質(zhì),旨在解決現(xiàn)有的代碼校驗(yàn)方式僅從代碼方面的校驗(yàn)造成代碼對(duì)應(yīng)的程序的應(yīng)用場(chǎng)景的功能漏洞無(wú)法準(zhǔn)確檢測(cè)出來(lái)的技術(shù)問(wèn)題。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供一種代碼校驗(yàn)方法,所述代碼校驗(yàn)方法包括:
3、通過(guò)注釋生成模型生成源代碼對(duì)應(yīng)的預(yù)測(cè)注釋信息;
4、從所述源代碼中提取原始注釋信息;
5、根據(jù)所述預(yù)測(cè)注釋信息和所述原始注釋信息對(duì)所述源代碼進(jìn)行校驗(yàn)。
6、可選地,所述根據(jù)所述預(yù)測(cè)注釋信息和所述原始注釋信息對(duì)所述源代碼進(jìn)行校驗(yàn),包括:
7、分別生成所述預(yù)測(cè)注釋信息對(duì)應(yīng)的預(yù)測(cè)注釋特征和所述原始注釋信息對(duì)應(yīng)的原始注釋特征;
8、根據(jù)所述預(yù)測(cè)注釋特征和所述原始注釋特征對(duì)所述源代碼進(jìn)行異常代碼位置檢測(cè),并根據(jù)檢測(cè)結(jié)果對(duì)所述源代碼進(jìn)行校驗(yàn)。
9、可選地,所述根據(jù)所述預(yù)測(cè)注釋特征和所述原始注釋特征對(duì)所述源代碼進(jìn)行異常代碼位置檢測(cè),并根據(jù)檢測(cè)結(jié)果對(duì)所述源代碼進(jìn)行校驗(yàn),包括:
10、分別對(duì)所述預(yù)測(cè)注釋特征和所述原始注釋特征進(jìn)行分組,獲得預(yù)測(cè)注釋特征小組和原始注釋特征小組;
11、對(duì)所述預(yù)測(cè)注釋特征小組中的注釋關(guān)鍵詞進(jìn)行聚類確定各個(gè)預(yù)測(cè)注釋特征小組的聚類中心;
12、確定所述各個(gè)預(yù)測(cè)注釋特征小組的聚類中心在所述原始注釋特征小組中的代碼位置;
13、根據(jù)所述代碼位置對(duì)所述源代碼進(jìn)行異常代碼位置檢測(cè),并根據(jù)檢測(cè)結(jié)果對(duì)所述源代碼進(jìn)行校驗(yàn)。
14、可選地,所述確定所述各個(gè)預(yù)測(cè)注釋特征小組的聚類中心在所述原始注釋特征小組中的代碼位置,包括:
15、根據(jù)各個(gè)預(yù)測(cè)注釋特征小組的聚類中心中的注釋關(guān)鍵詞,遍歷所述原始注釋特征小組,獲取特征距離小于設(shè)定閾值的原始注釋特征;
16、將特征距離小于設(shè)定閾值的原始注釋特征對(duì)應(yīng)的代碼位置作為各個(gè)預(yù)測(cè)注釋特征小組的聚類中心在所述原始注釋特征小組中的代碼位置。
17、可選地,所述分別生成所述預(yù)測(cè)注釋信息對(duì)應(yīng)的預(yù)測(cè)注釋特征和所述原始注釋信息對(duì)應(yīng)的原始注釋特征,包括:
18、分別對(duì)所述預(yù)測(cè)注釋信息和所述原始注釋信息進(jìn)行關(guān)鍵詞提取,獲得預(yù)測(cè)注釋關(guān)鍵詞集合和原始注釋關(guān)鍵詞集合;
19、以代碼位置為鍵、所述代碼位置對(duì)應(yīng)的注釋關(guān)鍵詞為值對(duì)所述注釋關(guān)鍵詞集合和所述原始注釋關(guān)鍵詞集合進(jìn)行映射,生成所述預(yù)測(cè)注釋信息對(duì)應(yīng)的預(yù)測(cè)注釋特征和所述原始注釋信息對(duì)應(yīng)的原始注釋特征。
20、可選地,所述通過(guò)注釋生成模型生成源代碼對(duì)應(yīng)的預(yù)測(cè)注釋信息,包括:
21、獲取源代碼的結(jié)構(gòu)信息,并根據(jù)所述結(jié)構(gòu)信息生成所述源代碼對(duì)應(yīng)的抽象語(yǔ)法樹(shù);
22、對(duì)所述抽象語(yǔ)法樹(shù)進(jìn)行特征提取,獲得序列化特征;
23、通過(guò)注釋生成模型對(duì)所述序列化特征進(jìn)行處理,生成所述源代碼對(duì)應(yīng)的預(yù)測(cè)注釋信息。
24、可選地,所述注釋生成模型包括:基于卷積神經(jīng)網(wǎng)絡(luò)的編碼器和基于注意力機(jī)制的解碼器;所述通過(guò)注釋生成模型對(duì)所述序列化特征進(jìn)行處理,生成所述源代碼對(duì)應(yīng)的預(yù)測(cè)注釋信息,包括:
25、將所述序列化特征合并后輸入到所述基于卷積神經(jīng)網(wǎng)絡(luò)的編碼器中進(jìn)行編碼,生成所述源代碼的語(yǔ)義向量;
26、通過(guò)所述基于注意力機(jī)制的解碼器解碼所述語(yǔ)義向量,生成所述源代碼對(duì)應(yīng)的預(yù)測(cè)注釋信息。
27、此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種代碼校驗(yàn)裝置,所述代碼校驗(yàn)裝置包括:
28、生成模塊,用于通過(guò)注釋生成模型生成源代碼對(duì)應(yīng)的預(yù)測(cè)注釋信息;
29、提取模塊,用于從所述源代碼中提取原始注釋信息;
30、校驗(yàn)?zāi)K,用于根據(jù)所述預(yù)測(cè)注釋信息和所述原始注釋信息對(duì)所述源代碼進(jìn)行校驗(yàn)。
31、此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種代碼校驗(yàn)設(shè)備,所述代碼校驗(yàn)設(shè)備包括存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的代碼校驗(yàn)程序,所述代碼校驗(yàn)程序配置為實(shí)現(xiàn)如上文所述的代碼校驗(yàn)方法。
32、此外,為實(shí)現(xiàn)上述目的,本發(fā)明還提出一種存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)上存儲(chǔ)有代碼校驗(yàn)程序,所述代碼校驗(yàn)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上文所述的代碼校驗(yàn)方法。
33、本發(fā)明中通過(guò)注釋生成模型生成源代碼對(duì)應(yīng)的預(yù)測(cè)注釋信息,可以實(shí)現(xiàn)對(duì)源代碼的語(yǔ)義信息的隱性特征挖掘,能夠反映出源代碼對(duì)應(yīng)的應(yīng)用場(chǎng)景的功能,也即可以表示出代碼的整體需求功能摘要,該功能摘要可以包括了代碼缺失、代碼錯(cuò)誤等情況下預(yù)測(cè)的代碼可實(shí)現(xiàn)功能。然后將預(yù)測(cè)注釋信息與從源代碼直接提取的注釋信息進(jìn)行分析比較,也即是將預(yù)測(cè)得到的代碼整體需求功能摘要與從源代碼注解中提取的功能摘要進(jìn)行對(duì)比,從而能夠避免現(xiàn)有技術(shù)中的僅從代碼方面的校驗(yàn)造成代碼對(duì)應(yīng)的程序的應(yīng)用場(chǎng)景的功能漏洞無(wú)法準(zhǔn)確檢測(cè)出來(lái)的情況,保證了通過(guò)校驗(yàn)的代碼從功能應(yīng)用上與預(yù)期設(shè)計(jì)相符,提高了軟件程序功能的完整性和準(zhǔn)確性。
1.一種代碼校驗(yàn)方法,其特征在于,所述代碼校驗(yàn)方法包括:
2.如權(quán)利要求1所述的代碼校驗(yàn)方法,其特征在于,所述根據(jù)所述預(yù)測(cè)注釋信息和所述原始注釋信息對(duì)所述源代碼進(jìn)行校驗(yàn),包括:
3.如權(quán)利要求2所述的代碼校驗(yàn)方法,其特征在于,所述根據(jù)所述預(yù)測(cè)注釋特征和所述原始注釋特征對(duì)所述源代碼進(jìn)行異常代碼位置檢測(cè),并根據(jù)檢測(cè)結(jié)果對(duì)所述源代碼進(jìn)行校驗(yàn),包括:
4.如權(quán)利要求3所述的代碼校驗(yàn)方法,其特征在于,所述確定所述各個(gè)預(yù)測(cè)注釋特征小組的聚類中心在所述原始注釋特征小組中的代碼位置,包括:
5.如權(quán)利要求2所述的代碼校驗(yàn)方法,其特征在于,所述分別生成所述預(yù)測(cè)注釋信息對(duì)應(yīng)的預(yù)測(cè)注釋特征和所述原始注釋信息對(duì)應(yīng)的原始注釋特征,包括:
6.如權(quán)利要求1至5中任一項(xiàng)所述的代碼校驗(yàn)方法,其特征在于,所述通過(guò)注釋生成模型生成源代碼對(duì)應(yīng)的預(yù)測(cè)注釋信息,包括:
7.如權(quán)利要求6所述的代碼校驗(yàn)方法,其特征在于,所述注釋生成模型包括:基于卷積神經(jīng)網(wǎng)絡(luò)的編碼器和基于注意力機(jī)制的解碼器;所述通過(guò)注釋生成模型對(duì)所述序列化特征進(jìn)行處理,生成所述源代碼對(duì)應(yīng)的預(yù)測(cè)注釋信息,包括:
8.一種代碼校驗(yàn)裝置,其特征在于,所述代碼校驗(yàn)裝置包括:
9.一種代碼校驗(yàn)設(shè)備,其特征在于,所述代碼校驗(yàn)設(shè)備包括:存儲(chǔ)器、處理器及存儲(chǔ)在所述存儲(chǔ)器上并可在所述處理器上運(yùn)行的代碼校驗(yàn)程序,所述代碼校驗(yàn)程序被所述處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7中任一項(xiàng)所述的代碼校驗(yàn)方法。
10.一種存儲(chǔ)介質(zhì),其特征在于,所述存儲(chǔ)介質(zhì)上存儲(chǔ)有代碼校驗(yàn)程序,所述代碼校驗(yàn)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1至7中任一項(xiàng)所述的代碼校驗(yàn)方法。