第二章,软件测试技术(续)

   软件质量缺陷的原因

  • 缺乏或者没有进行沟通
  • 软件复杂度
  • 编程错误
  • 不断变更的需求
  • 时间的压力
  • 开发人员的压力
  • 缺乏文档的代码
  • 软件开发的工具

测试的原则

  1. 尽早并持续的测试
  2. 使用测试用例
  3. 避免自检
  4. 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件
  5. 充分注意测试中的群集现象
  6. 应当对每个测试结果做全面检查
  7. 妥善保存测试产物

测试体系

  • 整个测试体系包括:测试过程、测试方法、测试工具、测试管理工具、测试用例库和缺陷库
  • 根据系统特性选择相应的测试方法
  • 未来高效的利用测试方法,要使用有效的工具
  • 通过测试灵活的组合各种测试方法,并有效管理
  • 为了有效的管理和改进测试过程,要采用测试管理工具
  • 测试过程的主要财富是“测试用例库”和缺陷库
  • 通过分析“缺陷库”可以有效的进行过程和改进,并评价一个软件的质量

可测试性

  • 可操作性
  • 可观察性
  • 可控制性
  • 可分解性
  • 简单性
  • 稳定性
  • 易理解性

一个好的测试的属性

  • 一个好的测试发现错误的可能性很高
  • 一个好的测试并不冗余
  • 一个好的测试应该是最佳品种
  • 一个好的测试既不会太简单,也不会太复杂

测试显示了什么

  • 一个成功的测试是指没有找到错误的测试,我们的目标是设计这样的测试,它们能够系统的揭示不同类型的错误,并且耗费最少时间与最小工作量
  • 显示了错误、与需求不一致、性能问题和质量的迹象

注意:测试无法说明错误不存在,它只能表示软件错误已经出现

谁来测试软件

开发人员:理解并构建系统,但是迫于交付计划的压力,只是进行少量的测试,开发人员一般负责进行单元和组件的测试

独立的测试人员:必须学习系统,但是被质量所驱动尽力的找到系统的缺陷,测试人员负责计划、设计、实施和评估测试,并对测试过程和测试资产进行管理

注意:我们每个人都不可能彻底的测试

测试用例的设计

“错误 潜伏在角落里,聚集在边界上”

目标:发现错误

标准:以一种完全的方式

约束:以最小的工作量和时间花费


软件测试的方法

(黑盒测试、白盒测试)

黑盒测试:若了解产品德特定功能,则构造测试,以证实各功能完全可执行,同时在各功能中寻找错误

白盒测试:若了解产品的内部构造,则构造测试,以确保“所有的齿轮吻合”,即内部操作依据规约执行,而且所有的内部构造被充分利用

白盒测试

它有时被称为玻璃盒测试,是一种测试用例设计方法,它使用程序设计的控制结构导出测试用例。

软件工程师使用它能够产生测试用例:

  1. 保证一个模块中的所有的独立路径至少被使用一次,
  2. 对所有的逻辑均需测试true和false
  3. 在上下边界及可操作范围内运行所有循环
  4. 检查内部数据结构以确保其有效性

白盒测试主要关注程序结构,通过分析程序中的关键结构设计测试用例

白盒测试的主要方法:语句覆盖方法、分支覆盖方法、逻辑覆盖方法

为什么要进行白盒测试呢?

  1. 逻辑错误和不正确假设与一条程序 路径被运行的可能性成反比
  2. 我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的基础上被执行
  3. 印刷上的错误是随机的

白盒测试的方法

语句覆盖方法的步骤:

  • 程序结构化:将程序转化为流图
  • 环形复杂度计算:得到的是要覆盖所有语句,独立路径数量的上限N
  • 构造独立路径:构造N条独立路径
  • 确认分支点:针对每条独立路径,确认独立路径上的所有分支点
  • 构造执行条件:根据一条独立路径上的所有分支点集合确认路径执行条件集合
  • 编制用例:对这些路径和路径执行条件集合进行分析,编制用例

猜你喜欢

转载自xianyunxiaoyao.iteye.com/blog/1113513