[发明专利]面向等式约束的测试用例生成方法和装置有效
| 申请号: | 201510229658.4 | 申请日: | 2015-05-07 |
| 公开(公告)号: | CN104809067B | 公开(公告)日: | 2017-11-17 |
| 发明(设计)人: | 黄俊飞;邢颖;宫云战;金大海;王雅文 | 申请(专利权)人: | 北京邮电大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京同立钧成知识产权代理有限公司11205 | 代理人: | 张洋,黄健 |
| 地址: | 100876 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 面向 等式 约束 测试 生成 方法 装置 | ||
1.一种面向等式约束的测试用例生成方法,其特征在于,包括:
接收测试用例生成请求,所述生成请求中携带待测程序;
获取所述待测程序的预定路径、表达式列表、所述预定路径中的各个变量及各个变量的第一取值区间;
根据所述表达式列表中的等式,确定等式约束的第一系数矩阵及第一增广矩阵;
判断所述第一系数矩阵的秩是否小于所述第一增广矩阵的秩;
若否,则对所述各个变量进行回退运算,确定各个变量的第二取值区间;
判断所述各个变量的第二取值区间的边界值是否相等;
若相等,则根据所述各个变量的第二取值区间生成测试用例;
其中,所述确定各个变量的第二取值区间,包括:
根据第一预设的规则对所述各个变量进行排序,确定当前变量;
判断所述表达式列表中所有等式中的变量个数是否都小于3个;
若是,则根据爬山法回退值选取规则为所述当前变量选取第一回退值;
根据所述第一回退值,对所述第一系数矩阵和第一增广矩阵进行约简,确定第二系数矩阵和第二增广矩阵;
判断所述第二系数矩阵的秩是否小于所述第二增广矩阵的秩;
若否,则对所述当前变量进行回退运算;
判断所述当前变量的回退运算是否发生矛盾;
若否,则判断是否已对所有变量进行回退运算;
若是,则确定所有变量的第二取值区间。
2.根据权利要求1所述的面向等式约束的测试用例生成方法,其特征在于,所述生成测试用例之后,还包括:
用所述生成的测试用例驱动所述待测程序,并记录所述待测程序实际执行的路径;
判断所述实际执行路径与预定路径是否符合;
若符合,则确定测试用例正确。
3.根据权利要求2所述的面向等式约束的测试用例生成方法,其特征在于,所述用所述生成的测试用例驱动所述待测程序,并记录所述待测程序实际执行的路径之前,还包括:
在所述待测程序中插装预设的代码;
所述用所述生成的测试用例驱动所述待测程序,并记录述待测程序实际执行的路径,包括:
用所述生成的测试用例驱动所述待测程序;
根据所述插装的预设代码记录所述待测程序实际执行的路径。
4.根据权利要求1所述的面向等式约束的测试用例生成方法,其特征在于,所述判断是否已对所有变量进行回退运算之后,还包括:
若否,则确定新的当前变量,重复执行所述确定所有变量的第二取值区间的过程,直至确定所述所有变量的第二取值区间。
5.根据权利要求1所述的面向等式约束的测试用例生成方法,其特征在于,所述判断所述当前变量的回退运算是否发生矛盾之后,还包括:
若是,则判断是否已遍历完所述当前变量的所有回退值;
若否,则为所述当前变量选取第二回退值,并基于所述第二回退值,为当前变量进行回退运算,直至遍历完所述当前变量的所有回退值。
6.根据权利要求5所述的面向等式约束的测试用例生成方法,其特征在于,所述判断是否已遍历完所述当前变量的所有回退值之后,还包括:
若是,则判断是否已对所述当前变量进行回溯运算;
若否,则对所述当前变量进行回溯运算;
为所述当前变量选取第三回退值,基于所述第三回退值对所述当前变量进行回退运算。
7.根据权利要求1所述的面向等式约束的测试用例生成方法,其特征在于,所述判断所述第二系数矩阵的秩是否小于所述第二增广矩阵的秩之后,还包括:
若是,则判断是否已遍历完所述当前变量的所有回退值;
若否,则根据爬山法回退值选取规则为所述当前变量选取第四回退值;
根据所述第一回退值,重复执行对所述第一系数矩阵和第一增广矩阵进行约简,确定第二系数矩阵和第二增广矩阵。
8.根据权利要求1所述的面向等式约束的测试用例生成方法,其特征在于,所述判断所述表达式列表中所有等式中的变量个数是否都小于3个之后,还包括:
若否,则根据第二预设的规则为所述当前变量选取第五回退值;
基于所述第五回退值,为对所述当前变量进行回退运算。
9.一种面向等式约束的测试用例生成装置,其特征在于,包括:
接收模块,用于接收测试用例生成请求,所述生成请求中携带待测程序;
获取模块,用于获取所述待测程序的预定路径、表达式列表、所述预定路径中的各个变量及各个变量的第一取值区间;
确定模块,用于根据所述表达式列表中的等式,确定等式约束的第一系数矩阵及第一增广矩阵;
判断模块,用于判断所述第一系数矩阵的秩是否小于所述第一增广矩阵的秩;
运算模块,用于若否,则对所述各个变量进行回退运算,确定各个变量的第二取值区间;
所述判断模块,还用于判断所述各个变量的第二取值区间的边界值是否相等;
生成模块,用于若相等,则根据所述各个变量的第二取值区间生成测试用例;
其中,所述运算模块,具体用于:
根据第一预设的规则对所述各个变量进行排序,确定当前变量;
判断所述表达式列表中所有等式中的变量个数是否都小于3个;
若是,则根据爬山法回退值选取规则为所述当前变量选取第一回退值;
根据所述第一回退值,对所述第一系数矩阵和第一增广矩阵进行约简,确定第二系数矩阵和第二增广矩阵;
判断所述第二系数矩阵的秩是否小于所述第二增广矩阵的秩;
若否,则对所述当前变量进行回退运算;
判断所述当前变量的回退运算是否发生矛盾;
若否,则判断是否已对所有变量进行回退运算;
若是,则确定所有变量的第二取值区间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510229658.4/1.html,转载请声明来源钻瓜专利网。





