[發明專利]程序路徑中確定函數調用的上下文環境影響的方法有效
| 申請號: | 201210127864.0 | 申請日: | 2012-04-27 |
| 公開(公告)號: | CN102708053B | 公開(公告)日: | 2017-10-20 |
| 發明(設計)人: | 王雅文;宮云戰;周傲;黃俊飛;金大海;唐容;孫華衿 | 申請(專利權)人: | 北京郵電大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京匯澤知識產權代理有限公司11228 | 代理人: | 劉淑敏 |
| 地址: | 100876 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 程序 路徑 確定 函數 調用 上下文 環境 影響 方法 | ||
1.一種程序路徑中確定函數調用的上下文環境影響的方法,其特征在于,該方法包括:
A、獲取被測函數的目標覆蓋路徑和滿足該路徑的測試用例;
B、提取被測函數使用的全局變量;
C、采用路徑敏感的符號化區間運算技術,計算被調用函數在路徑上各調用點必需滿足的路徑上下文條件;
D、基于上下文條件,生成模擬替換代碼;對于同一函數可能在路徑上被多次調用,使用F表示被調用函數、fi為被調用函數在路徑上的一個調用點;
所述步驟C包括:
C1、為待測函數的輸入變量生成對應的符號,符號對應的初始取值區間的上限和下限都設置為測試用例中該變量的取值;
C2、將路徑的頭節點設置為當前節點,沿路徑進行數據流迭代;
C3、根據當前節點對應的語句更新數據流信息;
C4、判定當前節點是否為尾節點,如果是,退出計算;如果否,執行步驟C5;
C5、將當前節點的后繼節點設置為當前節點,然后返回步驟C3;
所述步驟C3包括:
C31、將當前所有符號以及符號對應的取值區間備份為前置信息pre-info;
C32、如果當前節點存在函數調用點f,為函數調用點生成對應的ID,所述ID包括該調用點對應的抽象語法樹節點信息和控制流圖節點信息;為有效輸出型變量生成對應的符號,有效輸出型變量包括返回值、指針或引用類型的參數、被測函數使用、且被f重定義的全局變量,將各有效輸出型變量及初始符號<var,symbol>記錄到f的初始符號集合中,將符號對應的初始取值區間下限設置為負無窮,將初始取值區間的上限設置為正無窮;
C33、如果當前節點存在尚未符號化的變量,為該變量生成對應的符號;
C34、如果當前節點對應的語句是賦值語句,計算賦值表達式的右端表達式對應的符號表達式,將賦值表達式的左端變量對應的符號表達式替換為計算結果;
C35、如果當前結點為分支結點,根據分支結點中的條件表達式計算各符號的分支限定區間;
C36、清除無效符號;
所述步驟C36包括:
C361、獲取當前所有的符號放入集合中;
C362、如果符號集合不為空,從集合中選擇一個符號symbol,將符號從集合中移除,執行步驟C363,否則退出當前步驟;
C363、查找是否有變量對應的符號表達式中包含symbol,如果是,執行步驟C362;如果否,則步驟C364;
C364、判斷symbol是否為某函數調用點f的輸出型變量var的初始符號,如果是,執行步驟C365;如果否,執行步驟C366;
C365、從pre-info中取出symbol對應的取值區間domain,將<var,domain>保存到函數調用點f的必需滿足的上下文條件中;
C366、清除symbol及對應的取值區間。
2.根據權利要求1所述的程序路徑中確定函數調用的上下文環境影響的方法,其特征在于,所述步驟A包括:
A1、獲取目標覆蓋路徑和讓待測函數沿該路徑執行的測試用例;
A2、對于控制流圖G=(Node,Edge,start,end),路徑P表示待測函數的一條執行序列<start,n1,…nend>,其中:所述start∈Node為函數入口,n∈Node,如果nend==end,P為一條完整路徑,否則P為一條子路徑;
A3、如果同一控制流圖節點在路徑上出現多次,視為不同的路徑節點。
3.根據權利要求1所述的程序路徑中確定函數調用的上下文環境影響的方法,其特征在于,所述步驟B包括:
B1、將路徑的首節點設置為當前節點,沿路徑進行數據流迭代;
B2、判斷當前節點是否存在全局變量,如果是,執行步驟B3,如果否,執行步驟B4;
B3、將當前節點使用的全局變量添加到被測函數的全局變量集合中;
B4、判斷當前節點是否為路徑的尾節點,如果是,退出計算;如果否,將當前節點的后繼節點設置為當前節點,然后返回步驟B2。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京郵電大學,未經北京郵電大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210127864.0/1.html,轉載請聲明來源鉆瓜專利網。





