其他分享
首页 > 其他分享> > 《软件测试》第六章 检查代码

《软件测试》第六章 检查代码

作者:互联网

《软件测试》第六章 检查代码

6.0 前言

本章重点包括:

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

静态测试是指测试非运行部分——检验和审查。白盒(或者称为透明盒)测试是指访问代码,能够查看和审查。

静态白盒测试是在不执行软件的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时称为结构化分析。

进行静态白盒测试的首要原因是尽早发现软件缺陷,以找出动态黑盒测试难以发现或隔离的软件缺陷。在开发过程初期让测试小组集中精力进行软件设计的审查非常有价值。进行静态白盒测试的另一个好处是,为黑盒测试员在接到软件进行测试时设计和应用测试用例提供思路。他们可能不必了解代码的细节,但是通过听审查评论,就可以确定有问题或者容易产生软件缺陷的特性范围。

6.2 正式审查

正式审查就就是进行静态白盒测试的过程。正式审查有4个基本要素:

进行正式审查要按照已经建立起来的过程执行。随意“聚在一起复查代码”是不够的,实际上还会造成危害。如果执行过程随意,就会遗漏软件缺陷,参与者很可能感觉这样做是在浪费时间

除了发现问题,坚持正式审查还有一些间接效果:

6.2.1 同事审查

召集小组成员进行初次正式审查最简单的方法就是通过同事审查的方式。这种方法大体类似于“如果你给我看你的,我也给你看我的”类型的讨论。同事审查通常仅在编写代码或设计体系结构的程序员,以及充当审查者的其他一两个程序员和测试员之间进行

这个小团体只是在一起审查代码,寻找问题和失误。为了保证审查的高效率(不致流于休息闲聊),所有的参与者要切实保证正式审查的4个关键要素:查找问题、遵守规则、审查准备和编写报告。

6.2.2 走查

走查是比同事审查更正规化的下一步。走查中编写代码的程序员向5人小组或其他程序员和测试员组成的小组做正式陈述。审查人员应该在审查之前接到软件拷贝,以便检查并编写备注和问题,在审查过程中提问。审查人员之中至少有一位资深程序员是很重要的。

陈述者逐行或者逐个功能地通读代码,解释代码为什么且如何工作。审查人员聆听叙述,提出有疑义的问题。由于公开陈述的参与人数要多于同事审查的,因此,为审查做好准备和遵守规则是非常重要的同样重要的是,审查之后陈述者要编写报告说明发现了哪些问题,计划如何解决发现的软件缺陷

6.2.3 检验

检验是最正式的审查类型,具有高度组织化,要求每一个参与者都接受训练。检查与同事审查和走查的不同之处在于表述代码的人——表述者或者宣读者——不是原来的程序员。这就迫使他学习和了解要表述的材料,从而有可能在检验会议上提出不同的看法和解释。

其余的参与者称为检验员,其职责是从不同的角度如用户、测试员或者产品支持人员的角度审查代码。检查员甚至要担负着倒过来(也就是说,从尾至头)审查代码的责任,确保材料的彻底和完整。

有些检验员还同时被委任为会议协调员和会议记录员,以保证检验过程遵守规则及审查有效进行

召开检验会议之后,检验员可能再次碰头讨论他们发现的不足之处,并与会议协调员共同准备一份书面报告,明确解决问题所必须重做的工作。然后程序员进行修改,由会议协调员验证修改结果。根据修改的范围和规模以及软件的关键程度,可能还需要进行重新检验,以便找到其余的软件缺陷。

检验经证实是所有软件交付内容中,特别是设计文档和代码中发现软件缺陷非常有效的方法。

6.3 编码标准和规范

标准是建立起来、经过修补和必须遵守的规则——做什么和不做什么。规范是建议最佳做法、推荐更好的方式。标准没有例外情况,缺少结构化的放弃步骤。规范就要松一些,不如标准严格。

6.4 通用代码审查清单

6.4.1 数据引用错误

数据引用错误是指使用未经正确声明和初始化的变量、常量、数组、字符串或记录而导致的软件缺陷。

数据引用错误是缓冲区溢出的主要原因——一个造成许多软件安全问题的缺陷

6.4.2 数据声明错误

数据声明错误产生的原因是不正确地声明或使用变量和常量。

6.4.3 计算错误

计算或者运算错误实质上是糟糕的数学问题——计算无法得到预期结果。

6.4.4 比较错误

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

6.4.5 控制流程错误

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

6.4.6 子程序参数错误

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

6.4.7 输入/输出错误

输入/输出错误包括文件读取、接受键盘或者鼠标输入以及向打印机或者屏幕等输出设备写入错误。下列条目非常简单、通用,应该在使用时补充,以涵盖所测试的软件。

6.4.8 其他检查

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

6.5 小结

检查代码——静态白盒测试——被证实是早期发现软件缺陷最有效的方法。虽然这是一项需要大量准备工作才能有成效的任务,但是许多研究表明花费的时间与得到的好处相比是值得的。为了使这项任务更有吸引力,现在有了能自动执行大量静态白盒测试工作的商业软件,即静态分析程序。该程序读入程序的源文件,并根据公开标准和自定义规范进行检查。编译器也提高了能力,如果启用所有等级的错误检查,它将捕捉到前面通用代码审查清单列出的许多问题,有些编译器甚至不允许使用具有安全问题的函数。这些工具不是要取消代码审查或者检查任务,只是使任务更容易完成,并给软件测试员更多时间来挖掘更深的软件缺陷。

标签:审查,错误,是否,代码,6.4,测试,第六章,软件测试
来源: https://blog.csdn.net/qq_45580956/article/details/118086010