10.1 测试与质量保证简介
检测软件程序和中间文档中错误的技术:
- 测试
- 检查和审查
- 形式化方法
- 静态分析
产品质量的定义:
- 符合规约
- 为其目的服务
注意,产品可能符合规约但没有任何用处,两个定义是不等价的。
与两个质量概念相对应,有两项活动:
- 验证(Verification):检查软件产品是否符合其需求或规约
- 确认(Validation):检查最终完成的软件产品是否符合用户的需求和规约
失效、缺陷和错误:
- 失效(Failure/Problem):系统不能按其规格说明执行某项功能,这是由系统中的缺陷导致的
- 缺陷(Fault/Defect):可能导致系统失效的情况,这是由软件工程师所犯的错误引起的,也称为bug
- 错误(Error):软件工程师或程序员所犯的过失
10.2 测试
测试是通过识别缺陷和问题来评估产品质量并进行改进的一项活动。
软件测试是指基于一组有限的测试用例,动态的验证程序的行为,并与预期行为进行对比。
测试的目的:
- 找到软件中的缺陷,以便修正或减少缺陷
- 提供质量的总体评估,为产品在大多数情况下正常运行提供一些保证,并对可能存在的缺陷进行估计
10.3 测试技术
由谁来测试?
- 程序员:单元测试
- 测试员:对测试结果进行统计分析,评估产品的质量水平,也协助制定产品发布决策
- 用户:用户属于开发组织称为Alpha测试,用户不属于开发组织则为Beta测试
测试什么?
- 单元测试:单个功能单元
- 功能测试:多个独立单元组合在一起
- 继承和系统测试:完整系统
为什么要测试?
- 验收测试
- 一致性测试
- 配置测试
- 性能测试
- 压力测试
- 用户界面测试
如何选择测试用例?
- 直觉
- 规约:黑盒测试
- 代码:白盒测试
- 现有的测试用例:回归测试
- 缺陷:错误猜测或易错分析
常见测试方法:
- 等价类划分
- 边界值分析
- (程序)路径分析
- 条件组合
- 自动化单元测试
- 测试驱动开发
10.7 静态分析
- 中间文档的完整性、可追溯性
- 源代码
- 可执行文件
Loading Comments By Disqus