软件质量缺陷的原因
- 缺乏或者没有进行沟通
- 软件复杂度
- 编程错误
- 不断变更的需求
- 时间的压力
- 开发人员的压力
- 缺乏文档的代码
- 软件开发的工具
测试的原则
- 尽早并持续的测试
- 使用测试用例
- 避免自检
- 在设计测试用例时,应当包括合理的输入条件和不合理的输入条件
- 充分注意测试中的群集现象
- 应当对每个测试结果做全面检查
- 妥善保存测试产物
测试体系
- 整个测试体系包括:测试过程、测试方法、测试工具、测试管理工具、测试用例库和缺陷库
- 根据系统特性选择相应的测试方法
- 未来高效的利用测试方法,要使用有效的工具
- 通过测试灵活的组合各种测试方法,并有效管理
- 为了有效的管理和改进测试过程,要采用测试管理工具
- 测试过程的主要财富是“测试用例库”和缺陷库
- 通过分析“缺陷库”可以有效的进行过程和改进,并评价一个软件的质量
可测试性
- 可操作性
- 可观察性
- 可控制性
- 可分解性
- 简单性
- 稳定性
- 易理解性
一个好的测试的属性
- 一个好的测试发现错误的可能性很高
- 一个好的测试并不冗余
- 一个好的测试应该是最佳品种
- 一个好的测试既不会太简单,也不会太复杂
测试显示了什么
- 一个成功的测试是指没有找到错误的测试,我们的目标是设计这样的测试,它们能够系统的揭示不同类型的错误,并且耗费最少时间与最小工作量
- 显示了错误、与需求不一致、性能问题和质量的迹象
注意:测试无法说明错误不存在,它只能表示软件错误已经出现
谁来测试软件
开发人员:理解并构建系统,但是迫于交付计划的压力,只是进行少量的测试,开发人员一般负责进行单元和组件的测试
独立的测试人员:必须学习系统,但是被质量所驱动尽力的找到系统的缺陷,测试人员负责计划、设计、实施和评估测试,并对测试过程和测试资产进行管理
扫描二维码关注公众号,回复:
1259974 查看本文章
注意:我们每个人都不可能彻底的测试
测试用例的设计
“错误 潜伏在角落里,聚集在边界上”
目标:发现错误
标准:以一种完全的方式
约束:以最小的工作量和时间花费
软件测试的方法
(黑盒测试、白盒测试)
黑盒测试:若了解产品德特定功能,则构造测试,以证实各功能完全可执行,同时在各功能中寻找错误
白盒测试:若了解产品的内部构造,则构造测试,以确保“所有的齿轮吻合”,即内部操作依据规约执行,而且所有的内部构造被充分利用
白盒测试
它有时被称为玻璃盒测试,是一种测试用例设计方法,它使用程序设计的控制结构导出测试用例。
软件工程师使用它能够产生测试用例:
- 保证一个模块中的所有的独立路径至少被使用一次,
- 对所有的逻辑均需测试true和false
- 在上下边界及可操作范围内运行所有循环
- 检查内部数据结构以确保其有效性
白盒测试主要关注程序结构,通过分析程序中的关键结构设计测试用例
白盒测试的主要方法:语句覆盖方法、分支覆盖方法、逻辑覆盖方法
为什么要进行白盒测试呢?
- 逻辑错误和不正确假设与一条程序 路径被运行的可能性成反比
- 我们经常相信某逻辑路径不可能被执行,而事实上,它可能在正常的基础上被执行
- 印刷上的错误是随机的
白盒测试的方法
语句覆盖方法的步骤:
- 程序结构化:将程序转化为流图
- 环形复杂度计算:得到的是要覆盖所有语句,独立路径数量的上限N
- 构造独立路径:构造N条独立路径
- 确认分支点:针对每条独立路径,确认独立路径上的所有分支点
- 构造执行条件:根据一条独立路径上的所有分支点集合确认路径执行条件集合
- 编制用例:对这些路径和路径执行条件集合进行分析,编制用例