面向等式约束的测试用例生成方法和装置制造方法及图纸

技术编号:11795871 阅读:103 留言:0更新日期:2015-07-30 00:33
本发明专利技术提供一种面向等式约束的测试用例生成方法和装置,测试用例生成方法包括:接收测试用例生成请求,生成请求中携带待测程序;获取待测程序的预定路径、表达式列表、预定路径中的各个变量及各个变量的第一取值区间;根据表达式列表中的等式,确定等式约束的第一系数矩阵及第一增广矩阵;判断第一系数矩阵的秩是否小于第一增广矩阵的秩;若否,则对各个变量进行回退运算,确定各个变量的第二取值区间;判断各个变量的第二取值区间的边界值是否相等;若相等,则根据各个变量的第二取值区间生成测试用例。本发明专利技术提供的面向等式约束的测试用例生成方法和装置,生成测试用例的过程无需人工干预,速度快,效率高,可对待测程序实现100%覆盖。

【技术实现步骤摘要】

本专利技术属于软件测试
,尤其是涉及一种面向等式约束的测试用例生成方 法和装置。
技术介绍
软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复 审,是软件质量保证的关键步骤。 在众多的软件测试方法中,面向路径的测试用例生成过程可以描述为:给定一个 程序模块(以下简称P)和P中任意一条路径(以下简称W),一个变量(以下简称xi)如 果出现在P的一个输入声明中,则称xi为P的一个输入变量,xi的定义域(以下简称Dxi) 为xi所有可能的取值集合。一个输入向量x= {xl,x2,…,xm} G (DxlXDx2X…XDxm) 称为P的一个程序输入,简称为P的一个输入,其中m为P中输入变量的个数。设P的所有 输入数据表示为解空间D,求x e D,使得以x为输入沿W运行P。目前路径W的测试用例生 成主要是靠人工来完成,需要大量的时间。目前,被测程序中有大量等式约束存在,如果主要靠人工完成,时间久,效率低,且 若无法满足等式约束则会导致最终生成的测试用例无法达到100%覆盖率,从而难以满足 对于软件可靠性的要求。
技术实现思路
本专利技术提供一种面向等式约束的测试用例生成方法和装置,用以克服现有技术中 包含等式约束的被测程序生成测试用例时,时间久,效率低的问题。 本专利技术提供了一种面向等式约束的测试用例生成方法,包括:接收测试用例生成 请求,所述生成请求中携带待测程序; 获取所述待测程序的预定路径、表达式列表、所述预定路径中的各个变量及各个 变量的第一取值区间; 根据所述表达式列表中的等式,确定等式约束的第一系数矩阵及第一增广矩阵; 判断所述第一系数矩阵的秩是否小于所述第一增广矩阵的秩; 若否,则对所述各个变量进行回退运算,确定各个变量的第二取值区间; 判断所述各个变量的第二取值区间的边界值是否相等; 若相等,则根据所述各个变量的第二取值区间生成测试用例。 本专利技术提供了一种面向等式约束的测试用例生成装置,包括: 接收模块,用于接收测试用例生成请求,所述生成请求中携带待测程序; 获取模块,用于获取所述待测程序的预定路径、表达式列表、所述预定路径中的各 个变量及各个变量的第一取值区间; 确定模块,用于根据所述表达式列表中的等式,确定等式约束的第一系数矩阵及 第一增广矩阵; 判断模块,用于判断所述第一系数矩阵的秩是否小于所述第一增广矩阵的秩; 运算模块,用于若否,则对所述各个变量进行回退运算,确定各个变量的第二取值 区间; 所述判断模块,还用于判断所述各个变量的第二取值区间的边界值是否相等; 生成模块,用于若相等,则根据所述各个变量的第二取值区间生成测试用例。 本专利技术提供的面向等式约束的测试用例生成方法和装置,通过构造待测程序中等 式约束的系数矩阵和增广矩阵,在确定系数矩阵的秩大于增广矩阵时,对待测程序中的各 个变量的取值区间进行回退运算,然后根据各个变量的回退运算不发生矛盾的取值区间生 成测试用例,生成测试用例的过程无需人工干预,速度快,效率高,可对待测程序实现100% 覆盖。【附图说明】 图1为本专利技术提供的面向等式约束的测试用例生成方法实施例一的流程图; 图2为本专利技术提供的面向等式约束的测试用例生成方法实施例二的流程图; 图3为本专利技术提供的确定所有变量的第二取值区间的流程示意图; 图4为本专利技术提供的面向等式约束的测试用例生成装置实施例一的结构示意图; 图5为本专利技术提供的面向等式约束的测试用例生成装置实施例二的结构示意图。【具体实施方式】 图1为本专利技术提供的面向等式约束的测试用例生成方法实施例一的流程示意图。 如图1所示,该面向等式约束的测试用例生成方法包括: S100,接收测试用例生成请求,所述生成请求中携带待测程序。 本测试用例生成方法的执行主体为测试用例生成装置。测试用例生成装置接收的 测试用例生成请求,可以是在收到待测程序后触发的;也可以是在测试用例生成装置获得 待测程序后,由人工在通过触发测试用例生成装置中的测试用例生成按钮触发的,本专利技术 对此不做限定。 S101,获取所述待测程序的预定路径、表达式列表、所述预定路径中的各个变量及 各个变量的第一取值区间。 测试用例生成装置接收到待测程序后,对待测程序进行分析,读取待测程序的预 定路径,并生成待测程序的控制流图。进而通过遍历待测程序的控制流图获得预定路径中 的各个变量、各个变量的取值区间及表达式列表等。 具体的,首先遍历控制流图,提取含有表达式的节点,并存储于线性表列中。然后 遍历线性列表中的每个节点,提取变量和表达式。 通过遍历线性列表中的每个节点,将条件语句中表达式和变量提取出来,其中,表 达式用于条件的计算,变量作为后续搜索过程的操作对象。这个过程可以沿着上述提取含 有表达式的节点的路径来进行,过程中还要考虑路径上的赋值语句。某些条件能够唯一地 确定某个或某些变量的值。而这些隐含的值就如同赋值一样,不再需要进一步搜索。这可 以大大缩少搜索空间。对这种条件要优先进行计算。例如,条件语句:if(a== 3),此时, 优先计算该语句,可以很快确定变量a的取值空间就只能是{3}。 上述优先计算能唯一确定值的条件的策略衍生的一个搜索原则是有限区域优先 搜索:某些变量在最初或经过某些条件约束,使搜索区域变得只有有限几个点,在这种条件 下优先搜索这种变量有助于尽早发现矛盾或搜索成功。例如,假设x为一个整型变量,条件 语句 if(l < x < 3),则确定了 x G [当前第1页1 2 本文档来自技高网...
面向等式约束的测试用例生成方法和装置

【技术保护点】
一种面向等式约束的测试用例生成方法,其特征在于,包括:接收测试用例生成请求,所述生成请求中携带待测程序;获取所述待测程序的预定路径、表达式列表、所述预定路径中的各个变量及各个变量的第一取值区间;根据所述表达式列表中的等式,确定等式约束的第一系数矩阵及第一增广矩阵;判断所述第一系数矩阵的秩是否小于所述第一增广矩阵的秩;若否,则对所述各个变量进行回退运算,确定各个变量的第二取值区间;判断所述各个变量的第二取值区间的边界值是否相等;若相等,则根据所述各个变量的第二取值区间生成测试用例。

【技术特征摘要】

【专利技术属性】
技术研发人员:黄俊飞邢颖宫云战金大海王雅文
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1