《软件测试的艺术》读书笔记(三)

3.3 用于代码检查的错误列表

常见错误对照表,容易出现的问题:过于注重代风格码而不是代码错误、过于模糊不够具体。

 

 

 

 

 

 

 

 

 

 

 

3.3.1 数据引用错误

3.3.2 数据声明错误

3.3.3 运算错误

3.3.4 比较错误

3.3.5 控制流程错误

3.3.6 接口错误

3.3.7 输入/输出错误

3.3.8 其他检查

就像产品经理会有一个清单,在需求和原型完成后对照查看是否有常见的遗漏和错误,代码检查的这些常见错误也涵盖了方方面面。

虽然其中有些专有名词看不太明白,但看得明白的部分确实是一些不太容易发现又确实遇到过的 bug,原来这些问题在代码检查阶段就应该发现。

在实际工作中,时常因为例如接口返回顺序到底应该由产品来规定,还是程序员应该自己决定而无法明确区分权责。

目前的情况就是,对于一些和时间相关的顺序,经过多次纠错,程序员同事已经知道默认使用倒序排序,已经算是从“反常问题”变成了“常规问题”。

但对于一些不那么明显的列表,还是会存在使用莫名其妙的排序方法的问题,例对随机 ID 进行首字母排序,导致从表象来看完全摸不着头脑。

3.4 代码走查(Walkthroughs)

代码走查小组由三至五人组成,其中一人负责协调,一人负责记录所有查出的错误除,一人负责测试。

小组成员组成,除了负责编写项目的程序员外,还可以从以下人员中挑选两到三人:

(1)一位极富经验的程序员

(2)一位程序设计语言专家

(3)一位程序员新手(可以给出新颖,不带偏见的观点)

(4)最终将维护程序的人员

(5)一位来自其他不同项目的人员

(6)一位来自该软件编程小组的程序员

 

不同于仅阅读程序或使用错误检查列表,代码走查的参与者“使用了计算机”。被指定为测试人员的那个人会带着一些书面的测试用例(程序或模块具有代表性的输入集及预期的输出集)来参加会议。

与代码检查不同的是,走查有了测试人员的参与,加入了对程序的使用。

在大多数的代码走查中,很多问题是在向程序员提问的过程中发现的,而不是由测试用例本身直接发现的。

走查所有的测试用例并不是完整的,而是只包含一些主要的、典型的部分。

代码走查的目的并不是通过走查找到所有的错误(这是软件测试的目的),而是提供了对程序员的逻辑思路和设计思想质疑的机会。

就像产品需求评审一样,是人们坐在一起对程序的逻辑和需求进行评审的机会。

目的都是尽早发现逻辑错误,以免浪费开发成本,造成更大的损失。

3.5 桌面检查(Desk Checking)

桌面检查可视为由单人进行的代码检查或代码走查:由一个人阅读程序,对照错误列表检查程序,对程序推演测试数据。

桌面检查胜过没有检查,但其效果远远逊色于代码检查和代码走查。

3.6 同行评分(Peer Ratings)

• 程序是否易于理解?
• 高层次的设计是否可见且合理?
• 低层次的设计是否可见且合理?
• 修改此程序对评审者而言是否容易?
• 评审者是否会以编写出该程序而骄傲?

该过程适用于企业开发和课堂教学环境

通过第三方评价帮助程序员发现自身编程能力的不足。

3.7 小结

大多数的软件项目都应使用到以下的人工测试方法:
• 利用错误列表进行代码检查。
• 小组代码走查。
• 桌面检查。
• 同行评审。

posted @ 2022-09-19 14:28  丸子233  阅读(35)  评论(0编辑  收藏  举报