测试用例自动生成的方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:17654891 阅读:71 留言:0更新日期:2018-04-08 08:17
本发明专利技术涉及一种测试用例自动生成的方法、装置、计算机设备及存储介质。一种测试用例自动生成的方法、装置、计算机设备及存储介质,在执行程序语句的过程中,当程序语句中的分支语句为非线性逻辑表达式时,调用预设结果值取代非线性逻辑表达式中的变量值,预设结果值为与非线性逻辑表达式对应程序处理测试数据得到的结果值;当程序语句中的分支语句为外部调用函数时,调用预设运行结果取代调用函数,预设运行结果为与调用函数对应的函数处理测试数据得到的运行结果。本方案解决了符号执行无法针对非线性逻辑表达式和外部调用函数执行的问题。

【技术实现步骤摘要】
测试用例自动生成的方法、装置、计算机设备及存储介质
本专利技术涉及软件测试领域,特别是涉及一种测试用例自动生成的方法、装置、计算机设备及存储介质。
技术介绍
随着全球信息化的快速发展,人们越来越重视各工控系统、信息系统等软件的可靠性、安全性问题。软件测试是提高软件的可靠性、安全性的主要技术。其中,如何通过提高软件测试的自动化程度来提高软件的安全性、可靠性等问题已成为当今学术界研究的热点。测试用例的自动化生成是软件测试自动化程度的重要体现。现阶段,一般采用基于符合执行法的测试用例生成技术,该方法首先分析程序的执行路径,然后用符号替换,然后按照程序的路径静态执行相应的符号表达式,当路径执行完毕后生成测试用例。然而这个方法存在无法针对非线性逻辑表达式和外部调用函数执行的缺陷。
技术实现思路
基于此,有必要针对符号执行存在无法针对非线性逻辑表达式和外部调用函数执行的问题,提供一种测试用例自动生成的方法、装置、计算机设备及存储介质。一种测试用例自动生成的方法,包括以下步骤:加载被测程序,接收测试数据;根据测试数据执行被测程序中的当前程序语句,检测分支语句;若分支语句为非线性逻辑表达式,则调用预设结本文档来自技高网...
测试用例自动生成的方法、装置、计算机设备及存储介质

【技术保护点】
一种测试用例自动生成的方法,其特征在于,包括以下步骤:加载被测程序,接收测试数据;根据所述测试数据执行所述被测程序中的当前程序语句,检测分支语句;若所述分支语句为非线性逻辑表达式,则调用预设结果值取代所述非线性逻辑表达式中的变量值,所述预设结果值为与所述非线性逻辑表达式对应程序处理所述测试数据得到的结果值;若所述分支语句为调用函数,则调用预设运行结果取代所述调用函数,所述预设运行结果为与所述调用函数对应的函数处理所述测试数据得到的运行结果;更新所述被测程序对应路径,在ture的分支语句中执行所述被测程序的下一程序语句,将所述下一程序语句作为当前程序语句,返回所述根据所述测试数据执行所述被测程序...

【技术特征摘要】
1.一种测试用例自动生成的方法,其特征在于,包括以下步骤:加载被测程序,接收测试数据;根据所述测试数据执行所述被测程序中的当前程序语句,检测分支语句;若所述分支语句为非线性逻辑表达式,则调用预设结果值取代所述非线性逻辑表达式中的变量值,所述预设结果值为与所述非线性逻辑表达式对应程序处理所述测试数据得到的结果值;若所述分支语句为调用函数,则调用预设运行结果取代所述调用函数,所述预设运行结果为与所述调用函数对应的函数处理所述测试数据得到的运行结果;更新所述被测程序对应路径,在ture的分支语句中执行所述被测程序的下一程序语句,将所述下一程序语句作为当前程序语句,返回所述根据所述测试数据执行所述被测程序中的当前程序语句的步骤;当所述对应路径执行完毕时,生成测试用例。2.根据权利要求1所述的测试用例自动生成的方法,其特征在于,所述加载被测程序的步骤前还包括:在所述被测程序中插桩进行符号执行的函数。3.根据权利要求1所述的测试用例自动生成的方法,其特征在于,所述接收测试数据的步骤前还包括:接收并符号化处理原始数据,生成所述测试数据。4.根据权利要求3所述的测试用例自动生成的方法,其特征在于,所述在所述被测程序中插桩进行符号执行的函数的步骤前还包括:构建所述被测程序的函数调用关系图。5.根据权利要求1所述的测试用例自动生成的方法,其特征在于,所述检测分支语句的步骤前还包括:判断所述程序语句是否为程序末语句;当所述程序语句不为程序末语句时,根据所述程序语句执行结果更新符号值并进入所述检测分支语句的步骤;当所述程序语句为程序末语句时,判断所述被测程序中的所有路径是否执行完毕。6.根据权利要求1所述的测试用例自动生成的方法,其特征在于,所述当所述对应路径执行完毕时,生成测试用例的步...

【专利技术属性】
技术研发人员:王剑亮李冬刘奕宏
申请(专利权)人:中国电子产品可靠性与环境试验研究所
类型:发明
国别省市:广东,44

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

1