买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
申请/专利权人:山东浪潮科学研究院有限公司
摘要:本申请实施例公开了一种单元测试用例生成方法、设备及介质,属于计算机软件技术领域,解决手动编写单元测试效率低下的问题,包括,通过编译器LLVM对获取到的源代码进行解析,生成中间表示;对中间表示进行代码分析与边界分析,以得到待测试单元;将输入变量替换为符号值,通过符号值对待测试单元对应的不同路径分别进行路径约束条件的采集;基于采集的路径约束条件,得到测试用例信息,基于测试用例信息确定出相应的测试框架,生成参考测试用例;执行参考测试用例,在测试覆盖率满足预置覆盖率阈值的情况下,确定参考测试用例为所需测试用例。
主权项:1.一种单元测试用例生成方法,其特征在于,所述方法包括:通过编译器LLVM对获取到的源代码进行解析,生成中间表示;对所述中间表示进行代码分析与边界分析,以得到待测试单元;将输入变量替换为符号值,通过所述符号值对所述待测试单元对应的不同路径分别进行路径约束条件的采集;基于采集的所述路径约束条件,得到测试用例信息,基于所述测试用例信息确定出相应的测试框架,生成参考测试用例;执行所述参考测试用例,在测试覆盖率满足预置覆盖率阈值的情况下,确定所述参考测试用例为所需测试用例;所述对所述中间表示进行代码分析与边界分析,以得到待测试单元,具体包括:遍历所述中间表示中的函数定义节点,并记录各所述函数定义节点分别对应的函数定义信息;其中,所述函数定义信息至少包括名称、参数、返回类型中的一项;对所述中间表示构建控制流图,以通过所述控制流图进行控制流分析,得到数据流信息;在所述中间表示中确定出存在边界的代码数据,并确定出边界条件;其中,所述存在边界的代码数据至少包括循环语句、条件语句、数组访问以及指针解引用中的一项;基于所述函数定义信息、所述数据流信息以及所述边界条件,得到所述待测试单元;其中,所述待测试单元至少包括关键函数、边界条件以及异常路径中的一项;所述将输入变量替换为符号值,通过所述符号值对所述待测试单元对应的不同路径分别进行路径约束条件的采集,具体包括:确定出所述待测试单元对应的控制流图;将输入变量替换为符号值,使所述符号值遍历所述控制流图,以基于所述控制流图中的各条件分支生成不同的执行路径;基于所述执行路径的分支点,生成相应的条件表达式,并将所述条件表达式作为分支点约束条件;基于所述待测试单元对应的多个分支点约束条件,得到所述测试单元对应的路径约束条件;所述执行所述参考测试用例,在测试覆盖率满足预置覆盖率阈值的情况下,确定所述参考测试用例为所需测试用例,具体包括:执行所述参考测试用例,获取测试覆盖率;将所述测试覆盖率与所述预置覆盖率阈值进行比对,在所述测试覆盖率小于所述预置覆盖率阈值的情况下,确定出未被测试覆盖的路径;针对所述未被测试覆盖的路径,生成新的测试用例,基于所述新的测试用例与所述参考测试用例生成新的参考测试用例,以进行测试用例生成迭代;执行所述新的参考测试用例,直至所述新的参考测试用例对应的测试覆盖率大于所述预置覆盖率阈值,结束迭代过程,得到所述所需测试用例;所述基于所述测试用例信息确定出相应的测试框架,生成参考测试用例之后,所述方法还包括:将所述参考测试用例对应的执行路径进行向量化处理;将向量化处理后的执行路径与预置缺陷数据向量进行相似度计算,以基于相似度结果确定出所述参考测试用例匹配的参考缺陷数据;基于匹配关系,将所述参考测试用例划分为多个测试用例组;基于每个所述测试用例组,将每个测试用例路径作为一个节点,对所述测试用例进行模拟执行测试用例路径,基于模拟结果,对各节点进行权重分配;基于权重分配结果与各所述参考缺陷数据分别对应的权重,对所述参考测试用例进行筛选;所述将所述参考测试用例对应的执行路径进行向量化处理,具体包括:基于各所述参考测试用例,构建参考测试用例集;基于孤立森林算法,确定出各所述参考测试用例分别对应的异常分值,基于所述异常分值将所述参考测试用例集中的异常参考测试用例进行筛除;对筛除后的各所述参考测试用例的路径进行特征提取,得到各所述参考测试用例分别对应的数据特征值;对各所述数据特征值进行组合,得到所述参考测试用例集对应的数据特征集;将各所述数据特征值分别在所述数据特征集中进行投影,得到各所述数据特征值分别对应的第一数据特征向量;基于数据特征的不同,对所述第一数据特征向量中不同数据特征进行权重分配,得到各所述测试用例分别对应的第二数据特征向量。
全文数据:
权利要求:
百度查询: 山东浪潮科学研究院有限公司 一种单元测试用例生成方法、设备及介质
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。