软 件 工 程(软件测试)_第1页
软 件 工 程(软件测试)_第2页
软 件 工 程(软件测试)_第3页
软 件 工 程(软件测试)_第4页
软 件 工 程(软件测试)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、软软 件件 工工 程程第第10讲:软件测试讲:软件测试主讲人:阳王东Email:主要内容 软件测试概述软件测试概念测试原则软件测试过程 黑盒测试 白盒测试法软件测试概念 软件测试是软件质量 “层层把关”的一个重要环节,是软件产品在“发布”之前,对需求分析、设计和实现(编码)等开发工作的最后复审。 软件测试的基本目标是采用行之有效的测试方案,找出迄今未被发现的、尽可能多的错误,并加以纠正。 软件分析与设计:软件编码:软件测试=4:2:4 成功的软件测试只能证明软件的错误,而不能证明软件是正确的。软件测试任务 测试任务通过采用一定的测试策略,找出软件中的错误; 调试任务,或称为纠错任务如果测试到错

2、误,定位软件中的故障源,加以纠正。 被测对象一定有错(该假定是合理的)。 测试要能发现尽可能多的错误,争取测试效益最大化。 测试仅能证明错误的存在,而不能证明错误的不存在。软件测试过程 软件测试步骤制定软件测试大纲编写测试用例。测试用例为了进行有效的测试而设计的输入数据和预期的输出结果数据。执行测试用例测试总结 测试是一个过程测试不仅是事后的结果检查测试与开发并行测试驱动软件测试过程(续)需求分析概要设计详细设计编码编写单元测试用例编写集成测试用例编写确定测试用例需求分析报告概要设计说明书详细设计说明书执行单元测试执行集成测试执行确定测试系统测试验收测试硬件环境网络环境项目策划测试计划项目开始

3、项目结束软件测试原则 应尽早和不断地进行软件“测试”,即将这种“测试”贯穿于软件开发的各个阶段,坚持各个阶段的技术评审,以便尽早地发现和预防错误。 测试用例中,不仅要选择合理的输入数据,还要选择不合理的输入数据。 在开发各阶段应事先分别制定出相应的测试计划,在测试开始后应严格执行,防止随意性。 对发现错误较多的程序模块,应进行重点测试。Pareto指出,测试发现错误的80%集中在20%的模块中。发现错误较多的模块质量较差,需重点测试,并要测试是否引入了新的错误。 避免程序员测试自己的程序。 测试用例的设计应有第三方参与。对于大型软件的测试,一般的做法是:设计者与测试者共同完成单元测试任务,而综

4、合测试由专门的测试机构负责,有时其中也可以有设计者参加 用穷举测试是不现实的,一般通过设计测试用例,充分覆盖所有条件或所有语句即可。 长期妥善保存测试计划、测试用例、出错统计和有关的分析报告。黑盒测试 等价类划分法 边界值分析法黑盒测试方法 黑盒测试是从输入集合中选择出一个极有可能发现错误的输入子集,根据功能描述分析,检查其相应的输出是否是预期的结果。主要是测试软件主要是测试软件是否满足功能需求是否满足功能需求 黑盒测试由于注重于功能和数据信息域的测试,它既适用于由功能模块组成的系统,也适用于由对象构成的系统。一般能发现下列错误:功能错误或有遗漏性能错误数据结构或数据库访问错误接口错误界面有错

5、初始化或终止错误等一些类型的错误。设计测试用例原则 黑盒测试方法带有经验性质的设计测试用例原则:对有输入的所有功能,既要用有效的输入来测试,也要用无效的输入来测试。经过菜单调用的所有功能都应该被测试,包括通过同一个菜单调用的组合功能也要测试。设计的测试用例数量,能够达到合理测试所需的“最少”(减少测试成本)。设计的测试用例,不仅能告知有没有错误,而且能告知错误可能是某些类型(提高测试效率)。等价类划分 等价类划分的思想是将输入数据按有效的(合理的)和无效的(不合理的)划分成若干个等价类,认为测试等价类中的一个代表值的结果就等于对该类其他值的测试。利用等价类划分的测试步骤如下: 划分等价类。从程

6、序的功能说明中找出每个输入划分等价类。从程序的功能说明中找出每个输入条件,然后将其划分成若干个有效和无效的等价条件,然后将其划分成若干个有效和无效的等价类。类。设计测试用例。设计测试用例。设计一个有效等价类的测试用例,使其尽可能多地覆设计一个有效等价类的测试用例,使其尽可能多地覆盖尚未被覆盖过的有效等价类。如此重复,直到所有盖尚未被覆盖过的有效等价类。如此重复,直到所有有效等价类都被覆盖为止。有效等价类都被覆盖为止。设计一个测试用例,仅覆盖一个无效等价类,如此重设计一个测试用例,仅覆盖一个无效等价类,如此重复,直到所有无效等价类都被覆盖为止。复,直到所有无效等价类都被覆盖为止。等价类的划分原则

7、 如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内)和两个无效的等价类(输入值小于最小值或大于最大值)。 如果规定了数据输入的个数,则可划分出一个有效的等价类(输入值的个数符合规定)和两个无效的等价类(输入值的个数少于或多于规定个数)。 如果规定了输入数据的一组值,而且程序对不同的输入值进行不同的处理,则每个允许的输入值是一个有效的等价类,此外还有一个无效的等价类(规定的这一组值以外的值)。 如果规定了输入数据必须遵循的规则,则可划分出一个有效的等价类(符合规则)和若干个无效的等价类(从不同的角度违反规则)。 如果输入条件规定了一个集合,则可划分出一个有效的等价类(此集合)

8、和一个无效的等价类(此集合的补集)。测试样例 设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月2008年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的“日期检查功能”。等价类划分的结果输入等价类输入等价类有效等价类有效等价类无效等价类无效等价类日期的类型日期的类型及长度及长度6位数字字符位数字字符 有非数字字符有非数字字符少于少于6位数字字符位数字字符多于多于6位数字字符位数字字符年份范围年份范围在在19902003 之间之间小于小于1990大于大于2003月份范围月份范围在在0112之之间间等于等于

9、00大于大于12等价类的测试用例 设计测试用例,以便覆盖所有的有效等价类列出了列出了3个有效等价类,编号分别为个有效等价类,编号分别为、,设计的测试用例,设计的测试用例如下:如下:测试数据测试数据 期望结果期望结果 覆盖的有效等价类覆盖的有效等价类200211 输入有效输入有效 、 为每一个无效等价类设计一个测试用例,设计结果如下:测试数据测试数据 期望结果期望结果 覆盖的无效等价类覆盖的无效等价类95June 无效输入无效输入 20036 无效输入无效输入 2001006 无效输入无效输入 198912 无效输入无效输入 200401 无效输入无效输入 200100 无效输入无效输入 200

10、113 无效输入无效输入 边界值方法 边界值如果输入条件/输出条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围边界的值作为测试输入数据。 边界数目如果输入条件/输出条件规定了值的个数,则用最大个数、最小个数和比最大个数多1个、比最小个数少1个的数作为测试数据。 集合边界如果程序的规格说明给出的输入域或输出域是有序集合 (如有序表、顺序文件等),则应选取集合中的第一个和 最后一个元素作为测试用例。 数据结构边界如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。 等价类的边界边值分析法举例 按照输入值范围的边界。 例如:输入值的范围是-1.0

11、至1.0,则可选择用例 1.0、1.0、-1.001、1.001。 按照输入/输出值个数的边界。 例如:输入文件可有1-255个记录,则 设计用例:文件的记录数为 0个、1个、255个、256个。 输出值域的边界。 例如:检索文献摘要,最多4篇。设计用例:可检索0篇、1篇、4篇,和5篇(错误)。 输入/输出有序集(如顺序文件、线性表)的边界。应选择第一个元素和最后一个元素。程序的边界 NextDate函数的边界值分析测试用例在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1mouth12和1day31,并设定变量year的取值范围为1912year2050边界值用例测

12、试用例测试用例mouth dayyear预期输出预期输出Test 1Test2Test3Test4Test5Test6Test766666661515151515151519111912191319752049205020511911.6.161912.6.161913.6.161975.6.162049.6.162050.6.162051.6.16Test8Test9Test10Test11Test12Test13666666-112303132200120012001200120012001day超出超出1312001.6.22001.6.32001.7.1输入日期超界输入日期超界day超

13、出超出131Test14Test15Test16Test17Test18Test19-112111213151515151515200120012001200120012001Mouth超出超出1122001.1.162001.2.162001.11.162001.12.16Mouth超出超出112白盒测试方法白盒测试方法 语句覆盖 判定覆盖 条件覆盖 判定/条件覆盖 组合覆盖 路径覆盖白盒测试方法 白盒测试也称结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。 白盒测试法检查程序内部逻辑结构,对所有逻辑路径进行测试,是一

14、种穷举路径的测试方法。但即使每条路径都测试过了,仍然可能存在错误。因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序。穷举路径测试不可能查出程序因为遗漏路径而出错。穷举路径测试发现不了一些与数据相关的错误。白盒测试原则和方法 采用白盒测试方法必须遵循以下几条原则,才能达到测试的目的:保证一个模块中的所有独立路径至少被测试一次。所有逻辑值均需测试真 (true) 和假 (false) 两种情况。检查程序的内部数据结构,保证其结构的有效性。在上下边界及可操作范围内运行所有循环。 白盒测试主要是检查程序的内部结构、逻辑、循环和路径。常用测试用例设计方法有:逻辑覆盖法(

15、逻辑驱动测试)基本路径测试方法白盒测试 覆盖测试语句覆盖判定覆盖条件覆盖判定/条件覆盖组合覆盖路径覆盖 循环测试 路径测试组合覆盖判断/条件覆盖判断覆盖条件覆盖语句覆盖逻辑覆盖法void DoWork (int x,int y,int z) int k=0,j=0; if ( (x3)&(z5) ) j=x*y+10; /语句块2 j=j%3; /语句块3X3 & z5执行语句块执行语句块3FFTTabdce语句覆盖 使得程序中的每个可执行语句至少执行一次X3 & z5执行语句块执行语句块3FFTTabdcex=4y=5z=5判定覆盖 使得程序中的每个判定至少都获得一次

16、“真”值和“假”值, 也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次X3 & z5执行语句块执行语句块3FFTTabdcex=4y=5z=5x=2y=5z=5abd-TTace-FF条件覆盖 测试用例 执行路径 覆盖条件 覆盖分支 x=2、y=6、z=5 acd-T1、T2、-T3、T4 cd x=4、y=5、 z=15 acd T1、-T2、T3、-T4 cdX3 & z5执行语句块执行语句块3FFTTabdce使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次。T1:X3T2:Z5判定/条件覆盖 使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次 测试用例 执行路径 覆盖条件 覆盖分支 x=4、y=6、z=5 abdT1、T2、T3、T4 bd x=2、y=5、 z=15 ace -T1、-T2、 -T3、-T4 ceX3 & z5执行语句块执行语句块3FFTTabdce组合测试组合覆盖的目的是要使设计的测试用例能覆盖每一个判定的所有可能的条件取值组合1、x3, z3, z=10 记做

温馨提示

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

评论

0/150

提交评论