[发明专利]一种检测源代码的方法和系统在审
申请号: | 201710586359.5 | 申请日: | 2017-07-18 |
公开(公告)号: | CN107463375A | 公开(公告)日: | 2017-12-12 |
发明(设计)人: | 周玲莉 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/45;G06F11/36 |
代理公司: | 上海硕力知识产权代理事务所(普通合伙)31251 | 代理人: | 郭桂峰 |
地址: | 201616 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 检测 源代码 方法 系统 | ||
技术领域
本发明实施例涉及通信领域,尤其涉及一种检测源代码的方法和系统。
背景技术
源代码(也称源程序)是指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令,是用汇编语言和高级语言写出来的代码。在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。
源代码作为软件的特殊部分,可能被包含在一个或多个文件中。一个程序不必用同一种格式的源代码书写,例如,一个程序如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写。
源代码主要有如下两种作用:
1)生成目标代码,即计算机可以识别的代码。
2)对软件进行说明,即对软件的编写进行说明。这部分不会在生成的程序中直接显示,也不参与编译。但是注释代码对软件的学习、分享、维护和软件复用都有巨大的好处。
需要指出的是,源代码的修改不能改变已经生成的目标代码,如果需要目标代码做出相应的修改,必须重新编译。
源代码编译之后,需要进行检测是否出现语法或计算机不可识别的bug,例如,谷歌Android开源项目在Git的使用Gerrit服务器,其为一种代码审核服务器。Gerrit为Git引入的代码审核是强制性的,就是说除非特别的授权设置,向Git版本库的推送(Push)必须要经过Gerrit服务器,修订必须经过代码审核的一套工作流之后,才可能经批准并纳入正式代码库中。
目前,现有技术的代码审核流程有code-review,verify,submit权限,这些都需要相关模块leader手动审核,即需要大量人为干预,手动审核代码。而手动审核代码无法准确判断代码的语法问题,也没法判断代码是否可以正常编译,另外,文件补丁(Patch)提交完成之后,需要研发人员手动更改bug状态。
发明内容
本发明多个方面提供一种检测源代码的方法和系统,能释放人力的同时,提高代码效率,保证代码质量,从而进一步信息化运维工作管理水平,确保软件版本安全稳定的运行,以及及时安全的交付。
本发明的一方面提供一种检测源代码的方法,包括:
编译服务器将生成的新增补丁发送给代码审核服务器;
所述代码审核服务器接收所述新增补丁后,触发持续集成服务器进行源代码语法检测;
所述持续集成服务器根据预设规则检测所述新增补丁的每段函数是否有语法错误;
如果所述持续集成服务器检测到语法错误,则不触发编译服务器构建编译且反馈语法错误到所述代码审核服务器界面进行通知;如果所述持续集成服务器未检测到语法错误,则触发编译服务器构建编译。
可选地,所述持续集成服务器检测所述每段函数包含的代码注释是否大于或等于预设的阈值数量;
如果所述持续集成服务器检测到每段函数包含的代码注释小于所述预设的阈值数量,所述代码审核服务器记录代码注释检测失败结果;如果所述持续集成服务器检测到每段函数包含的代码注释大于或等于所述预设的阈值数量,所述代码审核服务器记录代码注释检测成功结果。
可选地,如果所述编译服务器编译成功,所述代码审核服务器记录编译成功结果,且触发下一个构建进行模块自动化测试用例,所述测试用例为测试编译内容是否为预设功能;如果所述编译服务器编译失败,所述代码审核服务器记录编译失败结果;
所述编译服务器根据所述测试用例测试通过结果、所述代码审核服务器记录的所述代码注释检测成功结果和所述编译成功结果,发送所述源代码至中心代码库。
可选地,在所述源代码被发送至所述中心代码库后,所述代码审核服务器反馈所述新增补丁提交状态为融合状态,触发BUG管理服务器更改所述patch对应bug状态为已修复状态。
本发明的另一方面提供一种检测源代码的系统,包括:编译服务器、代码审核服务器和持续集成服务器,其中,
所述编译服务器用于生成新增补丁并发送给所述代码审核服务器;
所述代码审核服务器用于接收所述新增补丁后,触发所述持续集成服务器进行源代码语法检测;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710586359.5/2.html,转载请声明来源钻瓜专利网。