单元测试中抽象内存模型优化技术研究
发布时间:2021-11-09 07:38
测试用例自动生成是自动化单元测试的重点之一,在面向路径的自动化单元测试中,抽象内存模型用于精准的提取路径上变量的语义和约束,其为自动生成测试用例的前提条件。但是,已有的抽象内存模型还存在不足之处,比如类型支持不全面、难以精确处理复杂操作、记录信息不全面等,这导致不能为一些所选路径生成测试用例或者生成了错误的测试用例,降低了测试效率及效果。本文围绕提高抽象内存模型记录的精确度和支持的完备性等方面进行研究,在已有抽象内存模型的基础上,提出了优化后的抽象内存模型,包括数值型、指针型、结构体型、数组型、共用体型。并且改进了约束提取算法和非数值型测试用例形状构建算法,使其能够更加精确的模拟复杂操作的语义,并提取约束。在优化后的抽象内存的基础上,解决了现存的两类问题,为自动测试用例生成提供了更为准确全面的信息。作者在代码测试系统(Code Test System,CTS)中实现了上述抽象内存模型,并对其进行了测试。结果表明,本文提出的优化后的抽象内存模型比原有的抽象内存模型更加通用,特别是在复杂类型的程序中,可以正常生成测试用例,测试覆盖率显著提高。
【文章来源】:北京邮电大学北京市 211工程院校 教育部直属院校
【文章页数】:64 页
【学位级别】:硕士
【部分图文】:
图2-2动态测试流程??7??
判定节点既分支节点的出度大于1,每一条出边都代表一种判定结果。??此外控制流图还有两个特别的节点:输入节点和输出节点。代码2-1所对应的控??制流图如图2-3所示。???1?int?test(int?n)??2?{??3?int?i,?flag?=?0;??4?for(i?-?2;?i?<=?n/2;?++i)??5?{??6?if(n?%?i?=?0)??7?{??8?return?I;??9?}??10?}??11?return?0;??12?}???代码2-1判断一个数是否是素数??2-1所示代码的作用是判断一个数是否是素数,如果是,返回0,如果不是,??返回1。其对应的控制流图如图2-3所示。??/Func?head?\??\^test_0^y??/6ecl?stmt\??x??(For?init?2)??x??(For?head?3??(Return?9?)?(?Return?5?)?(?If?out?6?)?\??%??/runc_out_t\??'v?est_10?)?(For一inc_7??
北京邮电大学工学硕士学位论文??图2-3中的True表示真分支,False表示假分支,图中的每一个节点都加了??前缀,用以描述当前节点所对应的语句。??通常,一个控制流图的节点对应一个或多个语句,而一个语句则对应一系列??抽象语法树节点,在实际应用中,会先找到控制流图节点,然后访问该节点对应??的一系列抽象语法树节点,最后将语法树节点上的相关信息存储到抽象内存模型??中。??2.3.3路径选择??路径选择〃4]是面向路径测试的基础,是必不可少的一部分。在单元覆盖测??试中,首先按照某种划分方式,将被测程序划分为多个目标覆盖元素,然后路径??选择会从中选取一个目标覆盖元素,开始进行选路。在选路的过程中,有两个集??合
【参考文献】:
期刊论文
[1]基于内存建模的复杂结构类型测试数据自动生成方法[J]. 李飞宇,宫云战,王雅文. 计算机辅助设计与图形学学报. 2012(02)
[2]单元覆盖测试中基于区间运算的路径选择[J]. 王思岚,王雅文,宫云战. 清华大学学报(自然科学版). 2011(S1)
[3]基于区间缩减的自动化打桩方法[J]. 周傲,王雅文,宫云战. 清华大学学报(自然科学版). 2011(S1)
[4]基于规格说明的若干逻辑覆盖测试准则[J]. 钱忠胜,缪淮扣. 软件学报. 2010(07)
[5]软件体系结构测试覆盖准则研究[J]. 叶俊民,赵良,罗景,王振宇,赵恒. 计算机工程. 2005(22)
[6]结构测试中的路径产生[J]. 肖庆,万琳,宫云战. 计算机工程. 2003(02)
博士论文
[1]测试用例自动生成的分支限界算法及实验研究[D]. 邢颖.北京邮电大学 2014
[2]分段符号执行模型及其环境交互问题研究[D]. 范文庆.北京邮电大学 2010
硕士论文
[1]单元自动化测试系统中路径选择方法的研究与设计[D]. 李青翠.北京邮电大学 2011
[2]面向符号执行的内存模型研究[D]. 代子营.国防科学技术大学 2009
本文编号:3484907
【文章来源】:北京邮电大学北京市 211工程院校 教育部直属院校
【文章页数】:64 页
【学位级别】:硕士
【部分图文】:
图2-2动态测试流程??7??
判定节点既分支节点的出度大于1,每一条出边都代表一种判定结果。??此外控制流图还有两个特别的节点:输入节点和输出节点。代码2-1所对应的控??制流图如图2-3所示。???1?int?test(int?n)??2?{??3?int?i,?flag?=?0;??4?for(i?-?2;?i?<=?n/2;?++i)??5?{??6?if(n?%?i?=?0)??7?{??8?return?I;??9?}??10?}??11?return?0;??12?}???代码2-1判断一个数是否是素数??2-1所示代码的作用是判断一个数是否是素数,如果是,返回0,如果不是,??返回1。其对应的控制流图如图2-3所示。??/Func?head?\??\^test_0^y??/6ecl?stmt\??x??(For?init?2)??x??(For?head?3??(Return?9?)?(?Return?5?)?(?If?out?6?)?\??%??/runc_out_t\??'v?est_10?)?(For一inc_7??
北京邮电大学工学硕士学位论文??图2-3中的True表示真分支,False表示假分支,图中的每一个节点都加了??前缀,用以描述当前节点所对应的语句。??通常,一个控制流图的节点对应一个或多个语句,而一个语句则对应一系列??抽象语法树节点,在实际应用中,会先找到控制流图节点,然后访问该节点对应??的一系列抽象语法树节点,最后将语法树节点上的相关信息存储到抽象内存模型??中。??2.3.3路径选择??路径选择〃4]是面向路径测试的基础,是必不可少的一部分。在单元覆盖测??试中,首先按照某种划分方式,将被测程序划分为多个目标覆盖元素,然后路径??选择会从中选取一个目标覆盖元素,开始进行选路。在选路的过程中,有两个集??合
【参考文献】:
期刊论文
[1]基于内存建模的复杂结构类型测试数据自动生成方法[J]. 李飞宇,宫云战,王雅文. 计算机辅助设计与图形学学报. 2012(02)
[2]单元覆盖测试中基于区间运算的路径选择[J]. 王思岚,王雅文,宫云战. 清华大学学报(自然科学版). 2011(S1)
[3]基于区间缩减的自动化打桩方法[J]. 周傲,王雅文,宫云战. 清华大学学报(自然科学版). 2011(S1)
[4]基于规格说明的若干逻辑覆盖测试准则[J]. 钱忠胜,缪淮扣. 软件学报. 2010(07)
[5]软件体系结构测试覆盖准则研究[J]. 叶俊民,赵良,罗景,王振宇,赵恒. 计算机工程. 2005(22)
[6]结构测试中的路径产生[J]. 肖庆,万琳,宫云战. 计算机工程. 2003(02)
博士论文
[1]测试用例自动生成的分支限界算法及实验研究[D]. 邢颖.北京邮电大学 2014
[2]分段符号执行模型及其环境交互问题研究[D]. 范文庆.北京邮电大学 2010
硕士论文
[1]单元自动化测试系统中路径选择方法的研究与设计[D]. 李青翠.北京邮电大学 2011
[2]面向符号执行的内存模型研究[D]. 代子营.国防科学技术大学 2009
本文编号:3484907
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3484907.html