前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯TMQ在线沙龙|Code Review也有潜规则

腾讯TMQ在线沙龙|Code Review也有潜规则

作者头像
腾讯移动品质中心TMQ
发布2018-02-08 14:25:46
1.2K0
发布2018-02-08 14:25:46
举报

Code Review也有潜规则

活动时间:2017年3月30日 QQ群视频交流

活动介绍:TMQ在线沙龙第十八期分享

本次分享的主题是:Code Review也有潜规则

共有114位测试小伙伴报名参加活动,在线观看视频人数 47人!

想知道活动分享了啥吗,

往下看吧!

活动嘉宾

嘉宾简介

张艳,腾讯高级测试工程师,在腾讯电脑管家测试团队负管家PC办公相关项目的测试工作,包括桌面搜索、跨度传输、健康小助手等项目的CR、功能、性能的测试工作,在CR方面有一定的实践经验。

分享主题

1、什么是Code Review 2、怎么做Code Review 3、Code Review之“潜规则”

问答环节

(1)CR代码是耗时吗?感觉要考虑的地方还比较多。如果是多个开发对应一个测试的话,如何进行处理呢?

答:多对一的情况,建议:

1、推动开发间相互CR,这也是促进开发自测和保证提测质量的手段之一;

2、找到核心模块,按照优先级挑重点review,不用刻意追求所有模块所有行都review

前期经验不足的时候确实比较耗时,但是随着你的经验越来越丰富,CR的时间会越来越短。

(2)一般Codeeview在开发或测试的什么阶段开始展开?一般会花多少时间?

答:一般在开发编码阶段就可以开始CR了。时间视情况(经验以及代码量)而定。

(3)CR过的代码部分还会执行其他测试吗,如功能测试、自动化测试等?怎么划分哪些代码需要进行CR,哪些不需要?

答:目前我们这边还是会执行功能测试、自动化测试的。

至于如何选择,取决于产品的业务特点,例如界面层的,轻量CR或者不做;核心逻辑层的,可以重点CR。

(4)静态代码检查用的是什么工具?

答:我们这边使用的是cppcheck和klockwork。

ppt所讲的风险代码扫描工具是组内同学自行开发的工具,目前为非开源工具。

(5)CR的自动化是加入到静态代码检查工具中 还是单独做的?

答:ppt所讲的风险代码扫描工具是组内同学自行开发的工具,没有加入到业界的静态代码检查工具中。

(6)CR零积累的时候,团队里的人不懂代码,这个培养周期是很长的,所以一开始你们是招聘懂代码的人来做吗,或者就是内部花了较多时间去培养这样一群人?

答:一般在招测试人员的时候会考虑代码能力,所以都是有基础的。有些能力强的同学,不用培养直接可以CR。

(7)每个版本迭代很快,做这个事情的时间一般从哪里挤出来?

答:1、提高效率,避免无效测试,适当做减法;

2、不断丰富CR经验。

(8)风险代码查询工具是腾讯自己做的还是,其基本原理是什么?

答:对,风险代码查询工具是内部同事开发的。

原理大致是先抽象CR发现问题的过程,定义规则,然后映射成关键字以及处理好他们的逻辑关系,最后扫描开发代码,一旦触发规则则报警。

(9)CR中debug代码发现问题,请举例说明一下?

答:例如不是很明显的资源泄漏问题,表面上调用释放了,但实际没有走到,可以在怀疑有问题的地方加断点,调试,观察释放前后,对象的值,看有没有真正被释放。

(10)上面提到的checklist 大多都是基于C++语言特性的么,有没其他一些语言的checklist呢,需求相关的除外?

答:对,是C++的。目前我这资料里没有其他语言的,但有些规则的思路是可以复用的哦。

(11)有没有通过cr发现安全问题?

答:例如缓冲区溢出,没有防注入等等

(12)什么情况需要做进一步的动态分析?

答:在CR发现一些布确定问题的时候可以进一步动态执行,例如通过调试去验证是否是问题

(13)有没有可能应用机器学习方法改进cr效率?

答:这个,理想是光明的。这需要大量的样本,训练模型,以及结果有效性的验证。

(14)扫描代码是基于什么原理实现?请问刚才说的cr扫描工具提供外部使用吗?

答:目前没有给外部使用,可以帮你联系下作者

(15)您好,请问你们代码审查自动化的工具只是腾讯内部在使用吗?

答:是的,目前为非开源。

(16) 请问刚才说的cr扫描工具提供外部使用吗?

答:目前没有提供给外部使用呢

(18)哈喽,有个问题,刚才讲cr的时候,说cr可以补足代码覆盖率不足100%的情况。这个不应该硬性的追求100%吧。你们的代码覆盖率标准是怎么制定的?

答:不是纯粹为了追求覆盖率。关注覆盖率一方面可以辅助我们补充测试分析,另一方面可以看下哪些未覆盖,是否有风险和bug。

目前还没有制定特别严格的代码覆盖率标准。

(19)静态扫描工具的实现,相对 Sonar 这种成熟的工具有何独特优势?

答:组内开发的工具,可以说是一种灵活自定义规则的缺陷规则代码扫描工具,规则来源于Code Review、crash分析、用户反馈分析等。缺陷规则代码扫描专注于静态扫描存在误报的规则以及只有在特定运行时态会Crash的代码规则,可以说补齐了静态代码扫描(cppcheck,klockwork)的短板并实现了一定程度的CR自动化。

至于Sonar,它是用于管理Java源代码质量的。很抱歉,因为研究不多,所以暂时无法比较。

(20)code review一般来讲是静态分析的手段,能具体讲些例子吗, 说明什么时候需要由静态分析沿伸到动态分析?

答:ppt里介绍的那几个规则都是来源于实践的例子,不过不方便截图代码,举个简单的例子,当你发现new了一个对象,在这个对象的生命周期内,没有delete,那就是个资源泄漏问题。

当你在静态分析的时候不确定它是否问题,那这个时候可以动态调试的形式,例如不是很明显的资源泄漏问题,表面上调用释放了,但实际没有走到,可以在怀疑有问题的地方加断点,调试,观察释放前后,对象的值,看有没有真正被释放。

(21)现在有些论文在讲用静态分析的方法发现安全问题,也有coverity这样的商业工具,想知道tmq这边有没有这方面的实践经验?

答:我们组内目前使用的代码扫描工具就是业界的cppcheck,klockwork,以及ppt里介绍的风险代码扫描工具。

获奖名单

ID:101140583 942667145

恭喜以上两位同学获得TMQ本次沙龙活动听众奖;

本次奖品是由TMQ 官方出品《移动APP性能评测与优化》新书哦

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-04-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯移动品质中心TMQ 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云代码分析
腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档