第七章
7.5 软件测试 测试优先的编程
1 软件测试
什么是测试
测试:发现程序中的错误 提高程序正确性的信心
程序正确确认的基本方法:
- 形式化推理
- 代码评审
- 测试
测试是提高软件质量的重要手段
- 确认是否可达到可用的级别
关注系统某一侧面的质量特性
是否满足需求
- 是否正确响应所有需求
- 性能是否可接受
- 是否可用
- 可否正确部署安装
- 是否达到期望
测试分类
- 单元测试
- 集成测试
- 系统测试
- 回归测试
- 验收测试
白盒测试 黑盒测试
白盒测试:对程序内部代码结构的测试 只关注代码内部的问题
黑盒测试:对程序外部表现出来的行为的测试 采用两个方法
测试困难
- 软件行为在离散输入空间中差异巨大
- 大多数正确 少数错误
- bug出现不遵循特定概率分布
- 无统计规律可循
2 测试用例
这一部分和其他部分联系紧密 不再赘述
3 测试优先编程
在编码之前写出测试 测试接口功能 测试方法正确性
Specification文档 需求
按照规定的语法编写注释 生成文档
4 单元测试
针对软件的最小单元模型开展测试 隔离各个模块 容易定位错误和调试
- 模型接口
- 本地数据结构
- 所有的正常输出
- 边界条件
- 所有的错误处理