IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 精读-软件测试的艺术之代码检查,走查与评审 -> 正文阅读

[开发测试]精读-软件测试的艺术之代码检查,走查与评审

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

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

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

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

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

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

缺点:通常会有效的查抄出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. 是否遗漏了某个功能

代码走查

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

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

桌面检查

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

同行评分

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

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 20:45:08  更:2021-09-12 20:45:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 3:29:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码