[发明专利]一种产生测试用例的方法及装置有效
申请号: | 200910131169.X | 申请日: | 2009-04-07 |
公开(公告)号: | CN101859273A | 公开(公告)日: | 2010-10-13 |
发明(设计)人: | 唐文 | 申请(专利权)人: | 西门子(中国)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100102 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 产生 测试 方法 装置 | ||
技术领域
本发明涉及软件安全性测试技术领域,特别涉及一种产生测试用例的方法及装置。
背景技术
软件(包括:应用程序、协议等)的安全性测试实际上是在软件输入空间中的一种探测。软件的输入空间由该软件的所有可能的输入、或所有可能的输入的组合构成。穷举是验证软件行为正确性的一种最极端的方法,然而,穷举对大部分案例来说不具备可操作性,因为通常情况下,软件程序的输入空间非常巨大,甚至可能是无穷大。相比于穷举的方法来说,模糊测试(Fuzz Testing)作为一种随机样本方法,是一种更具可行性的黑盒测试方法。
模糊测试是一种软件测试技术,该技术构造一些随机或半随机的数据(称为fuzz)作为被测试软件程序的输入,并观察被测试软件程序的工作状况。作为一种黑盒测试工具,模糊测试通常用于大型软件开发项目。模糊测试被认为能够提高软件的安全性,这是因为:模糊测试总是能检测出一些测试人员未能发现的缺陷,这些缺陷往往会被软件测试工程师所忽略。
目前,最常用的模糊测试是基于字符的,基于字符的模糊测试提供随机数据流(从文件或其它数据流中提供,例如:从套接字中提供)作为被测软件程序的输入,基于字符的模糊测试正广泛应用于协议或网络服务器的安全性测试。
模糊测试的优势在于:进行测试的成本相对较低、且完全可以自动实现;并且,模糊测试经常能找出比较严重、且可被利用的缺陷(bug),这些bug可被攻击者加以利用。
本质上来说,模糊测试是采用在被测软件程序的输入空间中随机分布的测试用例进行测试的。参与测试的测试用例越多,测试就越彻底;而且,参与测试的测试用例之间的差异越大,找出的安全漏洞也越多,因为相近似的测试用例通常只能找出相同的安全漏洞。然而,现有模糊测试方案通常只是采用随机的方式或根据预先设置的规则产生测试用例,使得要么无法根据用户定义的模式产生数量足够多的测试用例,要么所产生的测试用例之间过于近似(这导致许多不必要的冗余测试)。因此,现有模糊测试方案要有效识别出各种不同安全漏洞,在以下两个方面还存在问题:
1)如何根据被测软件程序所属技术领域的知识、以及特定的模式,产生大量测试用例;
2)如何从大量测试用例中消除相近似的测试用例,以提高模糊测试的效率。
发明内容
有鉴于此,本发明的主要目的在于提供一种产生测试用例的方法,以提高模糊测试的效率。
本发明的另一个目的在于提供一种用于产生测试用例的装置,以提高模糊测试的效率。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种产生测试用例的方法,包括:
根据预先设置的测试用例生成规则进行穷举,得到大量测试用例;
计算所述测试用例之间的近似程度,并根据所述测试用例之间的近似程度删除多余的测试用例。
较佳地,所述测试用例生成规则可以包括:正则表达式和用于限制测试用例长度的阈值。
上述方法中,所述进行穷举可以包括:构造有限自动机,所述有限自动机中的每一个状态代表所述正则表达式中的一个元素,对所述有限自动机进行遍历,产生符合所述正则表达式以及用于限制测试用例长度的阈值的测试用例。
所述计算测试用例之间的近似程度可以包括:采用近似串匹配算法计算任意两个测试用例之间的距离,根据所述距离确定所述两个测试用例之间的近似程度。
所述根据测试用例之间的近似程度删除多余的测试用例可以包括:
a、构造已知有效测试用例集,在初始化时,将第一个测试用例作为所述已知有效测试用例集中的元素,并将第二个测试用例作为当前测试用例;
b、将当前测试用例与所述已知有效测试用例集中的测试用例进行比较,若已知有效测试用例集中存在与当前测试用例相近似的测试用例,则删除当前测试用例,继续c操作,否则,将当前测试用例加入所述已知有效测试用例集,继续c操作;
c、判断当前测试用例是否为最后一个测试用例,如果是,结束本方法流程,否则,将当前测试用例的下一个测试用例作为当前测试用例返回b。
该方法可以进一步包括:预先设置分组长度阈值L、第一距离阈值μ1、第二距离阈值μ2,...,第m距离阈值μm;其中,L为整数,μ1>μ2>...>μm;
较佳地,所述根据测试用例之间的近似程度删除多余的测试用例可以包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西门子(中国)有限公司,未经西门子(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910131169.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:清洁方法
- 下一篇:低电压源带隙基准电压电路和一种集成电路