软件理论基础(目的、原则、对象、风险)
一:软件测试经典定义:
是在规定的条件下对软件进行操作,以发现错误,对软件质量进行评估
二:测试等于调试吗?
测试可以发现由于软件缺陷引起的失效,而调试是一种开发活动,用来识别引起缺陷的原因,修改代码以及验证是否正确的修改了软件的缺陷
三:不同时期关于测试的定义
1.确信程序作了它应该做的事
2.为找出错误而运行程序或系统的过程
3.查出规格说明书中错误,以及与规格说明不符的地方
4.一切以评价程序或系统的属性、能力为目的的活动
5.对软件质量的度量
6.评价程序或系统的过程
7.验证系统满足需求,或确定实际结果与预期结果之间的区别
8.确认程序正确实现了所要求的功能
9.测试是与软件开发或维护工作并行进行的一个过程
10.是在用户需求和开发技术之间找一个平衡点
四:软件测试的目的
1)验证软件是否满足软件开发合同或项目开发计划、系统设计文档、软件需求规格说明、软件设计说明和软件产品说明等规定的软件质量要求;
2)通过测试,发现软件缺陷
3)为软件产品的质量测量和评价提供依据
五:软件测试原则
基于测试是为了寻找软件的错误与缺陷,评估与提高软件质量,因此我们提出一组测试原则
1)所有的软件测试都应追溯到用户需求(业务逻辑需求、输入输入数据一致性需求、界面性需求、性能需求、安全性需求)
2)应当把“尽早的和不断地进行软件测试”作为软件测绘师者的座右铭(尽早、尽快、持续,先找大问题,不要过于纠结小问题)
3)完全测试是不可能的(初涉软件测试人员希望拿到软件后就进行完全的测试,找出所有的软件错误,并使软件趋于完美。想法非常好,但是实现它是不可能的,哪怕是最简单的程序,主要原因有4个(测试数据输入量太大、输出结果太多、软件的操作步骤太多、软件说明书是主观的。可以说从旁观者来看是缺陷))
4)测试无法显示软件潜在的缺陷
5)充分注意测试中的群集现象(缺陷扎堆,总出现问题的模块,应重点关注,重点测试,多次回归)
6)程序员应避免检查自己的程序(每个岗位职责分开;易陷入程序,而非业务逻辑;自己编写的,很难客观评价;思维定势)
7)尽量避免测试的随意性
六:杀虫剂怪事
为了克服杀虫剂怪事,软件测试员必须不断编写不同的、新的测试程序,对程序的不同部分进行测试,易找出更多软件缺陷。
七:软件测试的对象
根据软件的定义,软件包括程序、数据、文档,所以软件测试并不仅仅是程序测试。软件测试贯穿于整个软件生命周期中
由于在整个软件生命周期中,各阶段有不同的测试对象,形成了不同开发阶段的不同类型的测试。需求分析、概要设计、详细设计以及程序编码等各阶段产生的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应作为“软件测试”的对象
八:软件测试风险
软件测试中的软件风险分析是根据预测软件将出现的风险,制定软件测试计划并排列优先等级,风险分析是对软件中潜在的问题进行识别、估计和评价的过程
风险也包括进度风险、质量风险、人员风险、变更风险、成本风险等
九:软件测试工程师的职责
1)编写测试计划
2)编写测试用例
3)配置测试环境
4)执行软件测试
5)报告软件缺陷
6)更新缺陷报告内容
7)验证修正的缺陷
8)报告测试状态
9)完成测试相关的其它任务