[發明專利]程序路徑中確定函數調用的上下文環境影響的方法有效
| 申請號: | 201210127864.0 | 申請日: | 2012-04-27 |
| 公開(公告)號: | CN102708053B | 公開(公告)日: | 2017-10-20 |
| 發明(設計)人: | 王雅文;宮云戰;周傲;黃俊飛;金大海;唐容;孫華衿 | 申請(專利權)人: | 北京郵電大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京匯澤知識產權代理有限公司11228 | 代理人: | 劉淑敏 |
| 地址: | 100876 *** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 程序 路徑 確定 函數 調用 上下文 環境 影響 方法 | ||
技術領域
本發明涉及軟件單元自動測試技術,尤其涉及一種程序路徑中確定函數調用的上下文環境影響的方法。
背景技術
在對軟件進行單元測試時,對于被測函數中的被調用的函數,通常不直接調用原函數,而是生成邏輯簡單的替換函數,用替換函數模擬原函數的行為,主要原因有:1)可以將被測程序與執行代價較大的實際程序隔離,提高單元測試的效率;2)將被測函數與不可控制的執行環境隔離,讓測試過程順利進行;3)單元測試中,被調用函數可能尚未實現。自動化單元測試中,替換函數的生成會遇到新問題。傳統的替換函數生成方法中,替換函數的輸出值為隨機值。自動化單元測試通常選擇一條目標覆蓋路徑,然后生成滿足該路徑的測試用例,最后動態執行被測函數,判斷沿該路徑執行時,程序的行為是否正確。由于路徑上被調用函數會修改調用點各變量的取值,被調用函數的隨機輸出值可能導致各變量的取值不能滿足路徑條件,導致被測函數不能按照目標覆蓋路徑執行,影響測試的覆蓋率。因此,需要計算被調用函數在路徑上每個調用點必須滿足的路徑上下文條件,替換函數根據各調用點必須滿足的上下文條件修改輸出型變量的取值,讓被測函數按照目標覆蓋路徑執行。
發明內容
有鑒于此,本發明的主要目的在于提供一種程序路徑中確定函數調用的上下文環境影響的方法,以計算給定路徑中各函數調用點對上下文環境所產生的影響,通過采用路徑敏感的符號化區間運算技術確定被調用函數在路徑上各調用點必須滿足的上下文條件,最后根據該條件生成被調用函數的模擬替換函數,保證被測程序按照目標覆蓋路徑執行,從而提高單元測試的效率和覆蓋率。
為達到上述目的,本發明的技術方案是這樣實現的:
一種程序路徑中確定函數調用的上下文環境影響的方法,該方法包括:
A、獲取被測函數的目標覆蓋路徑和滿足該路徑的測試用例;
B、提取被測函數使用的全局變量;
C、采用路徑敏感的符號化區間運算技術,計算被調用函數在路徑上各調用點必需滿足的路徑上下文條件;
D、基于上下文條件,生成模擬替換代碼;對于同一函數可能在路徑上被多次調用,使用F表示被調用函數、 fi為被調用函數在路徑上的一個調用點。
其中:所述步驟A包括:
A1、獲取目標覆蓋路徑和讓待測函數沿該路徑執行的測試用例;
A2、對于控制流圖G = (Node,Edge,start,end),路徑P表示待測函數的一條執行序列<start,n1,…nend>,其中:所述start∈ Node為函數入口, n∈ Node,如果nend== end,P為一條完整路徑,否則P為一條子路徑;
A3、如果同一控制流圖節點在路徑上出現多次,視為不同的路徑節點。
其中:所述步驟B包括:
B1、將路徑的首節點設置為當前節點,沿路徑進行數據流迭代;
B2、判斷當前節點是否存在全局變量,如果是,執行步驟B3,如果否,執行步驟B4;
B3、將當前節點使用的全局變量添加到被測函數的全局變量集合中;
B4、判斷當前節點是否為路徑的尾節點,如果是,退出計算;如果否,將當前節點的后繼節點設置為當前節點,然后返回步驟B2。
其中:所述步驟C包括:
C1、為待測函數的輸入變量生成對應的符號,符號對應的初始取值區間的上限和下限都設置為測試用例中該變量的取值;
C2、將路徑的頭節點設置為當前節點,沿路徑進行數據流迭代;
C3、根據當前節點對應的語句更新數據流信息;
C4、判定當前節點是否為尾節點,如果是,退出計算;如果否,執行步驟C5;
C5、將當前節點的后繼節點設置為當前節點,然后返回步驟C3。
其中:所述步驟C3包括:
C31、將當前所有符號以及符號對應的取值區間備份為前置信息pre-info;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京郵電大學,未經北京郵電大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210127864.0/2.html,轉載請聲明來源鉆瓜專利網。





