【技术实现步骤摘要】
本专利技术涉及软件测试技术,特别涉及一种。
技术介绍
随着软件开发周期的时间限制、资源限制以及软件的日趋复杂化,一般大型应用软件的白盒测试工作仅靠手工已不能完全胜任。尤其是在迭代开发过程中,每一个版本下的各个组件都需要不断验证。由此产生了数据代码分离系统和自动化白盒测试技术。由于脚本编制工作,是一项较为繁琐的工作,目前通常使用基于控制模型的白盒测试脚本自动生成算法,此种设计方式的益处主要有如下两个方面1、基于图的最小路径覆盖算法,可以在满足覆盖率要求的条件下,提高测试效率,节省资源;2、基于控制模型生成测试用例,在 保证了逻辑完整性及功能的时序性。然而,该设计方式对于安全要求较高,且没有对源代码进行智能化分析,影响了测试用例生成的效率。
技术实现思路
(一)解决的技术问题本专利技术解决的技术问题是实现代码智能化分析和测试用例自动生成的问题。(二)技术方案本专利技术提出了一种,所述方法包括S1、对程序源代码进行预处理,并生成程序控制流图;S2、根据所述程序控制流图生成路径矩阵A,并为每条路径P中的每个谓词设置对应的优先级因子β ;S3、将所述路径根据所述优先级因子β逆 ...
【技术保护点】
一种基于数据代码分离技术的测试用例生成方法,其特征在于,所述方法包括:S1、对程序源代码进行预处理,并生成程序控制流图;S2、根据所述程序控制流图生成路径矩阵A,并为每条路径P中的每个谓词设置对应的优先级因子β;S3、将所述路径根据所述优先级因子β逆序排序,获得矩阵A′;S4、对于所述矩阵A′,选取路径Pi,当选取的路径Pi组成的矩阵A″的秩等于路径矩阵A的秩时,则路径选取结束;S5、根据所述路径Pi中谓词的类型,生成测试数据;S6、根据所述测试数据和所述路径Pi,生成测试用例。
【技术特征摘要】
1.一种基于数据代码分离技术的测试用例生成方法,其特征在于,所述方法包括 51、对程序源代码进行预处理,并生成程序控制流图; 52、根据所述程序控制流图生成路径矩阵A,并为每条路径P中的每个谓词设置对应的优先级因子β ; 53、将所述路径根据所述优先级因子β逆序排序,获得矩阵A'; 54、对于所述矩阵A',选取路径Pi,当选取的路径Pi组成的矩阵Α的秩等于路径矩阵A的秩时,则路径选取结束; 55、根据所述路径Pi中谓词的类型,生成测试数据; 56、根据所述测试数据和所述路径Pi,生成测试用例。2.根据权利要求1所述的方法,其特征在于,步骤S2中所述路径矩阵A中每行表示一条路径经过的边集合,每列表示每条路径经过边的次数。3.根据权利要求1所述的方法,其特征在于,在步骤S3之前所述方法还包括生成路径优先级系数,所述路径优先级系数为路径矩阵A每行中谓词的使用次数与所述每行中谓词对应的优先级因子的乘积。4.根据权利要求1所述的方法,其特征在于,步骤S5之前还包括设定程序的初始输入I0以及迭代次数上限Τ,如果Itl能经过路径Pi,则获得经过路径Pi的程序输入If,即If=I0 ;若I。不能经过路径Pi,则跳转步骤S5。5.根据权利要求1或4中任一项所述的方法,其特征在于,所述步骤S5中若所述路径Pi中谓词的类型为非线性,则所述方法包括 551、计算所述非线性谓词的线性函数L(Ni,IkiPi),其中Ik为输入变量,Pi为选取的路径,Ni为Pi上的结点; 552、用路径Pi中的所有线性函数和L(Ni,Ik,Pi)构造输入变量的线性约束系统,所述所有线性函数为所述路径Pi中谓词类型为线性的函数; 553、计算所...
【专利技术属性】
技术研发人员:何玺胜,胥志洪,
申请(专利权)人:北京交控科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。