Y122092第2讲-软件测试基础-2课时_第1页
Y122092第2讲-软件测试基础-2课时_第2页
Y122092第2讲-软件测试基础-2课时_第3页
Y122092第2讲-软件测试基础-2课时_第4页
Y122092第2讲-软件测试基础-2课时_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件测试技术第2讲 软件测试基础本课教学目标正确理解软件测试的定义正确理解软件测试的目的和原则知道软件测试的各种分类方法了解软件测试职业和素质的要求课程内容2.1 软件测试2.2 软件测试分类2.3 软件测试的周期性2.4 软件测试停止准则2.5 软件测试职业2.1.1 软件测试定义定义1:软件测试是在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估 。即软件测试是为了发现错误而执行程序的过程。定义2:软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计的一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤。软件测试定义(续)测试:所谓测试的含义,首

2、先是一项活动,在这项活动中某个系统或组成的部分将在特定的条件下运行,结果将被观察和记录,并对系统或组成部分进行评价。测试活动有两种结果:找出缺陷和故障,或显示软件执行正确。测试是一个或多个测试用例的集合。测试用例:所谓测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果;测试用例是执行测试的最小实体。测试步骤:测试步骤详细规定了如何设置、执行、评估特定的测试用例。2.1.2 软件测试的基本问题软件生命周期:一个软件生命周期包括制定计划、需求分析定义、软件设计、程序编码、软件测试、软件运行、软件维护、软件停用等8个阶段。 软件测试的对象: 软件测试不等于程序测试。 软件测试贯穿于软件

3、定义和开发的整个过程。 软件开发过程中所产生的需求规格说明、概要设计规格说明、详细设计规格说明以及源程序都是软件测试的对象。软件测试的基本问题(续)软件测试在软件生命周期中横跨两个阶段:第一个阶段:单元测试与集成测试阶段,即在每个模块编写出以后所做的必要测试。第二个阶段:综合测试阶段,即在完成单元测试后进行的测试,如集成测试、系统测试、验收测试。软件测试涉及的关键问题包括四个方面: (1)测试由谁来执行。 (2)测试什么。 (3)什么时候进行测试。 (4)怎样进行测试。软件还有什么缺陷?软件应该没什么问题了吧!2.1.3 软件测试的目的软件测试的目的(续)根据Grenford.J.Myers的

4、观点,软件测试的目的:(1)测试程序的执行过程,目的在于发现缺陷;(2)一个好的测试用例在于能发现至今尚未发现的缺陷;(3)一个成功的测试是发现了至今未发现的多个缺陷的测试;测试的目的:不仅仅是为了发现软件缺陷与错误,而且也是对软件质量进行度量与评估,以提高软件质量。软件测试的目的(续)注:(1)测试是想以最少的时间和人力,系统地找出软件中潜在的各种缺陷,通过修正缺陷提高软件质量,回避软件发布后由于潜在缺陷造成的隐患所带来的商业风险;(2)测试的附带收获是,它能够证明软件的功能和性能是否与需求说明书相符合;(3)实施测试收集到的测试结果数据为可靠性分析提供了依据; (4)测试不能表明软件中不存

5、在错误,它只能说明软件中存在错误。2.1.4 软件测试的原则(1)应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭;(2)测试用例应由测试输入数据和与之对应的预期输出结果这两部分组成;(3)程序员应当避免检查自己的程序;(4)在设计测试用例时,应当包括合理的输入条件和不合理的输入条件;软件测试的原则(续)(5)充分注意测试中的集群现象;(6)严格执行测试计划,排除测试的随意性;(7)应当对每一个测试结果做全面检查;(8)妥善保存测试计划,测试用例,出错和最终分析报告,为维护提供方便。问题与讨论谈谈你对软件测试的理解?2.2 软件测试分类按照开发阶段划分:确认测试单元测试集成测试系统测

6、试验收测试确认测试:通过检验和提供客观证据,正式软件是否满足特定预期用途的需求。确认测试是检验与正式软件是否满足软件需求说明书规定的要求。系统测试:是为了验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。系统是在正式或模拟系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并满足用户需求。图 完整的开发流程项目规划项目需求分析项目概要分析项目详细分析代码编写测试代码编写测试需求分析系统测试计划集成测试计划单元测试计划产品发布系统测试集成测试单元测试完整的软件开发流程软件测试分类(续)按照测试实施组织划分:用户测试第三方

7、测试开发方测试软件测试分类(续)按照测试技术划分:黑盒测试灰盒测试白盒测试若测试规划是基于产品的功能,目的是检查程序各个功能是否能够实现,并检查其中的功能错误,则这种测试方法称为黑盒测试(Black-box Testing)方法。 黑盒测试又称为功能测试、数据驱动测试和基于规格说明的测试。它是一种从用户观点出发的测试,一般被用来确认软件功能的正确性和可操作性。若测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(White-box Testing)方法。 白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析

8、程序的内部结构。 黑盒测试和白盒测试(续)白盒测试黑盒测试两种测试方法从完全不同的角度出发,反映了测试思路的两方面情况,适用于不同的测试阶段。黑盒测试和白盒测试(续)1、黑盒测试黑盒测试的基本观点是:任何程序都可以看作是从输入定义域映射到输出值域的函数过程,被测程序被认为是一个打不开的黑盒子,黑盒中的内容(实现过程)完全不知道,只明确要做到什么。黑盒测试主要根据规格说明书设计测试用例,并不涉及程序内部构造和内部特性,只依靠被测程序输入和输出之间的关系或程序的功能设计测试用例。黑盒测试的特点:(1)黑盒测试与软件的具体实现过程无关,在软件实现的过程发生变化时,测试用例仍然可以使用。(2)黑盒测试

9、用例的设计可以和软件实现同时进行,这样能够压缩总的开发时间。黑盒测试和白盒测试(续)输入输出黑盒测试是在程序接口进行测试,它只是检查程序功能是否按照规格说明书的规定正常使用。也被称为用户测试。黑盒测试和白盒测试(续)黑盒测试和白盒测试(续)黑盒测试主要是为了发现以下几类错误:是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?黑盒测试的具体技术方法 : 等价类划分法 边界值分析法 因果图法 决策表法黑盒测试和白盒测试(续)2、白盒测试白盒测试将被测程序看作一个打开的盒子,测试者能够

10、看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。通常的程序结构覆盖有: 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 组合覆盖 路径覆盖黑盒测试和白盒测试(续)白盒测试需要完全了解程序结构和处理过程,它按照程序内部逻辑测试程序,检验程序中每条通路是否按预定要求正确工作。也被称为程序员测试。应用程序黑盒测试和白盒测试(续) ? X=2 y=2x Y=4 X=2Y=4未知等式与已知等式黑盒白盒3、黑盒测试法和白盒测试法的比较黑盒测试和白盒测试(续)黑盒测试: 以用

11、户的观点,从输入数据与输出数据的对应关系,即根据程序外部特性进行测试,而不考虑内部结构及工作情况。 黑盒测试技术注重于软件的信息域(范围),通过划分程序的输入和输出域来确定测试用例。 若外部特性本身存在问题或规格说明的规定有误,则应用黑盒测试方法是不能发现问题的。 白盒测试: 只根据程序的内部结构进行测试。 测试用例的设计要保证测试时程序的所有语句至少执行一次,而且要检查所有的逻辑条件。 如果程序的结构本身有问题,比如说程序逻辑有错误或者有遗漏,那也是无法发现的。黑盒测试和白盒测试(续)项目黑盒测试法白盒测试法规划方面功能的测试结构的测试优点方面 能确保从用户的角度出发进行测试 能对程序内部的

12、特定部位进行覆盖测试缺点方面无法测试程序内部特定部位;当规格说明有误,则不能发现问题无法检查程序的外部特性; 无法对未实现规格说明的程序内部欠缺部分进行测试应用范围等价类划分法边界分析法因果图决策表测试错误推测法 语句覆盖,判定覆盖, 条件覆盖,判定/条件覆盖, 路径覆盖,循环覆盖, 模块接口测试2.3 软件测试周期性软件测试的周期性是“测试-改错-再测试-再改错”这样一个循环过程,如下图所示。测试周期开发/ 改错改错测试周期改错串行方式开发者: .开发者:并行方式测试者:开发/ 改错开发/ 改错最终回归测试回归测试1测试周期1功能冻结代码冻结测试周期2问题与讨论软件测试停止的标准?2.4 测

13、试停止的依据第一类标准:测试超过了预定时间,则停止测试。第二类标准:执行了所有的测试用例,但并没有发现故障,则停止测试。 第三类标准:使用特定的测试方案作为判断测试停止的基础。 第四类标准:正面指出停止测试的具体要求,即停止测试的标准可定义为查出某一预订数目的故障。 第五类标准:根据单位时间内查出故障的数量决定是否停止测试。 2.5 软件测试职业2.5.1 对软件测试的误解 2.5.2 软件测试职业和职位2.5.3 软件测试职业素质 2.5.4 软件测试的人才现状 2.5.1 对软件测试的误解如果发布的软件有质量问题,那是软件测试人员的错。软件测试技术要求不高,至少比编程容易多了。软件测试随便

14、找一个能力差的人就能做。有时间就多测试一些,来不及就少测试一些。软件测试是测试人员的事,与开发人员无关。设计实现测试,软件测试是开发后期的一个阶段。2.5.2 软件测试职业和职位软件测试员 软件测试工程师/程序分析员 高级软件测试工程师/程序分析员软件测试组负责人 软件测试/编程负责人 软件测试/质量保证/项目经理 2.5.3 软件测试职业素质软件测试员的目标: 发现潜在的软件缺陷软件测试员应具备的素质: 具有探索精神 具有创造性 坚持不懈精神 故障排除专家 判断准确 追求完美 沟通能力2.5.3 软件测试职业素质软件测试员应具备的知识: 计算机基础知识 操作系统基础知识 数据库基础知识 中间

15、件基础知识 程序设计语言 软件工程知识 软件测试知识2.5.4 软件测试人才的现状1、软件测试人员的合理比例在软件产业发达的国家: 软件测试在人员配备和资金投入方面占据相当的比重。微软为打造Windows2000,1700多个开发人员,以及3200个测试人员,开发和测试人员之比约为三比五。HP公司的测试人员和开发人员的比例为一比一,这是很多先进软件企业通常的人员配比。在国内:企业往往忽视软件测试,很多企业都没有软件测试部门,甚至不设置软件测试的岗位,造成产品质量得不到保证。测试人员大都不到开发人员的5% ,随着产业和企业的发展,企业必然需要大量的测试人员。软件测试人才的现状(续)2、软件测试人才紧缺软件测试人才需求快速增长,体现在:(1)中国软件产业正在快速增长,需要大量软件相关人才;(2)软件企业的发展要求测试人才达到一个合适的比例。近一两年软件企业开始认识到软件测试对于提高软件质量的重要性,开始重视软件测试,但由于历史的原因,找不到合适的软件测试人员。软件测试人才的现状(续)3、三个招聘案慧谷-博为峰软件测试工作室曾经接受企业委托,招聘二十名软件测试工程师,结果收到的简历不到十份,合格的只有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论