开发人员测试方法:单元测试、组件测试、集成测试、回归测试、系统测试
其他人员测试方法:beta测试、客户验收测试、性能测试、配置测试、平台测试、压力测试、易用性测试
测试的目标是找出错误
不可能彻底证明程序无错
本身不能改善程序质量
要求测试者假设存在问题
开发者测试占用时间应该在整个项目时间8%~25%
方法:
针对需求、设计关注点测试、基础测试、数据流测试、使用检查表
测试先行:
先写测试用例迫使你思考一下需求和设计,能更早的把需求上的问题暴露出来,针对糟糕的需求写测试用例是一件困难的事性。
开发者测试的局限性:
“干净测试”,程序员喜欢检查代码能否正常工作,而非失效
开发者测试对覆盖率有过于乐观的估计
“100%语句覆盖率”而不是“100%分支覆盖率”--对每个分支至少测试一个正值和一个否值
需要多少测试用例
直路为1,遇到分支,每个加1
数据流测试
猜测错误
测试数据本身的错误