[發(fā)明專利]一種基于進化算法的電能表驅(qū)動程序測試方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 202110706245.6 | 申請日: | 2021-06-24 |
| 公開(公告)號: | CN113268432B | 公開(公告)日: | 2023-09-01 |
| 發(fā)明(設(shè)計)人: | 黃友朋;黨三磊;錢斌;張捷;肖勇;祁舒喆;羅鴻軒;李金莉;紀伊琳 | 申請(專利權(quán))人: | 廣東電網(wǎng)有限責任公司計量中心;南方電網(wǎng)科學研究院有限責任公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06N3/006 |
| 代理公司: | 北京集佳知識產(chǎn)權(quán)代理有限公司 11227 | 代理人: | 楊小紅 |
| 地址: | 510060 廣*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 進化 算法 電能表 驅(qū)動程序 測試 方法 系統(tǒng) | ||
1.一種基于進化算法的電能表驅(qū)動程序測試方法,其特征在于,包括:
基于驅(qū)動程序調(diào)用接口隨機生成測試用例;其中,所述測試用例包括文件描述符、命令指示符以及接口參數(shù)集合;
利用隨機生成的測試用例調(diào)用與其匹配的驅(qū)動程序調(diào)用接口進行模糊測試;若測試出現(xiàn)異常,則終止程序,輸出電能表的日志文件進行驅(qū)動程序調(diào)用接口測試結(jié)果分析;若測試結(jié)果正常,則利用進化算法對本次測試用例進行進化,利用進化算法的每次迭代過程中的局部最優(yōu)解再次進行模糊測試,直至滿足迭代結(jié)束條件;
輸出日志并對從日志挖掘出當前電能表的驅(qū)動程序中存在的漏洞;
其中,所述進化算法包括:
初始化種群,隨機生成若干個體,并與當前測試用例共同組成原始的種群;
計算種群中每個個體的適應(yīng)度,其中,適應(yīng)度采用調(diào)用接口代碼覆蓋率進行表示,所述調(diào)用接口代碼覆蓋率利用所述調(diào)用接口執(zhí)行結(jié)果提示信息的數(shù)量進行計算;
對測試用例對應(yīng)的驅(qū)動程序調(diào)用接口執(zhí)行結(jié)果進行變異操作;
基于交叉算子對種群進行交叉操作;
對于種群中的每個個體,選擇適應(yīng)度值大于當前個體適應(yīng)度值的新生個體作為下一代個體;
循環(huán)迭代直至滿足終止條件,獲得最優(yōu)的測試個體。
2.根據(jù)權(quán)利要求1所述的基于進化算法的電能表驅(qū)動程序測試方法,其特征在于,模糊測試包括:預先在電能表中安裝測試子程序,所述測試子程序用于接收外部主程序發(fā)送的測試用例及對應(yīng)的調(diào)用接口函數(shù)名,并調(diào)用接口函數(shù)進行測試,同時,將接口函數(shù)的輸出結(jié)果反饋給外部主程序。
3.根據(jù)權(quán)利要求2所述的基于進化算法的電能表驅(qū)動程序測試方法,其特征在于,測試出現(xiàn)異常包括:電能表異常以及滿足測試預設(shè)條件,其中,電能表異常包括死機或重啟,測試預設(shè)條件包括測試達到預定時間或者測試達到預定次數(shù)。
4.根據(jù)權(quán)利要求3所述的基于進化算法的電能表驅(qū)動程序測試方法,其特征在于,計算種群中每個個體的適應(yīng)度包括:將每個個體輸入其對應(yīng)的驅(qū)動程序接口函數(shù)中進行測試,獲取測試結(jié)果的提示信息,通過其提示信息的數(shù)量占比得到代碼覆蓋率,利用代碼覆蓋率表示每個個體的適應(yīng)度值,基于提示信息的數(shù)量占比來表示適應(yīng)度值選擇出代碼覆蓋率高的測試用例個體。
5.根據(jù)權(quán)利要求1-4任一所述的基于進化算法的電能表驅(qū)動程序測試方法,其特征在于,對測試用例對應(yīng)的驅(qū)動程序調(diào)用接口執(zhí)行結(jié)果進行變異操作包括:當調(diào)用接口函數(shù)執(zhí)行結(jié)果為0時,表明所述測試用例的數(shù)據(jù)有效,則僅對調(diào)用接口參數(shù)集合進行變異操作,當調(diào)用接口函數(shù)執(zhí)行結(jié)果為-1時,對命令指示符以及調(diào)用接口參數(shù)集合均執(zhí)行變異操作。
6.根據(jù)權(quán)利要求5所述的基于進化算法的電能表驅(qū)動程序測試方法,其特征在于,基于交叉算子對種群進行交叉操作包括:對種群中的每個個體通過交叉算子進行變異操作獲得變異后的個體。
7.一種基于進化算法的電能表驅(qū)動程序測試系統(tǒng),應(yīng)用于如權(quán)利要求1至6任一項所述的一種基于進化算法的電能表驅(qū)動程序測試方法,其特征在于,包括:
測試用例生成模塊,其配置為基于電能表驅(qū)動程序調(diào)用接口隨機生成測試用例;
模糊測試模塊,其配置為利用隨機生成的測試用例調(diào)用與其匹配的驅(qū)動程序接口進行模糊測試;
進化測試模塊,其配置為若測試出現(xiàn)異常,則終止程序,輸出日志進行分析;若測試結(jié)果正常,則利用進化算法對測試用例進行進化,利用進化算法的每次迭代過程中的局部最優(yōu)解再次進行模糊測試,直至滿足迭代結(jié)束條件;
結(jié)果輸出模塊,輸出日志并對從日志挖掘出當前電能表驅(qū)動程序中存在的漏洞。
8.一種電能表,其特征在于,所述電能表配合實現(xiàn)權(quán)利要求1-6任一所述基于進化算法的電能表驅(qū)動程序測試方法。
9.一種電子設(shè)備,其特征在于,所述電子設(shè)備用于基于權(quán)利要求1-6任一所述基于進化算法的電能表驅(qū)動程序測試方法對電能表進行電能表驅(qū)動程序測試。
10.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,計算機程序被處理器執(zhí)行時實現(xiàn)如權(quán)利要求1-6任一項所述的一種基于進化算法的電能表驅(qū)動程序測試方法。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣東電網(wǎng)有限責任公司計量中心;南方電網(wǎng)科學研究院有限責任公司,未經(jīng)廣東電網(wǎng)有限責任公司計量中心;南方電網(wǎng)科學研究院有限責任公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110706245.6/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





