一.软件测试历史
1972年举行第一次软件测试会议
1979年给我软件测试经典定义
1996年提出软件测试成熟度模型TMM,TDD
2009年前谷歌/微软测试高管提出探索式测试理论
二.软件测试的定义
1.早期定义:软件测试是对程序能够按预期运行建立起一种信心——Bill Hetzel,1973
2.经典定义:测试是为发现错误而执行程序的过程———Myers,1979(目的发现错误,手段执行程序)
3.IEEE定义(ISO/IEC/IEEE 29119):使用人工或自动的手段来运行或测量软件系统的过程,以检验软件系统是否满足规定的要求,并找出与期望结果之间的差异
三.软件测试的测试对象
1.软件需求
2.软件概要设计
3.软件详细设计
4.软件运行环境
5.可运行程序
6.软件源代码
软件测试 ≠ 程序测试
四.五大要素和两个目标
质量:核心
人员:决定资源、技术、流程的配置使用
技术:软件测试技术、方法、使用的工具,技术是手段
流程:规范性
资源:硬件设备、网络环境等
目标:1.提高测试覆盖率(保证软件质量)
2.提高测试效率(更好的完成测试)
五.软件测试所遵循的原则
1.测试找到缺陷,但不能证明系统不存在缺陷
2.穷尽测试是不可能的,应设定及时终止的条件
3.测试应该尽早进行
4.缺陷具备群集特性
5.测试的杀虫剂悖论:测试用例、测试方法应不定期的评审、修改
6.测试的二八原则:测试时间和资源有限,80%的时间和资源用在20%的重点模块
7.测试活动依赖于测试背景(不同的测试背景(电商、金融)针对的测试活动应是不同的)