软件测试 Ron Patton part1 软件测试综述
Bug from
20世纪40年代,Grace Hopper中尉在“事件记录本”中把引起“MARK II”计算机死机的飞蛾标注为“第一个发现虫子(Bug)的实例”
1983年IEEE对软件测试的准确定义:软件测试是使用人工或自动手段来进行运行或测定某个系统的过程,检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。
软件失败的术语:缺点(defect)、偏差(variance)、故障(fault)、失败(failure)、问题(problem)、矛盾(inconsistency)、错误(error)、特殊(feature)、事件(incident)、缺陷(bug)、异常(anomaly)
满足之一称为发生了软件缺陷(software bug):
1、软件未实现产品说明书要求的功能
2、软件出现了软件说明书指明不应该出现的错误
3、软件实现了产品说明书未提到的功能
4、软件未实现产品说明书虽未明确提及但应该实现的目标
5、软件难以理解、不易使用、运行缓慢或(从测试员角度看)最终用户会认为不好
why有软件缺陷
最大原因:产品说明书(没写、写不全、经常改、开发人员没有很好沟通)
第二来源:设计(随意、易变、沟通不足)
软件缺陷的修复费用随着时间推移呈指数型增长
软件测试员的目标是尽可能早地找出软件缺陷,并确保其得以修复。
测试文档:
测试计划(test plan):描述用于验证软件是否符合产品说明书和客户需求的整体方案。包括质量目标、资源需求、进度表、任务分配、方法等。
测试用例(test case):列举测试的项目,描述验证软件的详细步骤。
缺陷报告(bug report):描述执行测试用例找出的问题。
测试工具和自动测试(test tools and automation):
度量、统计和总结(metrics,statistics,summaries):测试过程的汇总,采用图形、表格和报告等形式。
软件开发生命周期:软件从最初构思到公开发行的过程。
软件开发过程4中常用模式:
大爆炸模式
简单粗暴——开发码代码
边写边改模式
适合快速制作用完就扔的小项目
瀑布模式
构思-分析-设计-开发-测试-产品,每个步骤结束时都要审查是否进入下一步,没准备好就继续准备而不会直接进入下一步
非常强调产品的定义
各步骤分立,无交叉
无法回溯,一旦进入某一步,就完成该步骤任务,然后才能向下继续。
缺点:测试仅在最后进行,问题可能出现在早期却直到最后才发现
螺旋模式
1986年引入
总体思想:一开始不必详细定义所有细节,从小开始,定义重要功能,实现这些功能,接受用户反馈,再定义新功能。重复上述过程。
每次循环的6个步骤:
1、确定目标、可选方案和限制条件
2、明确并化解风险
3、评估可选方案
4、当前阶段的开发和测试
5、计划下一阶段
6、确定进入下一阶段的方法
螺旋模式包含瀑布模式(分析、设计、开发、测试),边写边改模式(螺旋的每一次),大爆炸模式(从外界观察),优点:发现问题早,成本低
敏捷开发(Agile Software Development)=快速原型=极限编程=进化开发
目的:通过过程和工具理解个人交流的作用,通过全面的文档理解运行的软件,通过合同和谈判得到客户的协作,在计划的执行中做出对变更的响应,也就是说,在一方面有价值的时候,更应该评价它在另一方面的价值
测试的原则:
1、完全测试程序是不可能的
原因:输入量太大
输出结果太多
软件执行路径太多
软件说明书是主观的。从旁观者来看是缺陷。
2、软件测试是有风险的行为
不能做全部的测试,不完全测试又会漏掉软件缺陷
需要找到最优的测试量,使测试不多不少
3、测试无法显示潜伏的软件缺陷
任何情况下都不能保证软件缺陷不存在了,只能继续测试。
4、找到的软件缺陷越多,说明软件缺陷越多(有点绕)
5、软件测试越多,其对测试的免疫力越强(杀虫剂怪事)
6、并非所有软件缺陷都要修复
7、什么时候才叫缺陷难以说清
8、产品说明书没有最终版本
软件测试学习笔记1
原文:http://www.cnblogs.com/AndKuang17/p/6653001.html