1、什么是测试?
- 狭义:发现软件系统中的问题和缺陷
- 广义:利用静态和动态的测试手段对软件系统进行证明和检测
- IEEE:通过人工或者自动化的手段执行程序或者运行系统,来检测软件系统是否符合用户的需求或者是否和预期结果有偏差
- GJmayer:
- 好的测试就是发现迄今为止未发现的缺陷
- 成功的测试是指定法相更多缺陷的方案
- 测试是为了发现缺陷而执行程序的过程
2、测试的目的?
初期:证明(20世纪50--60年代)
中期:检测(20世纪70年代)
后期:证明+预防(20世纪80年代--至今)
目前:软件系统比较复杂,测试不能穷举;检测问题;
对简单的指令或者程序做证明
异常的数据操作;非功能方面的要求
3、软件产品的生命周期
- 项目计划:
- 项目的可行性(成本,技术)
- 项目的时间安排(开始时间,结束时间)
- 项目的人员(开发人员,测试人员,业务分析人员)
- 需求分析:
- 功能
- 非功能(性能分析,界面,可靠性,移植性)
- 接口分析
- 技术(不涉及到详细的技术)
- 设计:(根据软件系统规模的大小复杂度的高低有不同层次的设计)
- 概要设计(HLD)
- 详细设计(LLD)
- 实现(编码):
- 测试:
- 单元
- 集成
- 系统
- 运行:
- 评价和维护
4、测试的几个专业术语
- SRS:需求分析文档
- HLD:概要设计文档
- LLD:详细设计文档
- BD:基本设计
- DD:详细设计
- FD:结构设计