Code Review经验检查项和Code diff

1、 编码规范方面检查项 

2、面向对象设计方面检查项 

- 类设计和抽象是否合适 

- 是否符合面向接口编程的思想 

- 是否采用合适的设计模式

3、性能方面检查项 

- 对hashtable,vector等集合类数据结构的选择和设置是否合适 

- 有无滥用String对象的现象 

- 是否采用通用的线程池、对象池模块等cache技术以提高性能 

- I/O方面是否使用了合适的类或采用良好的方法以提高性能(如减少序列化,使用buffer类封装流等) 

- 同步方法的使用是否得当,是否过度使用

4、数据库处理方面 

- 数据库资源是否正常关闭和释放 

- 数据库访问模块是否正确封装,便于管理和提高性能 

- 是否采用合适的事务隔离级别 

- 资源泄漏处理方面检查项 cursor

5、通讯方面检查项 

- socket通讯是否存在长期阻塞问题

6、重复代码 

7、其他 

- 日志是否正常输出和控制 

- 配置信息如何获得,是否有硬编码


Code Review需要注意什么?

完整性检查(Completeness)

代码是否完全实现了设计文档中提出的功能需求

代码是否已按照设计文档进行了集成和Debug

代码是否已创建了需要的数据库,包括正确的初始化数据

代码中是否存在任何没有定义或没有引用到的变量、常数或数据类型

一致性检查(Consistency)

代码的逻辑是否符合设计文档

代码中使用的格式、符号、结构等风格是否保持一致

正确性检查(Correctness)

所有的变量都被正确定义和使用

所有的注释都是准确的

所有的程序调用都使用了正确的参数个数

可修改性检查(Modifiability)

代码涉及到的常量是否易于修改(如使用配置、定义为类常量、使用专门的常量类等)

代码是否只有一个出口和一个入口(严重的异常处理除外)

健壮性检查(Robustness)

可理解性检查(Understandability)

注释是否足够清晰的描述每个子程序

是否使用到不明确或不必要的复杂代码,它们是否被清楚的注释

使用一些统一的格式化技巧(如缩进、空白等)用来增强代码的清晰度

是否在定义命名规则时采用了便于记忆,反映类型等方法

每个变量都定义了合法的取值范围

代码中的算法是否符合开发文档中描述的数学模型

可验证性检查(Verifiability)

代码中的实现技术是否便于测试


什么是codeDiff

字面含义是 代码差异比较,一种补充测试的手段。

1、为什么要做Codediff?

    确认需求实现——QA和DEV一起梳理对需求的实现情况

 评估影响范围——评估本次实现的代码改动对整体业务的影响范围 和 本次测试需要花费的成本

 补充测试点——根据开发的代码逻辑需要补充未覆盖的测试点,以及回归点

 提前发现代码错误——业务逻辑缺失、代码语法bug、异常处理bug等

 加深技术实现理解——更深入的了解需求实现的方式能够加大测试的深度

2、Codediff 开始前准备?

 熟悉产品需求

 了解系统的整体架构

    思考如果是你怎么实现(自己要根据对业务和系统的掌握有大概的实现思路,然后diff的时候和开发的思路进行碰撞,找问题)

    准备相关的diff工具

    具备代码、数据库等基本知识技能

3、什么时候做 Codediff?

 首次介入测试,进行整体代码diff

    提交bug修复版本,进行增量代码diff

    发布前整体在diff一下关键点  

4、如何执行Codediff?

 开发给QA讲如何实现,QA提问、找茬(有目的的问)

    比如:

 遇到多线程时,线程安全吗?需要加锁处理吗?加锁使用后解锁没?多线程处理的地方会不会死锁?

    方法中参数为空、null或长度为0怎么处理的,是否会发生空指针异常?

    数据库链接的释放超时处理,执行过程中会不会锁表?

    重复复制代码的逻辑及参数是否正确?

    依赖外部的配置文件是否有备份?

5、达成目标

 能够从内到外的完全把控整个项目的质量,发布上线能够更靠谱,出现问题也能及时找到问题


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容