代码走查和代码审查是白盒测试方法中的2种。
代码走查:
从参加人员来说,应该是项目的整体参与者,如果项目太大,整体参加的成本很高,那么可以以模块为组进行走查。因为他们之间负责的业务是紧密相关的,使用的技术是接近程度比较大的,因而开发的规范应该是统一的。
从走查内容来说,应该是代码的命名规范,以及组织结构。每个项目都有自己的规范,但是如果项目内部使用不同的规范必然会增加发现问题、解决问题的难度,同时增加后期的维护成本。
从走查时间来说,应该在每个模块开发完成之后进行,便于开发人员之间交流问题以及体会,并且每个人的讲解时间不要超过30分钟,因为模块的业务复杂度不会那么复杂,30分钟都讲不清的业务逻辑如何保证代码是清晰的。
从走查的结果来说,经过走查的代码应该是参加成员大部分能认同的,并且参加者每个人都能读懂的逻辑清晰的代码,并且通过交流提高项目成员的凝聚力,提高其业务认知度,最好能形成项目之间可以共同使用的产品。
序号检查项
1代码的注释与代码是否一致?注释是否是多余的?
2是否存在超过3层嵌套的循环与/或判断?
3变量的命名是否代表了其作用?
4所有的循环边界是否正确?
5所有的判断条件边界是否正确?
6输入参数的异常是否处理了?
7程序中所有的异常是否处理了?
8是否存在重复的代码?
9是否存在超过20行的方法?
10是否存在超过7个方法的类?
11方法的参数是否超过3个?
12是否有多种原因导致修改某个类?
13当发生某个功能变化时,是否需要修改多个类?
14代码中的常量是否合适?
15一个方法是否访问了其他类的多个属性?
16某几项数据是否总是同时出现,而又不是一个类的属性?
17switch语句是否可以用类来替代?
18是否有一类的职责很少?
19是否有一个类的某些属性或者方法没有被其他类所使用?
20在类的方法中是否存在如下的调用形式:a.b().c()?
21是否某个类的方法总是调用另外一个类的同名方法?
22是否某个类总是访问另外一个类的属性与方法?
23是否两个类完成了类似的工作,使用了不同的方法名,却没有拥有同一个父类?
24是否某个类仅有字段和简单的赋值方法与取值方法构成?
25是否某个子类仅使用了父类的部分属性或方法?
代码审查:
代码走查(code walkthrough)和代码审查(code inspection)是两种不同的代码评审方法,
代码审查是一种正式的评审活动,而代码走查的讨论过程是非正式的。
最近对项目组进行代码评审,发觉需要对代码评审中找到的问题进行一下分类,大概可以分成以下几类问题:
1. Comment
注释没写,或者格式不对,或者毫无意义
2. Coding Standard
没遵守代码规范
3. Existing Wheel
重复现成的代码,或者是开源项目,或者公司已有代码
4. Better practice
Java或者开源项目,有更好的写法
5. Performance bottle and Improvement
性能瓶颈和提高
6. Code Logic Error
代码逻辑错误
7. Business Logic Error
业务逻辑错误
代码审查列出问题的类型,并有解决情况报告
一般情况代码走查有专门的工具比如:emma,该工具使用与大型项目,为开源的,代码走查完毕之后需要对结论给出一个代码走查报告。
网友评论