本文是关于精读书籍《软件测试的艺术》的一些学习笔记和分享

本书共有九章包括测试思想(心理,经济),代码检查,测试用例设计,模块测试,更高级别的测试,调试,极限测试和因特尔应用系统的测试。

本章节主要讨论人工检测的形式,现在大多数软件项目都应使用利用错误列表进行的代码检查,小组代码走查桌面检查同行评审

其中,代码的检查和走查是两种主要的人工测试方法也是比较有效率的人工检测方法。代码检查和走查都要求人们组成一个小组来阅读或只管检查特定的程序。通常是一组开发人员(三至四人为最佳),参与者当中只有一人是程序编写者,这也符合“软件编写者往往不能有效地测试自己编写的软件”的测试原则。

参与者会议会有着“头脑风暴会”。“头脑风暴会”的目标是找出错误来,但不必找出更改错误的方法

优点:能在代码中对其进行精确定位,这就减少了调试(错误的成本)

缺点:通常会有效的查抄出30%-70%的逻辑设计和编码错误。但是这些方法不能有效的找出高层次的设计错误。

根据我们的经验,修改比编写新程序更容易产生错误,所以除了回归测试之外,更改后的程序还要进行人工方法的测试。

代码检查

代码检查的讨论主要集中在规程、所要填写的表格等。团队一般由四人组成,包括协调员程序编码人员程序设计人员和一名测试专家

协调人员不能是该程序的编码人员。协调人员的职责主要是分发材料和安排进程,如果有错误就记录发现的所有错误,并确保错误得到了改正

会议流程:

  • 协调人提前将程序清单设计规范发给其他人成员,其他成员应熟悉内容
  • 检查进行时,程序编码人员逐条语句讲述程序的逻辑结构。其他成员判断是否有错误
  • 对历来常见的编码错误列表分析程序

注意事项:

  • 集中在发现错误而不是修改错误
  • 错误太多或者设计根本性改变,协调人员会安排再次检查
  • 时间地点要避免所有的外部干扰
  • 理想的时间应该是90-120分钟
  • 大型软件的检查可以安排多个检查会议同时进行(子模块或者子程序)
  • 程序员应该有自我本位的态度来对待检查过程,不要抵触
  • 建议结果进行保密,仅限于参与者内部

代码检查可以帮助程序员获得编程风格及编译技术等方面的反馈信息,并且也可以帮助在之后的计算机测试中将注意力更多的集中在这些地方。

其中一些常用的错误种类有数据引用错误数据声明错误运算错误比较错误控制流程错误接口错误输入输出错误其他检查等。

  1. 数据引用错误

    1. 是否有引用的变量未赋值或未初始化
    2. 下标的值是否在范围
    3. 是否存在非整数下标
    4. 是否存在虚调用
    5. 当使用别名的属性是否正确
    6. 记录和结构的属性是否匹配
    7. 是否计算位串的地址?是否传递位串参数
    8. 基础的属性结构定义是否匹配
    9. 跨过成的结构定义是否匹配
    10. 索引或下标操作是否有‘仅差一个’的错误
    11. 继承需求是否得到了满足
  2. 数据声明错误
    1. 是否所有的变量都已声明
    2. 默认的属性是否被正确理解
    3. 数组和字符串的初始化是否正确
    4. 变量是否赋予了正确的长度、类型和储存类
    5. 初始化是否与储存类相一致
    6. 是否有相似的变量名
  3. 运算错误
    1. 是否存在非算术变量间的运算
    2. 是否存在混合模式的运算
    3. 是否存在不同字长度变量间的运算
    4. 目标变量的大小是否小于赋值大小
    5. 中间结果是否上溢或者下溢
    6. 是否存在被0除
    7. 是否存在二进制的不精确度
    8. 变量的值是否超过了有意义的范围
    9. 操作符的优先顺序是否被正确理解
  4. 比较错误
    1. 是否存在不同类型变量间的比较
    2. 是否存在混合模式的比较运算
    3. 比较运算符是否正确
    4. 布尔表达式是否正确
    5. 比较运算是否和布尔表达式相混合
    6. 是否存在二进制小数的比较
    7. 操作符的优先顺序是否被正确理解
    8. 编译器对布尔表达式的计算方式是否被正确理解
  5. 控制流程错误
    1. 是否超出多条分支路径
    2. 是否每个循环都终止了
    3. 是否每个程序都终止了
    4. 是否存在由于入口条件不满足而跳过循环体
    5. 可能的循环越界是否得到满足
    6. 是否存在“仅差一个”的迭代错误
    7. DO/END语句是否匹配
    8. 是否存在不能穷尽的判断
    9. 输出信息是否有文字语法错误
  6. 接口错误
    1. 形参数量、属性、量岗是否等于实参的数量、属性、量岗
    2. 传递给被调用模块的实参的数量、属性、量岗是否等于其形参数量、属性、量岗
    3. 调用内部函数的实参的数量、属性、顺序是否正确
    4. 是否引用了与当前入口点无关的形参
    5. 是否改变了某个原本仅为输入值的形参
    6. 全局变量的定义在模块间是否一致
    7. 常数是否以实参形式传递过
  7. 输入输出错误
    1. 文件属性是否正确
    2. OPEN语句是否正确
    3. I/O语句是否符合格式规范
    4. 缓冲大小记录大小是否匹配
    5. 文件在使用前是否打开
    6. 文件在使用后是否关闭
    7. 文件结束条件是否被正确处理
    8. 是否处理了I/O错误
  8. 其他检查
    1. 在交叉引用列表中是否存在未引用过的变量
    2. 属性列表是否与预期的相一致
    3. 是否存在警告或者提示信息
    4. 是否对输入的合法性进行了检查
    5. 是否遗漏了某个功能

代码走查

跟代码检查相似,但规程稍微不同,错误检查技术也不一样。代码走查会让准备一些简单的测试用例,让每个测试用例在脑中进行推演,程序状态会被记录在纸张或者白板上以供监视。

走查小组建议包括:一个经验丰富的程序员,一个程序设计语言专家,一个程序员新手(可以给出新颖不带偏见的观点),最终维护程序的人员,一位来自其他不同项目的人员,一位来自该软件编程小组的程序员

桌面检查

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

同行评分

同行评分是一种依据程序整体质量,可维护性,可拓展性,易用性和清晰性对匿名程序进行评价的技术。主要目的是为程序员提供自我评价的手段,提高自己的编程技术。

精读-软件测试的艺术之代码检查,走查与评审相关推荐

  1. 精读-软件测试的艺术之调试,极限测试和因特尔应用系统的测试

    本文是关于精读书籍<软件测试的艺术>的一些学习笔记和分享 本书共有九章包括测试思想(心理,经济),代码检查,测试用例设计,模块测试,更高级别的测试,调试,极限测试和因特尔应用系统的测试. ...

  2. 软件测试的艺术_全书读书笔记

    --写在前面,本文是对<软件测试的艺术(第3版)>的观后总结,记录方便日后查阅复习.本文中的一些图片都是引用自<软件测试的艺术(第3版)>. 相对于别的书来说,这本书的可读性非 ...

  3. 《软件测试的艺术》第3章:代码检查、走查与评审

    <软件测试的艺术>: 软件开发人员通常不会考虑到的一种测试形式:人工测试.大多数人认为,因为程序是为了供机器执行而编写的,那么也应由机器来对程序进行测试.这种想法是有问题的.人工测试方法在 ...

  4. 计算机桌面等检查,计算机等级考试(国家)-桌面检查、代码检查、走查与评审...

    计算机等级考试(国家)-桌面检查.代码检查.走查与评审 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 桌面检查.代码检查.走查与评审一 ...

  5. 软件测试的艺术 读书笔记完整版

    第 1 章 一次自评价测试 定义: 所谓软件测试,就是一个过程或一系列过程,用来确认计算机代码完成了其应该完成的功能,不执行其不该有的操作. 一个三角形类别判定程序的测试用例的评判(评判测试用例的设计 ...

  6. 《软件测试的艺术》高清脑图总结

    各位朋友,大家好,我是财哥. 今天财哥为大家带来一本软件测试的经典书籍分享:<软件测试的艺术>,这本书堪称软件测试书籍中的圣经,该书首次印刷于1979年,距今一共发行过三版:第一版,第二版 ...

  7. 《软件测试的艺术》万字笔记

    软件测试的心理学和经济学 软件测试人员在测试过程中要有正确的态度(愿景) 心理学 软件测试的定义需要明确:软件测试的根本应该聚焦到为程序增加价值,让程序变得更加可靠,是找出问题并让问题得到解决的过程 ...

  8. 《软件测试的艺术》第六章 更高级别的测试

    <软件测试的艺术>第六章 更高级别的测试 6.0 前言 软件开发过程模型 6.1 功能测试 6.2 系统测试 6.2.1 能力测试 6.2.2 容量测试 6.2.3 强度测试 6.2.4 ...

  9. 《软件测试的艺术》读书笔记 - 1

    <软件测试的艺术(原书第三版)> 本书从第1版付梓到现在已经30余年,是软件测试领域的经典著作.本书结构清晰.讲解生动活泼,简明扼要地展示了久经考验的软件测试方法和智慧. 作 者:(美)梅 ...

最新文章

  1. ICCV 2021 | 基于稀疏多视角彩色相机的多人人体全身捕捉
  2. Linux操作系统Ubuntu部署Mysql篇
  3. nginx实现,一推多用(rtmp推流,rtmp+flv+hls(m3u8)同时拉流),使用案例+使用方法
  4. network重启失败原因
  5. Pyhton学习——Day9
  6. 获取2个地址之间的距离(高德API)
  7. 12c集群日志位置_大数据系列教程006-开启日志聚合功能
  8. Apache yarn入门介绍
  9. C#.NET 大型企业信息化系统集成快速开发平台 4.2 版本 - 大型软件系统客户端数据同步的问题解决...
  10. 使用SPSS进行商业数据分析
  11. 难得一见的数据库事务异常 Deadlock found when trying to get lock解决办法dao.DeadlockLoserDataAccessException怎么办
  12. Python 算法交易实验41 GMM简单估计
  13. 关于c++产生string subscript out of range问题的自己的经历与解决方案
  14. 南大软院大神养成计划--CSS网页布局
  15. 车主必看,2021年车险改革内容,2022年车险改革
  16. 浙江万里学院计算机期末考,期末复习看这一篇推送就够了
  17. word指定文档每页行数
  18. jess笔记_(2)
  19. Python---format格式化
  20. 云栖专辑 | 阿里开发者们的20个感悟,一通百通

热门文章

  1. Python实现投影法分割图像(一)
  2. 计算机二级:公共基础部分
  3. 【无人机三维路径规划】基于A算法解决三维路径规划问题含危险障碍地形含Matlab源码
  4. 关于iOS的自动弹出键盘问题
  5. 不推荐二周目跑重复剧情 不推荐开混10,建议开混11,游戏文本的奖励减半并没有生效. 混10=混11+混乱词条 1.经济获取(学自大佬:小小银Salmon【B站号】) 金币获取:刚通关开混乱11,拿主
  6. U盘读不出来的解决办法
  7. 计算机组成与结构习题答案,计算机组成与结构习题及答案
  8. HTML识别文本空格回车换行展示
  9. 单细胞分析Scanpy(一):Anndata数据结构
  10. IT风险管理研究框架