System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及軟件缺陷檢測,具體而言,涉及一種針對電力數字系統的軟件缺陷檢測方法、針對電力數字系統的軟件缺陷檢測裝置、計算機可讀存儲介質和電子設備。
技術介紹
1、隨著信息技術的發展和應用范圍的不斷擴大,軟件系統在各個領域中起著越來越重要的作用。電力數字系統作為能源領域的關鍵可視化系統,在電力生產、傳輸、配送和管理等方面發揮著重要作用。然而,隨著電力數字系統的復雜性增加和功能的不斷擴展,軟件缺陷問題也日益突出,給系統的穩定性和安全性都帶來了巨大的挑戰。
2、傳統的軟件測試和質量保證方法往往依賴于人工測試和靜態代碼分析,這些方法存在著效率低、覆蓋面有限、無法全面檢測各種缺陷等問題。尤其是在電力數字系統這類大型復雜軟件系統中,人工測試和分析的成本和時間成本較高,同時在捕獲代碼缺陷語義方面的功能較弱,存在遺漏或誤判的情況,導致了缺陷的積累和系統穩定性的下降。
技術實現思路
1、本申請的主要目的在于提供一種針對電力數字系統的軟件缺陷檢測方法、針對電力數字系統的軟件缺陷檢測裝置、計算機可讀存儲介質和電子設備,以至少解決現有技術中軟件缺陷檢測方法在捕獲代碼缺陷語義方面的功能較弱,導致預測結果不準確且檢測模型構建成本較高的問題。
2、為了實現上述目的,根據本申請的一個方面,提供了一種針對電力數字系統的軟件缺陷檢測方法,包括:從電力數字系統的日志文件中獲取所述電力數字系統的歷史源程序,所述歷史源程序包括所述電力數字系統在開發階段的全部源程序代碼,以及所述電力數字系統在歷史時段內
3、可選地,對所述歷史源程序中的源代碼內容進行預處理,生成符合預測模型的標準化代碼文件,包括:對所述歷史源程序中的源代碼文件進行完整性檢查,得到完整源代碼和殘缺源代碼,所述完整性檢查包括邏輯完整性檢查和函數依賴完整性檢查;將所述歷史源程序中的所述殘缺源代碼篩除,得到僅包括所述完整源代碼的完整源代碼文件;對所述完整源代碼文件進行噪聲處理,去除所述完整源代碼文件中各源代碼的噪聲信息,得到所述標準化代碼文件。
4、可選地,編寫自動化靜態代碼分析腳本對所述標準化代碼文件中的源代碼內容進行自動化解析,得到解析后代碼文件,并提取所述解析后代碼文件中各源代碼的特征指標信息,包括:基于第三方代碼分析工具joern庫編寫所述自動化靜態代碼分析腳本;采用編寫的自動化靜態代碼分析腳本對所述標準化代碼文件進行自動化解析,得到解析后代碼文件;提取所述解析后代碼文件中的抽象語法樹及各源代碼的特征指標信息,所述抽象語法樹是一種以樹狀結構表示源代碼語法結構的抽象表示序列,所述特征指標信息包括原始指標、霍爾斯特德指標、循環復雜度指標和可維護性指數,所述原始指標為從所述歷史源程序中直接收集到的未經處理的數據或測量值,所述霍爾斯特德指標為用于衡量軟件代碼的復雜度和規模的軟件度量指標,所述循環復雜度指標用于衡量源代碼文件中的控制流復雜性和結構化程度,所述可維護性指數用于評估軟件代碼的可維護性和易讀性。
5、可選地,采用所述特征數據集作為輸入特征對預訓練模型進行微調訓練,所得針對歷史源程序的多分類軟件缺陷檢測模型,包括:根據所述解析后代碼文件中所有的所述源代碼,配合系統日志文件中的報錯日志以確定代碼缺陷類型;采用文本嵌入模型將所述解析后代碼文件中所有的所述源代碼的抽象語法樹表示序列映射到連續的向量空間,得到各所述源代碼的數字向量;將各所述源代碼的特征指標信息和所述數字向量相融合,得到各所述源代碼的特征序列;搭建預測模型架構,首先采用預訓練的codebert模型進一步提取所輸入特征序列的代碼語義特征,并構建隨機森林分類器對所提取的語義特征進行預測;在模型訓練過程中,采用dora微調訓練方法,根據所述特征數據集和所述代碼缺陷類型對預訓練模型進行訓練,得到所述多分類軟件缺陷檢測模型。
6、可選地,根據所述解析后代碼文件中所有的所述源代碼,配合系統日志文件中的報錯日志以確定代碼缺陷類型,包括:對所述解析后代碼文件中所有的所述源代碼的缺陷情況根據報錯日志進行統計分析,得到各源代碼缺陷的發生頻次;按照各所述源代碼缺陷的發生頻次從大到小對各所述源代碼缺陷進行發生頻率排序;將第一類至第五類源代碼缺陷的標簽確定為對應的代碼缺陷類型;將第六類源代碼缺陷的標簽統一確定為所述代碼缺陷類型中的其他缺陷,所述第六類源代碼缺陷為除所述第一類至第五類源代碼缺陷以外的所有的所述源代碼缺陷。
7、可選地,在將待測試源程序輸入到所述多分類軟件缺陷檢測模型中進行預測,得到預測結果之后,所述方法還包括:根據所述預測結果,生成以json文件的形式表征所述待測試源程序的檢測報告,其中,所述json文件的key值為所述待測試源程序中各代碼的文件名,value值為所述待測試源程序的各代碼對應的缺陷預測情況,所述缺陷預測情況為有缺陷或者無缺陷,在所述缺陷預測情況為有缺陷的情況下,注明缺陷的標簽信息。
8、可選地,定期獲取所述電力數字系統的日志文件中備份的更新源代碼數據;確定當前時刻下所述多分類軟件缺陷檢測模型的當前缺陷檢測準確率;在所述多分類軟件缺陷檢測模型的當前缺陷檢測準確率小于或者等于預設準確率的情況下,將所述歷史源程序與所述更新源代碼數據進行整合,得到更新源代碼文件;采用增量學習方法和所述更新源代碼文件重新微調訓練所述多分類軟件缺陷檢測模型,實現更新缺陷檢測模型。
9、根據本申請的另一方面,提供了一種針對電力數字系統的軟件缺陷檢測裝置,包括:采集單元,用于從電力數字系統的日志文件中獲取所述電力數字系統的歷史源程序,所述歷史源程序包括所述電力數字系統在開發階段的全部源程序代碼,以及所述電力數字系統在歷史時段內運行時產生的缺陷代碼;預處理單元,用于對所述歷史源程序中的源代碼內容進行預處理,生成符合預測模型的標準化代碼文件;解析單元,用于編寫自動化靜態代碼分析腳本對所述標準化代碼文件中的源代碼內容進行自動化解析,得到解析后代碼文件,并提取所述解析后代碼文件中各源代碼的特征指標信息;確定單元,用于將所述解析后代碼文件中所有的所述源代碼的抽象語法樹及其對應的特征指標信息的集合確定為特征數據集,并采用所述特征數據集作為輸入特征對預訓練模型進行微調訓練,所得針對歷史源程序的多分類軟件缺陷檢測模型;預測單元,用于將待測試源程序輸入到所述多分類軟件缺陷檢測模型中進行預測,得到預測結果,所述預本文檔來自技高網...
【技術保護點】
1.一種針對電力數字系統的軟件缺陷檢測方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,對所述歷史源程序中的源代碼內容進行預處理,生成符合預測模型的標準化代碼文件,包括:
3.根據權利要求1所述的方法,其特征在于,編寫自動化靜態代碼分析腳本對所述標準化代碼文件中的源代碼內容進行自動化解析,得到解析后代碼文件,并提取所述解析后代碼文件中各源代碼的特征指標信息,包括:
4.根據權利要求1所述的方法,其特征在于,采用所述特征數據集作為輸入特征對預訓練模型進行微調訓練,所得針對歷史源程序的多分類軟件缺陷檢測模型,包括:
5.根據權利要求4所述的方法,其特征在于,根據所述解析后代碼文件中所有的所述源代碼,配合系統日志文件中的報錯日志以確定代碼缺陷類型,包括:
6.根據權利要求1所述的方法,其特征在于,在將待測試源程序輸入到所述多分類軟件缺陷檢測模型中進行預測,得到預測結果之后,所述方法還包括:
7.根據權利要求1所述的方法,其特征在于,所述方法還包括:
8.一種針對電力數字系統的軟件缺陷檢
9.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質包括存儲的程序,其中,在所述程序運行時控制所述計算機可讀存儲介質所在設備執行權利要求1至7中任意一項所述的針對電力數字系統的軟件缺陷檢測方法。
10.一種電子設備,其特征在于,包括:一個或多個處理器,存儲器,以及一個或多個程序,其中,所述一個或多個程序被存儲在所述存儲器中,并且被配置為由所述一個或多個處理器執行,所述一個或多個程序包括用于執行權利要求1至7中任意一項所述的針對電力數字系統的軟件缺陷檢測方法。
...【技術特征摘要】
1.一種針對電力數字系統的軟件缺陷檢測方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,對所述歷史源程序中的源代碼內容進行預處理,生成符合預測模型的標準化代碼文件,包括:
3.根據權利要求1所述的方法,其特征在于,編寫自動化靜態代碼分析腳本對所述標準化代碼文件中的源代碼內容進行自動化解析,得到解析后代碼文件,并提取所述解析后代碼文件中各源代碼的特征指標信息,包括:
4.根據權利要求1所述的方法,其特征在于,采用所述特征數據集作為輸入特征對預訓練模型進行微調訓練,所得針對歷史源程序的多分類軟件缺陷檢測模型,包括:
5.根據權利要求4所述的方法,其特征在于,根據所述解析后代碼文件中所有的所述源代碼,配合系統日志文件中的報錯日志以確定代碼缺陷類型,包括:
6.根據權利要求1所述的...
【專利技術屬性】
技術研發人員:趙曉瑋,梁志宏,楊祎巍,索思亮,蔣屹新,陳立明,徐培明,黃開天,徐文倩,
申請(專利權)人:南方電網科學研究院有限責任公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。