[发明专利]一种自动化测试方法有效
申请号: | 201810330705.8 | 申请日: | 2018-04-13 |
公开(公告)号: | CN108549605B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 宿燕鸣 | 申请(专利权)人: | 郑州云海信息技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 450018 河南省郑州市*** | 国省代码: | 河南;41 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自动化 测试 方法 | ||
1.一种自动化测试方法,用于基于C/C++语言的软件的测试,其特征在于,包括:
获取待测试软件的源程序的函数接口的逻辑调用层次关系图和参数约束信息;
获取所述参数约束信息的配置信息;
根据所述逻辑调用层次关系图、参数约束信息和所述配置信息生成测试用例表;
根据所述测试用例表进行软件测试,获取对应的测试报告和测试数据的逻辑分支覆盖文件;
所述获取待测试软件的源程序的函数接口的逻辑调用层次关系图和参数约束信息,包括:
读取所述待测试软件的源程序的所在路径;
判断所述源程序的所在路径是否为目录;
若是,则进行扫描环境初始化,对所述源程序进行扫描;
生成相应的参数约束信息,以及对所述源程序的扫描信息进行遍历,绘制相应函数接口的调用层次关系图;
所述对所述源程序进行扫描,包括:
通过逐行扫描的方式,扫描头文件;
判断当前头文件中是否存在注释内容;
若是,则排除掉所述当前头文件中的注释内容,对当前扫描到的头文件,通过模式匹配将该头文件中的接口声明信息保存在预设的第一临时文件中;
依次打开每一个源文件,读取一行并去除行尾的空格,判断是否存在注释内容;
若是,则排除掉该注释内容;
判断该行文件是否为头文件;
若该行文件为头文件,则转至步骤:判断当前头文件中是否存在注释内容;
若该行文件为源文件,则进行函数的定义字符流匹配,在匹配到所述函数的定义字符流后,在所匹配到的定义字符流所属的函数的开头插入预设的评价函数;
将对于各所述源文件的扫描结果存储到预设的第二临时文件中;
所述根据所述逻辑调用层次关系图、参数约束信息和所述配置信息生成测试用例表,包括:
读取目标接口参数信息描述文件和经过插桩的源程序动态链接库;
判断所述目标接口参数信息描述文件和经过插桩的源程序动态链接库是否同时存在;
若是,则根据所述目标接口参数信息描述文件确定目标接口参数编码序列长度和方式;
通过随机法生成若干初始化个体;
将各所述初始化个体代入待测程序进行运行,并记录对应的数据执行路径和对应路径的适应度值;
选取适应度值达到预设的最优值的初始化个体及该初始化个体对应的数据执行路径作为测试用例;
将生成的各测试用例存储至对应的测试用例表中。
2.据权利要求1所述的方法,其特征在于,所述生成相应的参数约束信息,以及对所述源程序的扫描信息进行遍历,绘制相应函数接口的调用层次关系图,包括:
生成相应的参数约束信息;
解析所述第二临时文件,通过pygraphviz绘制相应函数接口的调用层次关系图。
3.据权利要求2所述的方法,其特征在于,所述解析所述第二临时文件,通过pygraphviz绘制相应函数接口的调用层次关系图,包括:
读取目标接口函数列表,获取对应的目标函数;
在所述第二临时文件中寻找所述目标函数对应的结点,定义为目标结点;
将所述目标结点压入一个经过初始化后的栈中;
依次扫描所述目标结点的表示目标函数接口直接调用的函数的子结点,并通过第一属性线绘制各所述子结点和所述目标结点;
判断所述目标结点的子结点中是否有表示所述目标结点的逻辑判断分支的子结点;
若是,则将表示所述目标结点的逻辑判断分支的子结点和所述目标结点进行连接;
判断所述目标结点对应的目标函数所调用的子函数是否为自定义函数;
若是,则将当前结点入栈,并寻址到该自定义函数在所述第二临时文件中的位置,将该位置入栈;
重复步骤:判断所述目标结点对应的目标函数所调用的子函数是否为自定义函数;若是,则将当前结点入栈,并寻址到该自定义函数在所述第二临时文件中的位置,将该位置入栈;直至处理完毕后,将调用的函数的位置出栈,并从栈中弹出所述调用的函数的上一级调用位置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州云海信息技术有限公司,未经郑州云海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810330705.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种测试脚本生成方法、装置、终端设备及存储介质
- 下一篇:接口测试方法及装置