第一部分 软件测试综述
第一章 软件测试背景
1.1软件缺陷(software bug)
软件失败的术语
- 故障(fault)失败(failure) 缺点(defect) ------严重、危险
- 异常(anomaly) 事件(incident) 偏差(variance) ------未按预料运行
- 问题(problem) 错误(error) 缺陷(bug) ------常用
- 矛盾(inconsistent) 特殊(feature)
满足下列5个条件之一才称发生了一个软件缺陷
- 软件未实现产品说明书要求的功能
- 软件出现了产品说明书指明不应该出现的错误
- 软件实现了产品说明书未提到的功能
- 产品未实现产品说明书虽未明确提及但应该实现的目标
- 软件难以理解、不易使用、运行缓慢或者——从测试员的角度看——最终用户会认为不好
并非所有测试发现的缺陷都要修改
1.2为什么会出现软件缺陷
导致软件缺陷的最大原因是产品说明书
(理解需求、善于沟通、勤于沟通)
1.3软件测试员的目的
软件测试员的目标是尽可能早地找出软件缺陷,并确保其得以修复
注意:“修复”缺陷并非指一定要改正软件。不要在无法达到的完美上纠结和兜圈子。
第二章 软件开发的过程
2.1产品的组成部分
2.1.1软件产品需要多少投入
- 客户需求
- 产品说明书
- 进度表
- 软件设计文档(程序员)
- 测试文档(测试员)
测试提交清单
测试计划
测试用例
缺陷报告
测试工具和自动测试
度量、统计和总结
2.1.2软件产品由哪些部分组成
-帮助文件 -用户手册
-样本和示例 -标签和不干胶
-产品支持信息 -图标和标志
-错误信息 -广告和宣传材料
-安装 -说明文件
别忘了测试错误提示信息
2.3软件开发生命周期模式
- 大爆炸式
- 边写边改模式
- 瀑布模式(无法回溯)(无法紧跟市场变化,缺乏灵活性)(测试对象非常明确)
- 螺旋模式(通过参与最初的设计阶段,可以尽早的影响到产品)
第三章 软件测试的实质
(了解软件测试的作用、影响和责任)
3.1测试的原则
3.1.1完全测试程序是不可能的
不完全测试:
如果觉得某些测试条件是重复的,无必要的,或者为了节省空间,而将其剔除,那么采用的就是不完全测试
主要原因:
- 输入量太大
- 输出结果太多
- 软件执行路径太多
- 软件说明书是主观的
3.1.2软件测试是有风险的行为
最优测试量
软件测试员要学会的一个关键思想是,如何把数量巨大的可能测试减少到可以控制的范围,以及如何针对风险做出明智的选择,那些测试重要,那些不重要
3.1.3测试无法显示的潜伏的软件缺陷
可以进行测试,发现并报告软件软件缺陷,但是任何情况下都不能保证软件缺陷没有了。唯一的方法继续测试
3.1.4找到的软件缺陷越多,就说明软件缺陷越多
往往发现一个缺陷后,就会发现附近可能也存在一些缺陷
3.1.5杀虫剂怪事
不要总是使用同一个测试方法或测试软件进行测试,因为软件缺陷可能对这种测试方式免疫了
3.1.6并非所有的软件缺陷都要修复
进行良好的判断,搞清楚在什么情况下不能追求完美
- 没有足够的时间
- 不算真正的软件缺陷
- 修复风险大
- 不值得修复(需要谨慎判断是否值得修复)
3.1.7什么时候才叫缺陷难以说清
3.1.8产品说明书从没有最终版
3.1.9软件测试员在产品小组中不受欢迎
3.1.10软件测试是一项讲究条例的技术专业
3.2软件测试的术语和介绍
3.2.1精确和准确
3.2.2 确认和验证
确认是保证软件符合产品说明书的过程;验证是保证软件满足用户要求的过程。
3.2.3 质量和可靠性
可靠性仅仅是质量的一个方面。
软件使用者心目中的质量可能包括:软件功能的多少、在自己的旧PC上运行的能力、软件公司的服务电话好不好打以及软件的价格。产品的可靠性或者产品多长时间崩溃的问题也许重要,但常常不被考虑到。