[发明专利]测试覆盖分析方法和装置有效
| 申请号: | 200810212446.5 | 申请日: | 2008-08-26 |
| 公开(公告)号: | CN101661425A | 公开(公告)日: | 2010-03-03 |
| 发明(设计)人: | 曾春光;张志 | 申请(专利权)人: | 国际商业机器公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京市中咨律师事务所 | 代理人: | 于 静;张亚非 |
| 地址: | 美国*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 测试 覆盖 分析 方法 装置 | ||
1.一种测试覆盖分析方法,包括:
通过使用一个或多个测试用例运行被测试程序,生成包含被 测试程序的调用栈信息的一个或多个堆转储文件,其中,所述被 测试程序在Java环境中运行,并且所述堆转储文件是使用Java 虚拟机中内置的hprof工具生成的;以及
对所述一个或多个堆转储文件中的调用栈信息进行分析,以 获得所述一个或多个测试用例对于所述被测试程序的函数的覆盖 性信息。
2.根据权利要求1的方法,其中,所述覆盖性包括以下各项 中的任何一个或多个:
所述被测试程序中的特定函数由所述一个或多个测试用例中 的哪一个或一些测试用例所覆盖;
所述一个或多个测试用例中的特定测试用例覆盖了所述被测 试程序中的哪些函数;以及
所述被测试程序中的哪一个或一些函数未被所述一个或多个 测试用例所覆盖。
3.根据权利要求1的方法,还包括使用过滤规则对所述调用 栈信息中的函数调用条目进行过滤,且其中,所述对调用栈信息 进行分析包括:
对过滤后的所述调用栈信息中的函数调用条目进行分析。
4.根据权利要求3的方法,其中,所述过滤规则包含以下各 项中的任何一个或多个:
所述被测试程序所在的包的名称的部分或全部,其用于将不 包含所述包的名称的部分或全部的函数调用条目滤除;以及
对于测试覆盖分析不重要的类或方法的名称,其用于将包含 所述类或方法的函数调用条目滤除。
5.根据权利要求3的方法,其中,所述对过滤后的所述调用 栈信息中的函数调用条目进行分析包括:
对所述过滤后的每个函数调用条目执行散列运算,并将所获 得散列码作为该函数调用条目的标识;
将所获得的各个函数调用条目的标识进行排序,去除重复的 标识,从而形成标识列表;
记录所述标识列表中每个标识与相应的函数、调用栈和测试 用例之间的关联;以及
使用所述标识列表以及所述关联获得所述一个或多个测试用 例对于所述被测试程序中的函数的覆盖性信息。
6.一种测试覆盖分析装置,包括:
堆转储生成模块,被配置为通过使用一个或多个测试用例运 行被测试程序,生成包含被测试程序的调用栈信息的一个或多个 堆转储文件,其中,所述被测试程序在Java环境中运行,并且所 述堆转储生成模块为Java虚拟机中内置的hprof工具;以及
分析模块,被配置为对所述一个或多个堆转储文件中的调用 栈信息进行分析,以获得所述一个或多个测试用例对于所述被测 试程序中函数的覆盖性信息。
7.根据权利要求6的装置,其中,所述覆盖性信息包括以下 各项中的任何一个或多个:
所述被测试程序中的特定函数由所述一个或多个测试用例中 的哪一个或一些测试用例所覆盖;
所述一个或多个测试用例中的特定测试用例覆盖了所述被测 试程序中的哪些函数;以及
所述被测试程序中的哪一个或一些函数未被所述一个或多个 测试用例所覆盖。
8.根据权利要求6的装置,还包括过滤模块,该过滤模块被 配置为使用过滤规则对所述调用栈信息中的函数调用条目进行过 滤,且所述分析模块进一步被配置为对过滤后的所述调用栈信息 中的函数调用条目进行分析。
9.根据权利要求8的装置,其中,所述过滤规则包含以下各 项中的任何一个或多个:
所述被测试程序所在的包的名称的部分或全部,其用于将不 包含所述包的名称的部分或全部的函数调用条目滤除;以及
对于测试覆盖分析不重要的类或方法的名称,其用于将包含 所述类或方法的函数调用条目滤除。
10.根据权利要求8的装置,其中,所述被配置为对过滤后的 所述调用栈信息中的函数调用条目进行分析的分析模块包括:
散列模块,其被配置为对所述过滤后的每个函数调用条目执 行散列运算,并将所获得散列码作为该函数调用条目的标识;
标识列表形成模块,其被配置为将所获得的各个函数调用条 目的标识进行排序,去除重复的标识,从而形成标识列表;
记录模块,其被配置为记录标识列表中每个标识与相应的函 数、调用栈和测试用例之间的关联;以及
覆盖性获得模块,其被配置为使用所述标识列表以及所述关 联获得所述一个或多个测试用例对于所述被测试程序中的函数的 覆盖性信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810212446.5/1.html,转载请声明来源钻瓜专利网。





