[发明专利]自动生成可再现运行时问题的单元测试用例的方法和系统有效
申请号: | 200610135534.0 | 申请日: | 2006-10-18 |
公开(公告)号: | CN101165658A | 公开(公告)日: | 2008-04-23 |
发明(设计)人: | 尹俊;黄省江;史蒂文·阿特金 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市中咨律师事务所 | 代理人: | 于静;张亚非 |
地址: | 美国*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 自动 生成 再现 运行 问题 单元测试 方法 系统 | ||
1.一种用于自动生成可再现运行时问题的计算机程序单元测试用例的方法,包括以下步骤:
根据计算机程序中所关注的一个或多个目标程序单元和可能发生的运行时问题修改该程序;
测试执行该修改后的程序;以及
根据在所述所关注的目标程序单元的执行中出现的所述所关注的运行时问题自动生成单元测试用例。
2.根据权利要求1的方法,其中所述运行时问题包括非期望的异常和预定行为规则的违反。
3.根据权利要求2的方法,还包括确定所述程序中所述所关注的目标程序单元以及所述所关注的非期望异常和/或预定行为规则的违反的步骤。
4.根据权利要求3的方法,还包括定义行为规则的步骤。
5.根据权利要求4的方法,其中所述定义行为规则的步骤包括:
确定包含目标方法和检验代码的占位符的规则模板;
确定目标方法;以及
开发检验代码。
6.根据权利要求1-5中任何一个的方法,其中所述修改步骤包括:
在所述程序中加入捕获代码,所述捕获代码被配置为用于记录该程序中所述所关注的目标程序单元的执行路径及执行上下文;以及
在该程序中加入问题检测代码,所述问题检测代码被配置为用于检测该程序中所述所关注的目标程序单元的的执行所可能抛出的所述所关注的非期望异常以及所可能产生的所述所关注的预定行为规则的违反。
7.根据权利要求6的方法,其中所述计算机程序为面向对象的程序,所述程序单元为类,所述执行路径为所述目标类的各实例对象的每一次外部方法调用的序列,并且所述执行上下文为所述目标类的各实例对象的每一次外部方法调用的参数的值和返回值。
8.根据权利要求7的方法,其中所述捕获代码进一步被配置为用于记录所述目标类的各实例对象的调用参数中不可被复制的对象在目标类中的被调用方法、调用参数及其返回值,并且所述自动生成单元测试用例的步骤包括:
根据所述捕获代码所记录的所述目标类的各实例对象的调用参数中不可被复制的对象在目标类中的被调用方法、调用参数及其返回值生成所述不可被复制的对象的模拟对象;以及
根据所述捕获代码所记录的相关的执行路径及执行上下文以及所述生成的模拟对象生成单元测试用例。
9.根据权利要求7的方法,其中,所述问题检测代码还被配置为用于每当检测到所述所关注的非期望异常或预定行为规则的违反时,就触发所述自动生成单元测试用例的步骤根据所述捕获代码所记录的相关的执行路径及执行上下文生成单元测试用例。
10.根据权利要求7的方法,其中,所述问题检测代码还被配置为用于每当检测到所述非期望异常或预定行为规则的违反时,将所述所关注的非期望异常或预定行为规则的违反记入问题列表,并且所述自动生成单元测试用例的步骤包括当所述测试执行过程结束后,根据所述问题列表以及所述捕获代码所记录的相关的执行路径及执行上下文生成单元测试用例。
11.根据权利要求9或10的方法,其中所述生成的单元测试用例包括所述目标类的实例对象从被构造到被检测到所述非期望异常或预定行为规则的违反为止的外部方法调用的序列,以及每一次外部方法调用的参数的值。
12.根据权利要求10的方法,其中所述捕获代码进一步被配置为用于记录所述目标类的各实例对象的调用参数中不可被复制的对象在目标类中的被调用方法、调用参数及其返回值,并且其中所述根据所述问题列表以及所述捕获代码所记录的相关的执行路径及执行上下文生成单元测试用例的步骤包括以下子步骤:
遍历所述问题列表中的每一项非期望异常或预定行为规则的违反;
针对所遍历的每一项非期望异常或预定行为规则的违反,访问所述捕获代码所记录的相应的执行路径和执行上下文以及所述不可被复制的对象在目标类中的被调用方法、调用参数及其返回值;
根据所访问的所述不可被复制的对象在目标类中的被调用方法、调用参数及其返回值生成所述不可被复制的对象的模拟对象;以及
根据所访问的相应的执行路径和执行上下文以及所生成的模拟对象构造单元测试用例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610135534.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于脱硫吸收塔的溢流装置
- 下一篇:工件排出装置