[发明专利]结构测试中的边界值测试方法及其系统有效
申请号: | 201410115157.9 | 申请日: | 2014-03-26 |
公开(公告)号: | CN103914380B | 公开(公告)日: | 2016-10-19 |
发明(设计)人: | 宫云战;李峰;黄俊飞;金大海;王雅文 | 申请(专利权)人: | 北京邮电大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 李迪 |
地址: | 100876 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 结构 测试 中的 边界 方法 及其 系统 | ||
技术领域
本发明涉及软件测试技术领域,尤其是,尤其涉及一种在结构测试中的边界值测试方法。
背景技术
边界值测试的提出是用于功能测试。1979年,Myers GJ.提出输入域的边界比中间更加容易发生错误,从而将边界值分析看成补充等价类划分的测试用例生成技术,即不是选择等价类的任意元素,而是选择等价类的边界。1997年Reid使用真实工程中的17个模块做实验,对比边界值、语句覆盖、分支覆盖、随机以及其他的测试方法的错误检测效果。试验结果表明,边界值比其他所有方法都好,找到了几乎17个模块中的所有错误;其中的14个模块,需要50000个随机测试用例才能得到与边界值相当的测试效果。
结构测试是一种基于代码的测试,人们提出各种覆盖准则来验证结构测试的充分性,比如语句覆盖、分支覆盖、全定义覆盖、全引用覆盖等等。但是这些传统的覆盖测试技术都是基于控制流图,以控制流图上的点和边为覆盖元素,所以只要求为覆盖元素生成一个测试用例即可,而不关注取值是否在边界上,导致传统覆盖测试很难检测到边界值发生错误的情况。
发明内容
本发明提供一种结构测试中的边界值测试方法及其系统,可以快速地找到各个语句以及表达式的边界值,并对其边界值进行测试。
根据上述目的,本发明提供了一种结构测试中的边界值测试方法,该包括:S1,根据被测文件中的语句的语义和表达式的语义选择特定的边界覆盖准则;S2,根据所述边界覆盖准则获取所述被测文件的语句边界值和表达式边界值;S3,为所述语句边界值和所述表达式边界值选择对应的可达路径;S4,根据所述可达路径生成测试用例,并对所述测试用例进行比较,从而得到边界值测试结果。
其中,所述步骤S2包括:从所述结构测试的控制流图中,得到语句节点,然后根据所述边界覆盖准则得到所述语句边界值;从结构测试中的抽象语法树中,得到所述表达式的节点,然后根据所述边界覆盖准则得到所述表达式边界值。
其中,根据所述边界值覆盖准则获取所述语句边界值的过程还包括:所述结构测试中的跳转语句的每个边界值为一个路径集合,所述边界覆盖准则检测到所述集合中的任一个元素,则得到所述跳转语句的语句边界值。
其中,当语句边界值为路径集合时,为所述路径集合中的任一个元素选择到可达路径,即为此语句边界值选择到可达路径。
其中,当语句边界值为路径集合时,对此语句边界值选择路径的具体步骤包括:S51,获取所述语句边界值中的第一个元素;S52,选择一条经过所述第一个元素的第一路径;S53,判断所述第一路径是否为所述第一个元素的可达路径;S54,如果是,则将所述第一路径作为所述语句边界值的可达路径;如果否,则选择所述语句边界值中的下一个元素,并重复进行上述判断,直到找到所述语句边界值的可达路径。
其中,对所述表达式边界值选择路径的具体步骤包括:S61,找到所述表达式所在的控制流图节点;S62,获取所述表达式的边界值的约束CV;S63,选择一条经过所述控制流图节点的路径;S64,获取所述路径的约束CP;S65,判断C=CV∧CP是否有解;S66,如果判定C有解,则所述路径为所述表达式边界值的可达路径;如果判定C无解,则重新选择一条经过所述控制流图节点的路径,直至C有解。
根据本发明的另一个方面,提供了一种故障自动注入与故障检测的系统,所述系统包括:边界覆盖准则选择模块,用于根据被测文件中的语句的语义和表达式的语义选择特定的边界覆盖准则;边界值选取模块,用于根据所述边界覆盖准则获取所述被测文件的语句边界值和表达式边界值;可达路径选择模块,用于为所述语句边界值和所述表达式边界值选择对应的可达路径;边界值测试模块,用于根据所述可达路径生成测试用例,并对所述测试用例进行比较,从而得到边界值测试结果。
本发明所述的结构测试中的边界值测试方法及其系统,通过对不同的语句以及表达式选择特定的边界值覆盖准则,可以快速地找到对应的边界值,从而可以在结构测试中对语句以及表达式的边界值进行测试。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明的结构测试中的边界值测试方法的流程图;
图2示出了本发明的结构测试中的边界值测试方法的对语句边界值选择路径的实施例的流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京邮电大学,未经北京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410115157.9/2.html,转载请声明来源钻瓜专利网。