[发明专利]接口参数约束代码定位方法与系统有效
申请号: | 201810738453.2 | 申请日: | 2018-07-06 |
公开(公告)号: | CN109062785B | 公开(公告)日: | 2021-03-19 |
发明(设计)人: | 蔡华谦;黄罡;张颖;黄震;景翔 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/75 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100000*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 接口 参数 约束 代码 定位 方法 系统 | ||
本发明公开了一种接口参数约束代码定位方法与系统,在约束代码入口定位阶段,先收集预设的输入参数的场景下系统客户端中的代码覆盖数据,并据此对系统客户端进行选择性插桩以插入探针,然后运行插桩后的系统客户端并演示场景,以触发读取接口参数和执行探针,通过探针打印出当前的函数调用栈和输入控件元信息,并据此定位到接口参数约束代码的入口函数。在关键代码定位阶段,通过程序插桩的方式采集场景下从入口函数开始的函数调用关系,并据此对各函数进行关键代码分析,以定位出与接口参数相关的所有约束代码。本发明有效解决了接口参数约束代码的定位问题,从而帮助开发者筛选出真正跟参数约束密切相关的代码。
技术领域
本发明涉及计算机软件,尤其涉及一种接口参数约束代码定位方法与系统。
背景技术
在大数据时代,将信息系统中的数据和功能服务化,以便实现数据的开放、共享与融合,具有十分重要的意义。目前,服务化的常见形式是通过Web应用编程接口(WebApplication Programming Interface,Web API)来开放系统的功能和数据。为了保证服务化后不影响原系统的正常运行,必须对API接口进行必要的参数约束。然而,大量信息系统在开发时并未考虑到服务化的需要,原系统开发者在开发接口时没有进行严格的参数约束,服务器端对参数的约束检查并不够完备,甚至服务器端完全不检查,只依赖客户端中的参数校验。为了保证服务化的正确性,有必要在Web API中编写处理程序,来实现客户端的参数约束。在编写处理程序时,最直接的方法是在原系统的客户端中定位到接口参数约束代码,以此作为参考。
接口参数约束代码的定位过程存在着以下两个挑战:
1)代码入口难以定位:
参数输入控件与事件处理函数之间的绑定关系较为复杂,事件处理的过程也难以跟踪与定位,这使得开发者很难定位约束代码的入口。
2)关键代码定位较为困难:
约束代码片段中通常存在无关语句和外部函数调用,开发者很难定位到跟参数约束真正相关的关键语句。
发明内容
本发明主要目的在于,提供一种接口参数约束代码定位方法与系统,以解决现有技术在将信息系统中的数据和功能服务化的过程中,在编写处理程序时难以定位到接口参数约束代码的问题。
本发明是通过如下技术方案实现的:
一种接口参数约束代码定位方法,包括:
步骤A:收集预设的输入参数的场景下系统客户端中的代码覆盖数据;
步骤B:基于所述代码覆盖数据对所述系统客户端进行选择性插桩,以插入探针;
步骤C:运行插桩后的系统客户端,并演示所述场景,以触发读取接口参数和执行所述探针,所述探针打印出当前的函数调用栈和输入控件元信息;
步骤D:根据所述函数调用栈和输入控件元信息,定位到接口参数约束代码的入口函数;
步骤E:通过程序插桩的方式,采集所述场景下从所述入口函数开始的函数调用关系;
步骤F:读取所述系统客户端的代码以及所述函数调用关系,并据此在函数之间跳转浏览,对各函数进行关键代码分析,以定位出与所述接口参数相关的所有约束代码。
进一步地,所述步骤A包括:
步骤A1:获取系统初始化后不演示所述场景时的代码覆盖数据C1和演示所述场景时的代码覆盖数据C2;
步骤A2:计算C1与C2的差值,并将C1与C2的差值作为所述代码覆盖数据。
进一步地,所述步骤B中,所述选择性插桩的范围限于所述场景下执行过的代码,且插桩的位置限于有可能读取接口参数的程序操作点。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810738453.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:接口参数约束代码入口定位方法与系统
- 下一篇:测试用例的运行方法、装置及终端