[发明专利]一种持续集成失败用例的定位方法及系统有效
| 申请号: | 201110329521.8 | 申请日: | 2011-10-26 |
| 公开(公告)号: | CN103077111A | 公开(公告)日: | 2013-05-01 |
| 发明(设计)人: | 何晓峰 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 持续 集成 失败 定位 方法 系统 | ||
技术领域
本申请涉及测试技术,特别是涉及一种持续集成失败用例的定位方法,以及,一种持续集成失败用例的定位系统。
背景技术
持续集成是一种软件开发的实践方式,利用自动化的方式对团队开发人员提交的新增与修改的代码进行持续构建(包括编译、发布、自动化测试),至少每天一次,尽早地发现代码问题,从而保证产品质量。
一个典型的持续集成周期包括以下几个步骤:
1)持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新;
2)如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码;
3)等代码完全更新以后,调用自动化编译脚本,进行代码编译;
4)运行所有的自动化测试;
5)进行代码分析;
6)产生可执行的软件,并提供给测试人员进行测试。
如果其中任何一个步骤失败,就表示该构建失败,持续集成服务器会给予相应的反馈。
在对项目工程进行持续集成时,如果开发人员修改工程中的部分代码或者修改配置文件,都将导致测试脚本失败,从而导致持续集成不能正常进行,严重影响持续集成对产品开发的效率与质量。此时,就必须快速定位问题原因,并解决问题使持续集成正常运转。
目前定位问题原因的手段比较繁琐低效,主要是人为地通过Eclipse工具(Eclipse是著名的跨平台的自由集成开发环境(IDE))一步一步调试代码来分析出程序代码问题,或者人为地通过SVN(Subversion,一种版本管理工具,通过对源代码进行版本控制,从而达到保证文件同步的目的)的客户端工具Show log查看最近代码更新,以及对比出程序代码的变更情况。
目前的这两种方案都是由人为手工来分析定位问题,此时会涉及到技术经验、维护成本等问题,当技术经验不足时很有可能发现不到问题所在,而且当脚本成百上千时维护起来非常困难,所以人为来定位需要消耗大量的时间与精力,影响工作效率。
发明内容
本申请的目的在于,提供一种持续集成失败用例的定位方法及系统,以解决目前手动定位效率低的问题。
为了解决上述问题,本申请公开了一种持续集成失败用例的定位方法,包括:
加载工程代码时,在工程代码中注入日志输出字节码;
当运行包含所述工程代码的测试脚本时,进入测试脚本的每个方法前通过所述日志输出字节码记录方法调用日志,并根据方法调用日志形成方法调用层次的日志文件;
根据所述日志文件中的方法调用层次分析运行失败的测试脚本,定位运行失败的原因。
优选的,所述根据所述日志文件中的方法调用层次分析运行失败的测试脚本,定位运行失败的原因,包括:根据所述日志文件中的方法调用层次,对比方法的当前版本与最近一次运行成功版本的代码;将对比发现的变化点进行标记,并将标记的变化点定位为运行失败的原因。
优选的,若对比发现无变化,还包括:提示运行失败的可能原因,所述可能原因包括数据库变更和/或配置变更。
优选的,当点击某个运行失败的测试脚本的链接时,根据所述日志文件中的方法调用层次分析该被点击的运行失败的测试脚本,定位运行失败的原因。
优选的,根据所述日志文件中的方法调用层次分析所有运行失败的测试脚本,定位所有运行失败的原因之后,还包括:当点击某个运行失败的测试脚本的链接时,从中获取对应的运行失败的原因。
本申请还提供了一种持续集成失败用例的定位系统,包括:
字节码注入单元,用于加载工程代码时,在工程代码中注入日志输出字节码;
方法调用层次分析单元,用于当运行包含所述工程代码的测试脚本时,进入测试脚本的每个方法前通过所述日志输出字节码记录方法调用日志,并根据方法调用日志形成方法调用层次的日志文件;
失败定位单元,用于根据所述日志文件中的方法调用层次分析运行失败的测试脚本,定位运行失败的原因。
优选的,所述失败定位单元包括:
对比子单元,用于根据所述日志文件中的方法调用层次,对比方法的当前版本与最近一次运行成功版本的代码;
标记子单元,用于将对比发现的变化点进行标记,并将标记的变化点定位为运行失败的原因。
优选的,若对比发现无变化,所述失败定位单元还包括:
提示子单元,用于提示运行失败的可能原因,所述可能原因包括数据库变更和/或配置变更。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110329521.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种电动自行车追尾防撞报警系统
- 下一篇:固定式汽车方向盘锁





