[發明專利]接口參數約束代碼入口定位方法與系統有效
| 申請號: | 201810737261.X | 申請日: | 2018-07-06 |
| 公開(公告)號: | CN109062784B | 公開(公告)日: | 2021-04-27 |
| 發明(設計)人: | 張穎;黃罡;蔡華謙;黃震;馬鄆 | 申請(專利權)人: | 北京大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36;G06F8/75 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 莎日娜 |
| 地址: | 100000*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 接口 參數 約束 代碼 入口 定位 方法 系統 | ||
本發明公開了一種接口參數約束代碼入口定位方法與系統,先收集預設的輸入參數的場景下系統客戶端中的代碼覆蓋數據,并據此對系統客戶端進行選擇性插樁以插入探針,然后運行插樁后的系統客戶端并演示場景,以觸發讀取接口參數和執行探針,通過探針打印出當前的函數調用棧和輸入控件元信息,并據此定位到接口參數約束代碼的入口函數。本發明有效解決了現有技術在將信息系統中的數據和功能服務化的過程中,在對接口參數約束代碼定位時難以定位代碼入口的問題,從而幫助開發者快速定位到接口參數約束代碼入口,從而幫助開發者更快篩選出真正跟參數約束密切相關的代碼。
技術領域
本發明涉及計算機軟件,尤其涉及一種接口參數約束代碼入口定位方法與系統。
背景技術
在大數據時代,將信息系統中的數據和功能服務化,以便實現數據的開放、共享與融合,具有十分重要的意義。目前,服務化的常見形式是通過Web應用編程接口(WebApplication Programming Interface,Web API)來開放系統的功能和數據。為了保證服務化后不影響原系統的正常運行,必須對API接口進行必要的參數約束。然而,大量信息系統在開發時并未考慮到服務化的需要,原系統開發者在開發接口時沒有進行嚴格的參數約束,服務器端對參數的約束檢查并不夠完備,甚至服務器端完全不檢查,只依賴客戶端中的參數校驗。為了保證服務化的正確性,有必要在Web API中編寫處理程序,來實現客戶端的參數約束。在編寫處理程序時,最直接的方法是在原系統的客戶端中定位到接口參數約束代碼,以此作為參考。
接口參數約束代碼的定位過程存在著以下兩個挑戰:
1)代碼入口難以定位:
參數輸入控件與事件處理函數之間的綁定關系較為復雜,事件處理的過程也難以跟蹤與定位,這使得開發者很難定位約束代碼的入口。
2)關鍵代碼定位較為困難:
約束代碼片段中通常存在無關語句和外部函數調用,開發者很難定位到跟參數約束真正相關的關鍵語句。
發明內容
本發明主要目的在于,提供一種接口參數約束代碼入口定位方法與系統,以解決現有技術在將信息系統中的數據和功能服務化的過程中,在對接口參數約束代碼定位時難以定位代碼入口的問題。
本發明是通過如下技術方案實現的:
一種接口參數約束代碼入口定位方法,包括:
步驟A:收集預設的輸入參數的場景下系統客戶端中的代碼覆蓋數據;
步驟B:基于所述代碼覆蓋數據對所述系統客戶端進行選擇性插樁,以插入探針;
步驟C:運行插樁后的系統客戶端,并演示所述場景,以觸發讀取接口參數和執行所述探針,所述探針打印出當前的函數調用棧和輸入控件元信息;
步驟D:根據所述函數調用棧和輸入控件元信息,定位到接口參數約束代碼的入口函數。
進一步地,所述步驟A包括:
步驟A1:獲取系統初始化后不演示所述場景時的代碼覆蓋數據C1和演示所述場景時的代碼覆蓋數據C2;
步驟A2:計算C1與C2的差值,并將C1與C2的差值作為所述代碼覆蓋數據。
進一步地,所述步驟B中,所述選擇性插樁的范圍限于所述場景下執行過的代碼,且插樁的位置限于有可能讀取接口參數的程序操作點。
進一步地,所述函數調用棧包括位于底層的系統庫函數、位于所述系統庫函數之上的事件回調函數、位于所述事件回調函數之上的參數約束入口函數;
所述輸入控件元信息包括事件監聽函數、控件本身屬性。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京大學,未經北京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810737261.X/2.html,轉載請聲明來源鉆瓜專利網。





