第六章 检查代码

一、静态白盒测试:检查设计和代码

静态白盒测试

  • 定义:在不执行软件的条件下有条理的仔细审查软件设计、体系结构和代码从而找出软件缺陷的过程,又称结构化分析。
  • 原因:是在开发过程早期发现软件缺陷,以找出动态黑盒测试难以发现或隔离的软件缺陷。
  • 好处:
    1)修复的时间和费用大幅减低。软件测试员可以得到软件如何运行的信息,存在哪些弱点和危险,而且可以与程序员建立良好的伙伴关系。项目状态可以传达给参与测试的所有小组成员。
    2)为黑盒测试员在接到软件进行测试时设计和应用测试用例提供思路。

二、正式审查

  • 正式审查就是进行静态白盒测试的过程。
  • 范围:两个程序员之间的简单交谈到软件设计和代码的详细检查。
  • 正式审查的关键要素
    按照过程进行是正式审查和两个程序员之间互查代码的区别。
  • 四个基本要素
    1)确定问题。找出软件问题包括遗漏项目
    2)遵守规则。
    3)准备。每一个参与者都为审查做准备,并尽自己的力量。
    4)编写报告。审查小组必须做出审查结果的书面总结报告,报告要便于开发小组成员使用。
  • 间接效果
    1)交流。正式报告中为包含的信息得以交流
    2)质量。程序员的代码经过逐个功能、逐行代码仔细复查,会使程序员变仔细
    3)小组同志化。审查正确进行,软件测试员和程序员会尊重双方,更好互动
    4)解决方案。
1、同事审查
  • 定义:又称伙伴审查,召集小组成员进行初次正式审查最简单的方法
  • 常用场景:编写代码或设计体系结构的程序员和充当审查者的其他程序员和测试员之间。
2、走查

走查中编写代码的程序员向五人小组或其他程序员和测试员组成的小组做正式陈述,审查人员聆听陈述提出疑问。

3、检验
  • 最正式的审查类型,具有高度组织化,要求每一个参与者都接受训练。
  • 不同点:表述者或宣读者——不是程序员,要学习和了解要表述的材料。其他参与者称为检验员,从不同角度审查代码(用户、测试员)。有些检验员还被委任为会议协调员和会议记录员保证检验过程有效进行
  • 除了更正式之外,检验与其他审查类型的重大区别:在检验时,在场的不是代码的原创者。这迫使另一个完全理解要检验的软件。这比让其他人只是审查软件寻找软件缺陷更加有效。

三、编码标准和规范

  • 坚持标准和规范的三个重要原因
    1)可靠性
    2)可读性/可维护性
    3)移植性。代码符合设备标准可秦公司能够迁移到另一个平台
1、编程标准和规范示例
  • 组成标准四部分
    1)标题
    2)标准(规范)。描述标准内容解释哪些可以不可以
    3)解释说明。为什么这样做是好的
    4)示例。如何使用标准的简单程序示例
2、获取标准
  • 美国国家标准学会(ANSI)
  • 国际过程协会(IEC)
  • 国际标准化组织(ISO)
  • 信息技术 标准国家委员会(NCITS)
  • 提供演示程序规范和最佳时间的文档
    1)美国计算机协会(ACM)
    2)电气和电子工程师协会(IEEE)

四、通用代码审查清单

1、数据引用错误
  • 定义:指使用未经正确声明和初始化的变量、常量、数组、字符串或记录而导致的软件缺陷。
  • 缓冲区溢出的主要原因
2、数据声明错误
  • 产生原因:不正确的声明或使用常量和变量。
3、计算错误

实质上是糟糕的数学问题——计算无法得到预期结果

4、比较错误

小于、大于、等于、不等于、真、假——比较和判断错误很可能是由于边界条件问题。

5、控制流程错误

控制流程错误的原因是编程语言中循环等控制结构未按预期方式工作。通常由计算或比较错误直接或间接造成。

6、子程序参数

子程序参数错误的来源是软件子程序不正确地传递数据。

7、输入/输出错误

输入/输出错误包括文件读取、接受键盘或鼠标输入以及向打印机或屏幕等输出设备写入错误。

8、其他检查

这个压轴清单定义了一些不适合放在其他类别的条目。这不是为了完整,而是为了定制软件项目清单应该加入的内容。

小测验

1、说出进行静态白盒测试的几个好处。
静态白盒测试在开发过程早期发现软件缺陷,使修复的时间和费用大幅降低。软件测试员可以得到软件如何运作的信息,存在哪些弱点和危险,而且可以程序员建立良好的伙伴关系。项目状态可以传达给参与测试的所有小组成员。
2、判断是非:静态白盒测试可以找出遗漏之处和问题。
对。遗漏的问题比普通的问题更重要,通过静态白盒测试可以发现。当根据公布的标准和规范检查代码,在正式审查中仔细分析时,遗漏的问题就显而易见了。
3、正式审查有哪些关键要素组成?
过程。按照过程进行是正式审查和两个程序员之间互查代码的区别。
4、除了更正式之外,检验与其他审查类型有什么重大差别?
主要区别是,检验时在场的不是代码的原创者。这迫使另一个人完全理解要检查的软件。这比让其他人只是审查软件寻找软件缺陷更有效。
5、如果要求程序员在命名变量时只能使用8个字符并且首字母必须采用大写的形式,那么这是标准还是规范呢?
这应该算是标准,如果程序员被告知要用超过8个字符命名,那么,这就是规范了。
6、你会采用本章的代码审查清单作为小项目小组验证代码的标准吗?
不会。这只是用作一个通用的示例。其中虽然有一些好的测试用例,应该在测试代码是考虑,但是,应该研读其他公开的标准之后再采用自己的标准。
7、缓冲区溢出错误作为一个常见的安全问题属于哪一级错误?是由什么原因引起的?
数据引用。他们是由于使用了未正确声明或未进行初始化的变量、常量、数组、字符串或记录。

《软件测试》[(美)Ron Patton]第六章阅读总结相关推荐

  1. 《软件测试》[(美)Ron Patton]第四章阅读总结

    第四章 检查产品说明书 一.开始测试 描述测试方式的4个术语:黑盒测试.白盒测试.静态测试.动态测试. 1.黑盒测试和白盒测试 黑盒测试:又称功能性测试或行为测试,它是通过测试来检查每个功能是否都能正 ...

  2. 软件测试中文电子版姚静_软件测试[(美)ron patton]读书笔记

    雪舞奉天读书笔记                                   msn: wwwux@163.com 第一部分 软件测试综述 软件测试 - 机械工业出版社 (美) Ron Pat ...

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

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

  4. 《软件测试》[(美)Ron Patton]第十二章阅读总结

    第12章 文档测试 一.软件文档的类型 文档的软件组成部分 包装文字和图形.包括盒子,纸箱和包装纸. 市场宣传材料,广告及其它插页. 授权/注册登记表. EULA(最终用户许可协议),这是要客户同意条 ...

  5. 软件测试(Ron Patton著)学习笔记

  6. 《数学之美》——第六章 个人笔记

    数学之美 最近在读<数学之美>这本书,做一下个人笔记.看的是PDF,看完后会买一本的哦!版权意识还是有的. ps:图片文字都是这本书中的内容,侵权立删.会有点自己的理解. 第六章     ...

  7. 《数学之美》 第六章 信息的度量和作用

    <数学之美> 第六章 信息的度量和作用 信息量等于不确定性的多少 香农定理中,用比特bit这个概念来度量信息量.一个比特是一位二进制数,计算机中一个字节是8比特 信息熵,一般用符号H表示 ...

  8. 【西电—英美国家概况(英美概况/英美文化)2023第一学期】第六章参考课后答案

    #[西电-英美国家概况(英美概况/英美文化)2023第一学期]第六章参考课后答案 提示:第四.五题别看错了!

  9. 软件测试慕课版学习总结—第六章

    第六章--软件测试的度量 1.什么是软件测试的度量? 软件度量是一种度量技术,这种技术用来支撑过程.产品和服务中心工程和管理信息,以及支持过程.产品及服务的信息上的改进,从而量化地评定测试过程的能力和 ...

最新文章

  1. windows中PyCharm的安装和使用
  2. 【转】Oozie4.2.0配置安装实战
  3. iptables做路由转发服务器经典案例
  4. 绝了!Pandas绘图功能
  5. ai如何做倒角和圆角_石材路沿石是如何倒角的?倒角费用是多少?路沿石质量标准?...
  6. 【机器视觉】 case算子
  7. 【算法系列之五】对称二叉树
  8. Android (cocos2dx 网络访问)访问权限设置
  9. 函数重载二义性:error C2668: 'pow' : ambiguous call to overloaded function
  10. springwebflux 页面_Spring Security: Webflux 默认配置
  11. C语言中动态数组的分配
  12. python属性查找 深入理解(attribute lookup)
  13. python、matlab、c++的括号增加次序,以及图片存储方式
  14. 画出计算机主机结构示意图,电脑裁片机的制作方法
  15. (CentOS7)IP地址的配置与主机名和hosts映射
  16. CSS实现3D菜单效果【每日一题】
  17. vue音乐添加,控制开关
  18. 单片机复位电路,隐藏着这么多门道
  19. 转如何用ps制作名片
  20. 论文解读(GMI)《Graph Representation Learning via Graphical Mutual Information Maximization》

热门文章

  1. mysql查询所有男生信息_MySQL 数据查询
  2. 控价公司可以帮我们做什么?什么时候需要找第三方控价公司?
  3. 编译Android系统源码推荐的电脑配置
  4. 关于整形数据与浮点型数据相加易错点
  5. LayUI 图标字体,layui.use 加载指定模块
  6. 华为认证hcia多少钱_华为认证hcia费用一览表
  7. 中科大计算机博士毕业条件,中科大硕士博士学位授予实施细则.pdf
  8. STM32 理解宏定义的重要性
  9. ORICOnbsp;SATA转ESATA挡板真爽,安装…
  10. Java精品项目系统100期生活旅行分享网站