[發(fā)明專利]用于測試代碼文件的方法和裝置有效
| 申請?zhí)枺?/td> | 201910293797.1 | 申請日: | 2019-04-12 |
| 公開(公告)號: | CN110059009B | 公開(公告)日: | 2023-06-27 |
| 發(fā)明(設(shè)計(jì))人: | 李鵬;陳耀輝;韋韜 | 申請(專利權(quán))人: | 百度(美國)有限責(zé)任公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京英賽嘉華知識產(chǎn)權(quán)代理有限責(zé)任公司 11204 | 代理人: | 王達(dá)佐;馬曉亞 |
| 地址: | 美國加利*** | 國省代碼: | 暫無信息 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 測試 代碼 文件 方法 裝置 | ||
1.一種用于測試代碼文件的方法,包括:
編譯待測試代碼文件得到中間代碼文件;
將第一插樁內(nèi)容插樁到所述中間代碼文件,其中,所述第一插樁內(nèi)容包括用于指示所述中間代碼文件中的每個(gè)代碼塊的代碼塊標(biāo)識;
根據(jù)所述中間代碼文件中的各個(gè)代碼塊標(biāo)識,確定所述中間代碼文件中存在跳轉(zhuǎn)關(guān)系的兩代碼塊之間的跳轉(zhuǎn)關(guān)系標(biāo)識;
基于各所述代碼塊標(biāo)識和各所述跳轉(zhuǎn)關(guān)系標(biāo)識,對所述插樁后的所述中間代碼文件進(jìn)行動態(tài)測試,生成測試所述待測試代碼文件的測試結(jié)果,其中,所述動態(tài)測試包括:
生成測試用例集合,以及新建空的測試過程信息集合;
執(zhí)行以下第一測試操作:響應(yīng)于確定不滿足預(yù)設(shè)切換條件,以所述測試用例集合中的測試用例作為輸入,對經(jīng)編譯的插樁后的所述中間代碼進(jìn)行灰盒模糊測試,用灰盒模糊測試過程中所用到的測試用例、灰盒模糊測試過程所訪問的跳轉(zhuǎn)關(guān)系標(biāo)識和灰盒模糊測試過程對應(yīng)的錯(cuò)誤訪問標(biāo)識生成測試過程信息,其中,灰盒模糊測試過程對應(yīng)的錯(cuò)誤訪問標(biāo)識用以表征灰盒模糊測試過程是否訪問過錯(cuò)誤檢測語句;并且將所生成的測試過程信息添加到所述測試過程信息集合中;以及
響應(yīng)于確定滿足所述預(yù)設(shè)切換條件,執(zhí)行以下第二測試操作:用候選測試用例生成候選測試用例集合;其中,所述候選測試用例是所述測試過程信息集合中錯(cuò)誤訪問標(biāo)識為是和/或所訪問的跳轉(zhuǎn)關(guān)系標(biāo)識不為空的測試過程信息中的測試用例,以所述候選測試用例集合中的候選測試用例作為輸入,動態(tài)符號執(zhí)行插樁后的所述中間代碼文件,生成與所輸入的候選測試用例的執(zhí)行路徑互補(bǔ)的互補(bǔ)測試用例;將所生成的互補(bǔ)測試用例添加到所述測試用例集合中;繼續(xù)執(zhí)行所述第一測試操作。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述基于各所述代碼塊標(biāo)識和各所述跳轉(zhuǎn)關(guān)系標(biāo)識,對所述插樁后的所述中間代碼文件進(jìn)行動態(tài)測試,生成測試所述待測試代碼文件的測試結(jié)果,包括:
編譯插樁后的所述中間代碼文件,得到與插樁后的所述中間代碼文件對應(yīng)的目標(biāo)文件;
基于各所述代碼塊標(biāo)識和各所述跳轉(zhuǎn)關(guān)系標(biāo)識,交叉對所述目標(biāo)文件進(jìn)行灰盒模糊測試以及動態(tài)符號執(zhí)行插樁后的所述中間代碼文件,生成測試所述待測試代碼文件的測試結(jié)果。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述基于各所述代碼塊標(biāo)識和各所述跳轉(zhuǎn)關(guān)系標(biāo)識,對所述插樁后的所述中間代碼文件進(jìn)行動態(tài)測試,生成測試所述待測試代碼文件的測試結(jié)果,包括:
編譯插樁后的所述中間代碼文件,得到與插樁后的所述中間代碼文件對應(yīng)的目標(biāo)文件;
基于各所述代碼塊標(biāo)識和各所述跳轉(zhuǎn)關(guān)系標(biāo)識,對所述目標(biāo)文件進(jìn)行灰盒模糊測試,生成測試所述待測試代碼文件的測試結(jié)果。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述基于各所述代碼塊標(biāo)識和各所述跳轉(zhuǎn)關(guān)系標(biāo)識,對所述插樁后的所述中間代碼文件進(jìn)行動態(tài)測試,生成測試所述待測試代碼文件的測試結(jié)果,包括:
基于各所述代碼塊標(biāo)識和各所述跳轉(zhuǎn)關(guān)系標(biāo)識,動態(tài)符號執(zhí)行插樁后的所述中間代碼文件,生成測試所述待測試代碼文件的測試結(jié)果。
5.根據(jù)權(quán)利要求2所述的方法,其中,所述編譯待測試代碼文件得到中間代碼文件,包括:
編譯待測試代碼文件得到包括第二插樁內(nèi)容的中間代碼文件,其中,所述第二插樁內(nèi)容包括所述錯(cuò)誤檢測語句以及與用于指示所述錯(cuò)誤檢測語句所在位置的位置標(biāo)記語句。
6.根據(jù)權(quán)利要求1所述的方法,其中,所述第一測試操作還包括:
將灰盒模糊測試過程中所用到的測試用例從所述測試用例集合中刪除。
7.根據(jù)權(quán)利要求1所述的方法,其中,所述第一測試操作還包括:
響應(yīng)于確定滿足預(yù)設(shè)結(jié)束條件,將對經(jīng)編譯的插樁后的所述中間代碼進(jìn)行灰盒模糊測試的測試結(jié)果作為測試所述待測試代碼文件的測試結(jié)果。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述第二測試操作還包括:在繼續(xù)執(zhí)行所述第一測試操作之前,
將動態(tài)符號執(zhí)行過程中所用到的候選測試用例從所述候選測試用例集合中刪除。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于百度(美國)有限責(zé)任公司,未經(jīng)百度(美國)有限責(zé)任公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910293797.1/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測;錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測試作故障硬件的檢測或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測試或調(diào)試防止錯(cuò)誤





