[发明专利]测试覆盖分析方法和装置有效
| 申请号: | 200810212446.5 | 申请日: | 2008-08-26 |
| 公开(公告)号: | CN101661425A | 公开(公告)日: | 2010-03-03 |
| 发明(设计)人: | 曾春光;张志 | 申请(专利权)人: | 国际商业机器公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京市中咨律师事务所 | 代理人: | 于 静;张亚非 |
| 地址: | 美国*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 测试 覆盖 分析 方法 装置 | ||
技术领域
本发明涉及计算机领域,具体涉及软件测试领域,更具体涉及一种测 试覆盖分析方法和装置。
背景技术
对于大的软件厂商来说,测试用例或测试程序的数量通常是很大的, 并且会随着每一个产品版本的升级发布而递增。例如,IBM Content Manager具有在6年多的时间里陆续开发的超过2000个Java函数测试用 例。了解这些测试用例的覆盖性,即被测软件的哪些函数已被这些测试用 例调用,对于保证测试质量和设计新的测试用例来说是非常重要的。然而, 由于测试用例的巨大数量,这种覆盖性分析是很繁重的工作。
目前存在几种能够进行覆盖性分析的工具,但这些工具都具有其各自 的缺点。
现有的堆分析工具主要致力于分析内存使用,而不是用于进行覆盖性 分析。尽管也有可能从这类工具中获得函数覆盖信息,但这类工具并不直 接报告这种信息。而且,使用这种工具,一次只能分析一个堆转储 (heapdump),而不能同时分析由多个测试用例产生的多个堆转储。
现有的一些测试分析工具具有专用于覆盖性分析的功能,然而这种功 能通常是通过插装(instrumentation)来实现的,这就需要获得并修改被 测试程序的源代码,并需要被测试程序在工具本身的运行环境中执行,从 而带来额外的购买、安装、学习和使用成本。此外,这类工具也只能一次 分析一个测试用例,而不能在运行多个测试用例之后,集中地对这些测试 用例的运行结果进行覆盖性分析。
显然,本领域中需要这样一种有效的覆盖分析解决方案,它能够对多 个测试用例的运行结果一次性的进行覆盖性分析、而不需要测试用例在特 定工具的执行环境中运行。
发明内容
根据本发明的一个方面,提供了一种测试覆盖分析方法,包括:通过 使用一个或多个测试用例运行被测试程序,生成包含被测试程序调用栈信 息的一个或多个堆转储文件;以及对所述一个或多个堆转储文件中的调用 栈信息进行分析,以获得所述一个或多个测试用例对于所述被测试程序的 函数的覆盖性。
根据本发明的另一个方面,提供了一种测试覆盖分析装置,包括:堆 转储生成模块,被配置为通过使用一个或多个测试用例运行被测试程序, 生成包含被测试程序调用栈信息的一个或多个堆转储文件;以及分析模块, 被配置为对所述一个或多个堆转储文件中的调用栈信息进行分析,以获得 所述一个或多个测试用例对于所述被测试程序的函数的覆盖性。
本发明的解决方案不仅能够有效地实现对测试用例的覆盖性的分析, 而且不需要被测试程序的源代码,不需要在特殊的环境中运行被测试程序, 而只需要利用被测试程序在测试环境中的运行结果来进行分析。此外,本 发明的技术方案能够实现一次性地对包含大量测试用例的测试用例集的覆 盖性进行分析。
附图说明
所附权利要求中阐述了被认为是本发明的特点的创造性特征。但是, 通过参照附图阅读下面对说明性实施例的详细说明可更好地理解发明本身 以及其优选使用模式、目标、特征以及优点,在附图中:
图1示出了根据本发明的实施例的测试覆盖分析方法;
图2示出了根据本发明的实施例对过滤后的调用栈信息中的函数调用 条目进行分析以获得一个或多个测试用例对被测试程序中函数的覆盖性的 具体实现方式;
图3示出了根据本发明的实施例的测试覆盖分析装置;以及
图4示出了根据本发明的实施例的分析模块中包含的各子模块。
具体实施方式
下面参照附图来说明本发明的实施例。在下面的说明中,阐述了许多 具体细节以便更全面地了解本发明。但是,对于本技术领域内的技术人员 明显的是,本发明的实现可不具有这些具体细节中的一些。此外,应当理 解的是,本发明并不限于所介绍的特定实施例。相反,可以考虑用下面的 特征和元素的任意组合来实施本发明,而无论它们是否涉及不同的实施例。 因此,下面的方面、特征、实施例和优点仅作说明之用而不应被看作是所 附权利要求的要素或限定,除非权利要求中明确提出。
下面以Java环境为例来说明本发明的技术方案,然而,应指出的是, 本发明不仅限于Java环境,而是适合于所有能够在程序运行中产生包含调 用栈(call stack)信息的堆转储文件的执行环境。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810212446.5/2.html,转载请声明来源钻瓜专利网。





