首页 > 其他分享 >《软件测试的艺术》读书笔记(三)

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

时间:2022-09-19 14:34:39浏览次数:70  
标签:艺术 错误 读书笔记 代码 检查 程序员 3.3 走查 软件测试

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 小结

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

标签:艺术,错误,读书笔记,代码,检查,程序员,3.3,走查,软件测试
From: https://www.cnblogs.com/lisaisacat/p/16707586.html

相关文章

  • 提示的艺术:为什么“提示工程”是未来的技能
    提示的艺术:为什么“提示工程”是未来的技能虽然在AI机器人中输入文字似乎不是一项技能,但摄影的历史表明它确实如此——而且它将在未来几十年内出现。Animagecreated......
  • 《js 设计模式与开发实践》读书笔记 13
     职责链模式的定义是:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 ......
  • 《js 设计模式与开发实践》读书笔记 14(完)
    在传统面向对象语言中,给对象添加功能常常使用继承的方式,但是继承的方式并不灵活,还会带来许多问题:一方面会导致超类和子类之间存在强耦合性,当超类改变时,子类也会随之改变;另......
  • 计算机网络-自顶向下方法(读书笔记)
    Chapter1计算机网络与因特网: 现在的intenet,计算机网络,现在已经是各种计算机与非传统设备联系的网络,这些设备应该称为主机(host)和端系统(endsystem);端系统(en......
  • 第十章读书笔记
    SH编程1.sh脚本2.c和sh的区别3.命令行参数4.Sh变量$A相当于C语言中的指针。5.sh中的引号即需要转义(将原本具有特殊意义的字符普通化)6.sh语句(简......
  • 《Unix/Linux系统编程》第十章读书笔记
    自学教材第10章学习笔记一、任务内容自学教材第10章,提交学习笔记(10分)大家学习过Python,C,Java等语言,总结一下一门程序设计语言有哪些必备的要素和技能?这些要素和技能在......
  • 2022年你要知道的软件测试工作流程
    不同类型的软件产品测试的方式和重点不一样,测试流程也会不一样。同样类型的软件产品,不同的公司所制定的测试流程也会不一样。虽然不同软件的详细测试步骤不同,但它们所遵循......
  • 【旧书,科研相关】 读书笔记
    在大多数之前的系统中,图像捕获和处理模块被分离为两个独立的部分,不存在交互。视觉芯片将两层集成的交互行为提高了速度(并行传输带宽增加,传输信息冗余减少),增加了局部光强自......
  • 220905-读书笔记-把时间当做朋友
    印象中,第一次读这本书的时候,是在大学期间,应该是大一或者大二的时候,当时候自己的智识达不到理解这本书的层次。现在在读这本书,竟觉得略有些浅显。总的来说,这本书写的比较零......
  • 第一次读书笔记
    总结:第一二单元总的来说是在描述Linux系统中c语言的重要性,以及在其中的一些使用技巧。其中C语言数据结构中的数据结构,就是Linux文件系统构建起来的基础。第一章主要包含......