软件测试概要
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章:软件测试概述
①软件缺陷定义:
(1)软件未达到产品说明书中已经标明的功能;
(2)软件出现了产品说明书中指明不会出现的错误;
(3)软件未达到产品说明书中虽未指出但应当达到的目标;
(4)软件功能超出了产品说明书中指明的范围;
(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。
②软件缺陷的特征:
•“看不到”
——软件的特殊性决定了缺陷不易看到
•“看到但是抓不到”
——发现了缺陷,但不易找到问题发生的原因所在
③软件缺陷产生原因:
(1)软件产品说明书(需求)——56%(不专业—专业~~信息传递)
(2)设计——27%(设计不规范)
(3)编写代码——7%
(4)其他——10%(软、硬件设备之间的配备问题)
④软件测试发展历程:
早期―→测试
1957年―→为了确信自己的产品
20世纪70年代―→Glenford Myers 《软件测试艺术》——“测试是为发现错误而执
行一个程序或系统的过程”20世纪80年代早期―→软件质量、Bill Hetzel 《软件测试完全指南》——“测试是以评
价一个程序或者系统属性为目标的任
何一种活动。测试是对软件质量的度
量”
20世纪90年代―→测试工具盛行
2002年―→Rick和Stefan《系统的软件测试》——“测试是为了度量和提高
被测软件的质量,对测试件进行工程设
计、实施和维护的整个生命周期过程”⑤今天的软件测试面临的挑战:
•软件在国防现代化、社会信息化和国民经济信息化中的作用越来越重要,由此产生的测试任务越来越繁重
•软件规模越来越大,功能越来越复杂,如何进行充分而有效的测试成为难题
•面向对象的开发技术越来越普及,但是面向对象的测试技术却刚刚起步
•对于分布式系统整体性能还不能进行很好的测试
•对于实时系统来说,缺乏有效的测试手段
•随着安全问题的日益突出,信息系统的安全性如何进行有效的测试与评估,成为世界性难题
⑥软件开发与软件测试的关系:
•测试与开发各阶段的关系
项目规划阶段,需求分析阶段,详细设计和概要设计阶段,编码阶段,测试阶段(软件开发生命周期)•测试与开发的并行性
⑦软件测试的发展趋势:
•测试工作将进一步前移。
•软件架构师、开发工程师、QA(质量保证)人员、测试工程师将进行更好的融合。
•测试职业将得到充分的尊重。
•设置独立的软件测试部门将成为越来越多的软件公司的共识。
•测试外包服务将快速增长。
⑧软件质量保证(SQA):
•测试是手段,质量保证是目的
测试人员的目标是尽可能早的找出软件缺陷,并确保缺陷得以修复;
质量保证人员的主要职责是创建和执行改进软件开发过程并防止软件缺陷
发生的标准和方法。
•质量管理体系
•ISO9000与CMM
能力成熟度模型(Capability Maturity Model)
CMMI 的全称为:Capability Maturity Model Integration,即能力成熟度模型集成。
CMMI是CMM模型的最新版本。
⑨软件测试从业人员职业素质:
•具有探索精神
•具有创造性
•坚持不懈的精神
•故障排除专家
•判断准确
•追求完美
•沟通能力
•良好的学习能力
•宽广的知识面
第二章:软件测试基础
①软件测试定义:
•定义1:软件测试是在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估。
–即软件测试是为了发现错误而执行程序的过程。
•定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。
•测试:所谓测试的含义,首先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。
•测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。
•测试步骤:测试步骤详细规定了如何设置、执行、评估特定的测试用例。
②软件测试的基本问题:
•软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。
•软件测试的对象:
——软件测试不等于程序测试。―→程序测试+文档测试
——软件测试贯串于软件定义和开发的整个过程。
——
以及源程序都是软件测试的对象。
•软件测试在软件生命周期中
➢第一个阶段:单元测试与集成测试阶段,即在每个模块编写出以后所做的必要测试。―→开发人员(白盒测试)
➢第二个阶段:综合测试阶段,即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试。―→测试人员(黑盒测试)
•软件测试涉及的关键问题包括四个方面:
WWWH
(1)测试由谁来执行。―→Who (2)测试什么。―→What
(3)什么时候进行测试。―→When (4)怎样进行测试。―→How
③软件测试的目的:
•根据Grenford.J.Myers的观点,软件测试的目的:
(1)测试程序的执行过程,目的在于发现缺陷;
(2)一个好的测试用例在于能发现至今尚未发现的缺陷;
(3)一个成功的测试是发现了至今未发现的多个缺陷的测试;
测试的目的:不仅仅是为了发现软件缺陷与错误,而且也是对软件质量进行度量与评估,以提高软件质量。
•注:
(1)测试是想以最少的时间和人力,系统地找出软件中潜在的各种缺陷,通过修正缺陷提高软件质量,回避软件发布后由于潜在缺陷造成的隐患所带来的商业风险;
(2)测试的附带收获是,它能够证明软件的功能和性能是否与需求说明书相符合;
(3)实施测试收集到的测试结果数据为可靠性分析提供了依据;
(4)测试不能表明软件中不存在错误,它只能说明软件中存在错误。
④软件测试的原则:
(1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭;
(2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成;
(3)程序员应当避免检查自己的程序;
(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件;
(5)充分注意测试中的集群现象;
(6)严格执行测试计划,排除测试的随意性;
(7)应当对每一个测试结果做全面检查;
(8)妥善保存测试计划,测试用例,出错和最终分析报告,为维护提供方便。
⑤软件测试类型: 黑盒、白盒、功能、性能、安全性、稳定性、应用性
⑥软件测试分类:
•⑴按照开发阶段划分:
单元测试―→集成测试―→系统测试―→确认测试―→验收测试