[发明专利]用于生成目标对象的测试值的方法和装置有效
申请号: | 200910090103.0 | 申请日: | 2009-07-31 |
公开(公告)号: | CN101989224A | 公开(公告)日: | 2011-03-23 |
发明(设计)人: | 隋爱芬;郭代飞 | 申请(专利权)人: | 西门子(中国)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100102 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 生成 目标 对象 测试 方法 装置 | ||
技术领域
本发明涉及软件测试,尤其涉及一种用于生成目标对象的测试值的方法和装置。
背景技术
通常,软件可以包括有函数(function)、模块(module)、组件(component)和/或程序包(package)。一般情况下,软件所包括的函数、模块、组件和程序包以及软件本身都是接收一个或多个输入并且根据所接收的一个或多个输入来执行特定的功能。在本文中,把软件所包括的函数、模块、组件和程序包以及软件本身都称作程序代码对象。
一个程序代码对象的输入可以来自其它程序代码对象和/或用户。通常,在程序代码对象之间和程序代码对象与用户之间使用通信协议来相互之间传送信息。通信协议一般通过各种消息来实现,每一种消息一般包括一个或者多个信息单元(也称为域或者字段),其中,每个信息单元携带一个作为接收该消息的程序代码对象的一个输入的信息。
现在,在软件正式使用之前,通常都会先对软件进行测试,其中,常用的自动化软件测试方法称作模糊测试(fuzz testing)。模糊测试通常在程序代码对象的输入的各种测试值下来执行程序代码对象,以观察程序代码对象针对每个输入的每种测试值的实际执行结果是否与对应于该测试值的期望结果一致,从而发现程序代码对象中存在的各种错误并改正这些错误。在进行模糊测试时,既可以通过直接生成程序代码对象的输入的测试值来测试程序代码对象,也可以生成程序代码对象所使用的通信协议的消息的信息单元的测试值来测试程序代码对象。也就是说,被生成测试值的目标对象可以是程序代码对象的输入和程序代码对象所使用的通信协议的消息的信息单元。
目前,在进行模糊测试时,通常采用正则表达式(regularexpression)来生成目标对象(程序代码对象的输入或程序代码对象所使用的通信协议的消息的信息单元)的测试值。然而,采用正则表达式来生成测试值会产生大量的等效测试值(equivalent input)。例如,以程序代码对象的一个输入为例,如果对于该输入的两个测试值“aaaaa”和“bbbbb”,该程序代码对象的执行结果是一样的,则“aaaaa”和“bbbbb”对于该程序代码对象来说就是等效测试值。大量的等效测试值会增加测试用例的数目,增大测试空间,从而导致测试时间和测试成本的增加。
发明内容
考虑到现有技术的上述问题,本发明的实施例提供一种用于生成目标对象的测试值的方法和装置,利用该方法和装置,可以在生成目标对象的测试值时不出现等效测试值。
按照本发明的一种用于生成目标对象的测试值的方法,包括步骤:生成一个随机过程;对所述生成的随机过程的预定数目的样本函数分别进行采样,得到多组采样值,其中,对所述预定数目的样本函数中的每一个样本函数进行采样得到的多个采样值形成所述多组采样值的其中一组采样值;圆整所述多组采样值中的各个采样值,以便所述多组采样值中的各个采样值都是整数;以及,根据基本字符集中的各个基本字符的标识码,将所述圆整后的多组采样值映射为多个字符串,作为所述目标对象的测试值。
按照本发明的一种用于生成目标对象的测试值的装置,包括:生成模块,用于生成一个随机过程;采样模块,用于对所述生成的随机过程的预定数目的样本函数分别进行多次采样,得到多组采样值,其中,对所述预定数目的样本函数中的每一个样本函数进行多次采样得到的多个采样值形成所述多组采样值的其中一组采样值;圆整模块,用于圆整所述多组采样值中的各个采样值,以便所述多组采样值中的各个采样值都是整数;以及,映射模块,用于根据基本字符集中的各个基本字符的标识码,将所述圆整后的多组采样值映射为多个字符串,作为所述目标对象的测试值。
附图说明
本发明的特点、特征和优点通过以下结合附图的详细描述将变得更加显而易见。其中:
图1是示出按照本发明第一实施例的用于生成程序代码对象所使用的通信协议的消息的信息单元的测试值的方法的流程图;以及
图2是示出按照本发明第二实施例的用于生成程序代码对象所使用的通信协议的消息的信息单元的测试值的方法的流程图。
具体实施方式
下面,结合附图详细说明本发明的各个实施例。
首先,以程序代码对象所使用的通信协议的消息的信息单元作为被生成测试值的目标对象来说明本发明的各个实施例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西门子(中国)有限公司,未经西门子(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910090103.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:专利分析中的列表分析系统与方法
- 下一篇:软件卸载方法和系统