用于包括多个函数测试模块的单元测试方法及装置制造方法及图纸

技术编号:9694637 阅读:118 留言:0更新日期:2014-02-21 00:53
本发明专利技术公开了一种用于包括多个函数测试模块的单元测试方法及装置,为解决现有的单元测试中无法实现函数调用语句中函数错误的测试而设计。所述方法包括构建测试模块,所述测试模块包括两个以上有调用关系的函数;根据测试模块内程序的逻辑关系及函数间的调用关系形成若干条函数间路径;为每一条所述函数间路径选择测试用例进行测试。所述方法及装置在单元测试阶段即可及时的发现函数调用中的错误,避免了将函数调用的错误延迟到集成测试中,进而及时的对软件中函数调用的错误进行修正,达到了降低测试成本的目的。

【技术实现步骤摘要】
用于包括多个函数测试模块的单元测试方法及装置
本专利技术涉及计算机领域的软件测试技术,尤其涉及ー种用于包括多个函数测试模块的单元测试方法及装置。
技术介绍
软件测试包括对软件単元的単元测试以及多个单元的集成测试。単元测试包括确定软件程序测试的最小模块,将所述最小模块从软件程序中分离出来,并对分离出的模块是否能按照预期运行进行测试。集成测试是将多个単元按照软件程序的逻辑形成ー个组件,且是对测试单元间接ロ是否能如预期相互关联运行进行测试(即实现测试単元间耦合性的测试)。模块化的思想导致软件程序中出现了越来越多的函数调用,研究表明现有的大多数软件程序中每20个指令就有ー个函数调用。现有的単元测试中往往ー个单元仅包括一个函数,出现函数调用时往往使用打桩的方式进行处理,导致函数调用的错误延迟到集成测试时才被发现,而集成测试中错误修复的成本远远大于单元测试。造成现有技术中ー个単元仅能实现ー个函数的测试的原因有:1、没有ー种通用的方式处理各种格式的函数调用形式;2、不能正确的处理函数的值參、引參以及返回值。综合上述,故如何在単元测试实现多个函数调用的测试,是现有的软件单元测试方法中亟待解决本文档来自技高网...

【技术保护点】
一种用于包括多个函数测试模块的单元测试方法,其特征在于,所述方法包括:构建测试模块,所述测试模块包括两个以上有调用关系的函数;根据测试模块内程序的逻辑关系及函数间的调用关系形成若干条函数间路径;为每一条所述函数间路径选择测试用例进行测试。

【技术特征摘要】
1.一种用于包括多个函数测试模块的单元测试方法,其特征在于,所述方法包括: 构建测试模块,所述测试模块包括两个以上有调用关系的函数; 根据测试模块内程序的逻辑关系及函数间的调用关系形成若干条函数间路径; 为每一条所述函数间路径选择测试用例进行测试。2.根据权利要求1所述的用于包括多个函数测试模块的单元测试方法,其特征在干,所述形成若干条函数间路径包括: 构建对应于测试模块中各函数调用语句的语句控制流图; 构建对应于测试模块中各函数的函数控制流图; 根据函数调用关系,关联所述语句控制流图以及所述函数控制流图形成模块控制流图; 在所述模块控制流图中确定待覆盖节点,根据预设的路径选择策略选出经过所述待覆盖节点的所述函数间路径。3.根据权利要求2述的用于包括多个函数测试模块的单元测试方法,其特征在于,所述构建语句控制流图包括: 步骤A:判断函数调用语句调用中当前运算是否为原子运算,若是则构建结束,若否则进行以下步骤; 步骤B:为当前运算构 建ー个语句控制流图; 步骤C:构建所述语句控制图的入口节点; 步骤D:在所述语句控制图中创建对应每个操作对象的操作对象节点; 步骤E:根据当前运算的运算先后顺序确定操作对象节点之间的连接顺序; 步骤F:创建ー个运算节点对应于当前运算的结果; 步骤G:设置所述语句控制流图的出ロ节点; 步骤H:按顺序连接各节点,保存操作对象节点与运算节点之间的运算关系; 步骤1:为包括函数调用的操作对象节点创建对应的语句控制流图,并替换所述操作对象节点。4.根据权利要求3所述的用于包括多个函数测试模块的单元测试方法,其特征在干,所述步骤I包括步骤1.1至步骤1.4 ; 所述步骤1.1:获取包括函数调用的操作对象节点的操作对象;所述操作对象分为操作数以及由2个以上操作数之间的运算构成的操作式; 所述步骤1.2:判断所述对象中是否有操作式; 若有则进入步骤1.3,若否则构建结束; 所述步骤1.3:将所述运算操作式视为当前运算,执行所述步骤A至步骤I,以构建所述操作式所对应的语句控制流图; 所述步骤1.4:将所述步骤1.3中所构建的语句控制流图,替换所述操作对象节点,并返回所述步骤1.1。5.根据权利要求2、3或4所述的用于包括多个函数测试模块的单元测试方法,其特征在于,所述根据预设的路径...

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

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

1