ImageVerifierCode 换一换
格式:PPTX , 页数:114 ,大小:3.06MB ,
文档编号:3295419      下载积分:29 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3295419.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(软件测试基本概念及白盒测试方法课件.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

软件测试基本概念及白盒测试方法课件.pptx

1、软件测试基本概念及白盒测软件测试基本概念及白盒测试方法试方法软件测试定义软件测试定义 n测试是程序的执行过程,目的在于发现错误n测试是为了证明程序有错,而不是证明程序无错误n一个好的测试用例在于能发现至今未发现的错误n一个成功的测试是发现了至今未发现的错误的测试-Grenford J.Myersn测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量n软件测试是证伪而非证真软件测试是证伪而非证真n软件测试完成并不能说明软件已经不存在问软件测试完成并不能说明软件已经不存在问题了。题了。n尽早地和不断地进行软件测试尽早地和不断地进行软件测试n软件开发的每个环节都可能产生错误软

2、件开发的每个环节都可能产生错误n软件开发每前进一步,发现和修复软件缺陷软件开发每前进一步,发现和修复软件缺陷的代价平均要增长的代价平均要增长1010倍。倍。n重视无效数据和非预期使用习惯的测试重视无效数据和非预期使用习惯的测试n软件产品中突然暴露出来的许多问题常常是软件产品中突然暴露出来的许多问题常常是当程序以某种非预期的方式运行导致的。当程序以某种非预期的方式运行导致的。n程序员应避免检查自己的程序程序员应避免检查自己的程序n人们具有一种不愿意否定自己的自然性心理人们具有一种不愿意否定自己的自然性心理n充分注意测试中的群集现象充分注意测试中的群集现象n经验表明,测试后程序中残存的错误数目与经

3、验表明,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比该程序中已发现的错误数目成正比n用例要定期评审,适时补充修改用例用例要定期评审,适时补充修改用例n测试用例多次重复使用后,其发现缺陷的能测试用例多次重复使用后,其发现缺陷的能力会逐渐降低。力会逐渐降低。n应当对每一个测试结果做全面检查应当对每一个测试结果做全面检查n这是一条最明显的原则,但常常被忽略。这是一条最明显的原则,但常常被忽略。n遗漏缺陷遗漏缺陷n测试现场保护和资料归档测试现场保护和资料归档n出现问题时要保护好现场,并记录足够的测出现问题时要保护好现场,并记录足够的测试信息,以备缺陷能够复现。试信息,以备缺陷能够复现。n

4、妥善保存测试计划,测试用例,出错统计和妥善保存测试计划,测试用例,出错统计和最终分析报告,为以后产品升级测试提供足最终分析报告,为以后产品升级测试提供足够的价值信息。够的价值信息。n软件测试并不等于程序测试。软件测试并不等于程序测试。软件测试应软件测试应贯穿于软件定义与开发的整个期间贯穿于软件定义与开发的整个期间。n需求分析、概要设计、详细设计以及程序需求分析、概要设计、详细设计以及程序编码编码等各阶段所得到的等各阶段所得到的文档文档,包括需求规,包括需求规格说明、概要设计规格说明、详细设计规格说明、概要设计规格说明、详细设计规格说明以及源程序,格说明以及源程序,都应成为软件测试的都应成为软件

5、测试的对象对象。n为把握软件开发各个环节的正确性,需要为把握软件开发各个环节的正确性,需要进行各种进行各种确认和验证确认和验证工作。工作。n确认确认(ValidationValidation),是在产品交付用户之,是在产品交付用户之前进行的深入细致的评定,它的目的是确前进行的深入细致的评定,它的目的是确定整个产品是否满足规格说明。定整个产品是否满足规格说明。n 需求规格说明的确认需求规格说明的确认n 程序的确认程序的确认 (静态确认、动态确认静态确认、动态确认)n验证验证(VerificationVerification),确定某阶段是否正,确定某阶段是否正确完成的过程,在每阶段结束时进行确完

6、成的过程,在每阶段结束时进行 -IEEE 610.12-IEEE 610.12,1990:1990:软件工程术语表软件工程术语表软件的验证和确认与软件质量保证的关软件的验证和确认与软件质量保证的关系系n验证和确认不同于软件质量保证,验证和确认验证和确认不同于软件质量保证,验证和确认是一个系统工程过程,采用严格的方法学来评是一个系统工程过程,采用严格的方法学来评估软件生命周期全过程中的软件产品的正确性估软件生命周期全过程中的软件产品的正确性和质量,强调产品的完整性和正确性。软件质和质量,强调产品的完整性和正确性。软件质量保证是一个系统过程,评价过程和产品,通量保证是一个系统过程,评价过程和产品,

7、通过强调对过程的监视来保证发布产品的质量,过强调对过程的监视来保证发布产品的质量,强调对标准和程序的依从性。验证和确认关注强调对标准和程序的依从性。验证和确认关注的是安全和任务关键的工程软件;的是安全和任务关键的工程软件;软件质量保软件质量保证关注的是整个工程软件。证关注的是整个工程软件。n验证和确认不能代替软件质量保证,它应该是验证和确认不能代替软件质量保证,它应该是软件质量保证的补充,它们的工作可能有一些软件质量保证的补充,它们的工作可能有一些重迭。重迭。n软件配置软件配置:软件需求规格说明、软件设计:软件需求规格说明、软件设计规格说明、源代码等;规格说明、源代码等;n测试配置测试配置:测

8、试计划、测试用例、测试程:测试计划、测试用例、测试程序等;序等;n测试工具测试工具:测试数据自动生成程序、静态:测试数据自动生成程序、静态分析程序、动态分析程序、测试结果分析分析程序、动态分析程序、测试结果分析程序、以及驱动测试的测试数据库等等。程序、以及驱动测试的测试数据库等等。n测试结果分析测试结果分析:比较实测结果与预期结果,:比较实测结果与预期结果,评价错误是否发生。评价错误是否发生。n排错排错(调试调试):对已经发现的错误进行错误对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,定位和确定出错性质,并改正这些错误,同时修改相关的文档。同时修改相关的文档。n修正后的文档再测试

9、修正后的文档再测试:直到通过测试为止。:直到通过测试为止。n通过收集和分析测试结果数据,对软件建通过收集和分析测试结果数据,对软件建立可靠性模型立可靠性模型n利用可靠性分析,评价软件质量:利用可靠性分析,评价软件质量:n 软件的质量和可靠性达到可以接受的软件的质量和可靠性达到可以接受的程度;程度;n 所做的测试不足以发现严重的错误;所做的测试不足以发现严重的错误;n如果测试发现不了错误,可以肯定,测试如果测试发现不了错误,可以肯定,测试配置考虑得不够细致充分,错误仍然潜伏配置考虑得不够细致充分,错误仍然潜伏在软件中。在软件中。分类依据测试类型软件开发阶段单元测试(模块测试)集成测试(组装测试,

10、部件测试)系统测试(确认测试,配置项测试)验收测试分类依据测试类型测试方法与技术是否执行软件静态测试动态测试是否了解内部结构黑盒测试白盒测试灰盒测试分类依据测试类型测试实施组织开发方测试用户测试第三方测试分类依据测试类型测试内容功能测试安全性测试接口测试容量测试完整性测试结构测试用户界面测试分类依据测试类型测试内容负载测试压力测试疲劳强度测试恢复性测试配置测试兼容性测试安装测试白盒测试n白盒测试是一种按照程序内部逻辑结构和编码结构设计测试数据的测试方法。测试时可以看到被测程序的内部结构,并根据其内部结构设计测试数据,使程序中的每个语句、每个条件分支、每个控制路径都在程序测试中受到检验。n白盒测

11、试又称为结构测试或逻辑驱动测试。黑盒测试n黑盒测试(BLACK-BOXTESTING)是一种按照需求规格说明设计测试数据的方法。它把程序看作内部不可见的黑盒子,完全不需考虑程序内部结构和编码结构,也不需考虑程序中的语句及路径,测试者只需了解程序输入和输出之间的关系,或是程序的功能,完全依靠能够反映这一关系和程序功能的需求规格说明确定测试数据,判定测试结果的正确性。n黑盒测试也称功能测试、数据驱动测试。灰盒测试等价类划分边界值分析错误推测法因果图法判定表法正交实验法场景法功能图法黑盒测试白盒测试静态测试代码走查代码审查静态分析数据流分析控制流分析接口分析表达式分析动态测试逻辑覆盖基本路径测试域测

12、试符号测试程序插桩模型系统需求分析软件需求分析概要设计详细设计编码单元测试集成(部件)测试软件确认(配置项)测试(系统)确认测试系统任务说明书软件任务书软件需求说明软件概要设计文档软件详细设计文档验证验证验证验证验证验证确认确认编译后的单元测试后的单元测试后的软件部件测试后的软件配置项交付软件测试与软件开发各阶段的关系测试需求划分语句覆盖()n语句覆盖就是设计若语句覆盖就是设计若干个测试用例,运行干个测试用例,运行被测程序,使得被测程序,使得每一每一可执行语句至少执行可执行语句至少执行一次一次。n在图例中,正好所有在图例中,正好所有的可执行语句都在的可执行语句都在路路径径L1L1上,所以选择上

13、,所以选择路路径径 L1L1设计测试用例,设计测试用例,就可以覆盖所有的可就可以覆盖所有的可执行语句。执行语句。L1:a-c-eL1:a-c-eL1n测试用例的设计格式如下测试用例的设计格式如下【输入的输入的(A,B,X),输出的,输出的(A,B,X)】n为图例设计满足为图例设计满足语句覆盖语句覆盖的测试用例是的测试用例是:【(2,0,4),(2,0,3)】覆盖覆盖 ace【L1】(A=2)and(B=0)or (A1)and(B=0)and(X/A1)判定覆盖()n判定覆盖就是设计判定覆盖就是设计若干个测试用例,若干个测试用例,运行被测程序,使运行被测程序,使得得程序中每个判断程序中每个判断

14、的取真分支和取假的取真分支和取假分支至少经历一次分支至少经历一次。n判定覆盖又称为判定覆盖又称为分分支覆盖支覆盖。n对于图例,如果选对于图例,如果选择择路径路径L1L1和和L2L2,就,就可得满足要求的测可得满足要求的测试用例试用例L1:a-c-eL1:a-c-eL2:a-b-dL2:a-b-dL1L2100%语句覆盖不一定100%判定覆盖。n【(2,0,4),(2,0,3)】覆盖覆盖 ace【L1】【(1,1,1),(1,1,1)】覆盖覆盖 abd【L2】(A=2)and(B=0)or (A1)and(B=0)and(X/A1)(A=1)and(X=1)or (B!=0)and(A!=2)a

15、nd(X=1)判定覆盖n如果选择路径如果选择路径L3L3和和L4L4,还可得另一组可用的,还可得另一组可用的测试用例测试用例:【(2,1,1),(2,1,2)】覆盖覆盖 abe【L3】【(3,0,3),(3,1,1)】覆盖覆盖 acd【L4】判定覆盖L4L3条件覆盖n条件覆盖就是设计若干个测试用例,条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中运行被测程序,使得程序中每个判每个判断的每个条件的可能取值至少执行断的每个条件的可能取值至少执行一次一次。n在图例中,我们事先可对所有条件在图例中,我们事先可对所有条件的取值加以标记。例如,的取值加以标记。例如,n对于第一个判断:对于第一个判断

16、:n 条件条件 A A1 1 取真为取真为 ,取假为,取假为 条件条件 B B0 0 取真为取真为 ,取假为,取假为n对于第二个判断:n 条件A2 取真为 ,取假为 条件X1 取真为 ,取假为测试用例测试用例 覆盖分支覆盖分支 条件取值条件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,0,1),(1,0,1)】L2(b,d)【(2,1,1),(2,1,2)】L3(b,e)或条件覆盖 测测 试试 用用 例例 覆盖分支覆盖分支 条条件取值件取值【(1,0,3),(1,0,4)】L3(b,e)【(2,1,1),(2,1,2)】L3(b,e)判定条件覆盖n判定条件覆盖就是设计足够的判定条

17、件覆盖就是设计足够的测试用例,使得测试用例,使得判断中每个条件判断中每个条件的所有可能取值至少执行一次的所有可能取值至少执行一次,同时同时每个判断中的每个条件的可每个判断中的每个条件的可能取值至少执行一次能取值至少执行一次。测测 试试 用用 例例 覆盖分支覆盖分支 条件取条件取值值【(2,0,4),(2,0,3)】L1(c,e)【(1,1,1),(1,1,1)】L2(b,d)判定条件覆盖条 件 组 合 覆 盖n条件组合覆盖就是设计足够的测条件组合覆盖就是设计足够的测试用例,运行被测程序,使得试用例,运行被测程序,使得每每个判断的所有可能的条件取值组个判断的所有可能的条件取值组合至少执行一次合至

18、少执行一次。记记 A A1,B1,B0 0 作作 A A1,B0 1,B0 作作 A1,BA1,B0 0 作作 A1,B0 A1,B0 作作 A2,X1 作作 A2,X 1 作作 A2,X1 作作 A2,X 1 作作 测测 试试 用用 例例 覆盖条件覆盖条件 覆盖组合覆盖组合【(2,0,4),(2,0,3)(2,0,4),(2,0,3)】(L1)(L1),【(2,1,1),(2,1,2)(2,1,1),(2,1,2)】(L3)(L3),【(1,0,3),(1,0,4)(1,0,3),(1,0,4)】(L3)(L3),【(1,1,1),(1,1,1)(1,1,1),(1,1,1)】(L2)(L2

19、),修正条件判定覆盖()A A1,B1,B0 0 作作 结果结果 1 1 A A1,B0 1,B0 作作 结果结果 0 0 A1,B A1,B0 0 作作 结果结果 0 0 修正条件判定覆盖()路径覆盖n路径测试就是设计足够的测试用例,路径测试就是设计足够的测试用例,覆盖程覆盖程序中所有可能的路径。序中所有可能的路径。测测 试试 用用 例例 通过路径通过路径 覆盖条件覆盖条件【(2,0,4),(2,0,3)(2,0,4),(2,0,3)】ace(L1)ace(L1)【(1,1,1),(1,1,1)(1,1,1),(1,1,1)】abdabd(L2)(L2)【(1,1,2),(1,1,3)(1,

20、1,2),(1,1,3)】abeabe(L3)(L3)【(3,0,3),(3,0,1)(3,0,3),(3,0,1)】acdacd(L4)(L4)条件测试路径选择n当程序中判定多于一个时,形成的当程序中判定多于一个时,形成的分支结构可以分为两类:分支结构可以分为两类:嵌套型分嵌套型分支结构支结构和和连锁型分支结构连锁型分支结构。n对于对于嵌套型分支结构嵌套型分支结构,若有,若有n n个判定个判定语句,需要语句,需要n n+1+1个测试用例;个测试用例;n对于对于连锁型分支结构连锁型分支结构,若有若有n n个判个判定语句,需要有定语句,需要有2 2n n个测试用例,覆盖个测试用例,覆盖它的它的2

21、 2n n条路径。当条路径。当n n较大时将无法测较大时将无法测试。试。条件测试路径选择循环测试路径选择n循环分为循环分为4 4种不同类型:种不同类型:简单循环、连锁循环、简单循环、连锁循环、嵌套循环嵌套循环和和非结构循环非结构循环。(1)简单循环简单循环 零次循环:零次循环:从循环入口到出口从循环入口到出口 一次循环:一次循环:检查循环初始值检查循环初始值 二次循环:二次循环:检查多次循环检查多次循环 m次循环:次循环:检查在多次循环检查在多次循环 最大次数循环、比最大次数多一次、少一最大次数循环、比最大次数多一次、少一次的循环。次的循环。循环测试路径选择例:求最小值例:求最小值k=i;fo

22、r(j=i+1;j=n;j+)if(Aj Ak)then k=j;循环测试路径选择测试用例选择(2)(2)嵌套循环嵌套循环 对对最内层循环最内层循环做简单循环的全部做简单循环的全部测试。所有其它层的循环变量置为最小测试。所有其它层的循环变量置为最小值;值;逐步外推逐步外推,对其外面一层循环进行,对其外面一层循环进行测试。测试时保持所有外层循环的循环测试。测试时保持所有外层循环的循环变量取最小值,所有其它嵌套内层循环变量取最小值,所有其它嵌套内层循环的循环变量取的循环变量取“典型典型”值。值。反复进行反复进行,直到所有各层循环测试,直到所有各层循环测试完毕。完毕。对全部各层循环同时取最小循环次数

23、,或者同时取最大循环次数循环测试路径选择(3)(3)连锁循环连锁循环如果各个循环如果各个循环互相独立互相独立,则可以用,则可以用与简单循环相同的方法进行测试。与简单循环相同的方法进行测试。但如果几个循环不但如果几个循环不是互相独立是互相独立的,的,则需要使用测试嵌套循环的办法来则需要使用测试嵌套循环的办法来处理。处理。(4)(4)非结构循环非结构循环这一类循环应该使用结构化程序设这一类循环应该使用结构化程序设计方法重新设计测试用例。计方法重新设计测试用例。循环测试路径选择基本路径测试n基本路径测试方法把覆盖的路径基本路径测试方法把覆盖的路径数压缩到一定限度内,数压缩到一定限度内,程序中的程序中

24、的循环体最多只执行一次循环体最多只执行一次。n它是在程序控制流图的基础上,它是在程序控制流图的基础上,分析控制构造的环路复杂性分析控制构造的环路复杂性,导导出基本可执行路径集合,设计测出基本可执行路径集合,设计测试用例的试用例的方法。设计出的测试用方法。设计出的测试用例要保证在测试中,程序的每一例要保证在测试中,程序的每一个可执行语句至少要执行一次。个可执行语句至少要执行一次。基本路径测试1.1.程序的控制流图程序的控制流图n符号符号为控制流图的一个结点,表示一为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句。个或多个无分支的语句或源程序语句。箭头为边,表示控制流的方向。箭头为边,

25、表示控制流的方向。基本路径测试n在选择或多分支结构中,分支的汇聚处在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。应有一个汇聚结点。n边和结点圈定的区域叫做区域,当对区边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个域计数时,图形外的区域也应记为一个区域。区域。n如果判断中的条件表达式是由一个或多如果判断中的条件表达式是由一个或多个逻辑运算符个逻辑运算符 (OR,AND,NAND,NOR)(OR,AND,NAND,NOR)连接的复合条件表达式,则需要改为一连接的复合条件表达式,则需要改为一系列系列只有单个条件的嵌套的判断只有单个条件的嵌套的判断。基本路径测试基本路径测试

26、计算程序圈复杂度2.2.程序环路复杂性程序环路复杂性n程序的环路复杂性给出了程序的环路复杂性给出了程序基本路程序基本路径集中的独立路径条数径集中的独立路径条数,这是确保程,这是确保程序中每个可执行语句至少执行一次所序中每个可执行语句至少执行一次所必需的测试用例数目的上界。必需的测试用例数目的上界。n从控制流图来看,一条独立路径是至从控制流图来看,一条独立路径是至少包含有一条在其它独立路径中从未少包含有一条在其它独立路径中从未有过的边的路径。有过的边的路径。基本路径测试n例如,在图示的控制流图中,一组独立的路径是path1:1-11path2:1-2-3-4-5-10-1-11path3:1-2

27、-3-6-8-9-10-1-11path4:1-2-3-6-7-9-10-1-11n路径 path1,path2,path3,path4组成了控制流图的一个基本路径集。基本路径测试3.3.导出测试用例导出测试用例n导出测试用例,导出测试用例,确保基本路径集中的每确保基本路径集中的每一条路径的执行一条路径的执行。n根据判断结点给出的条件,选择适当的根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到数据以保证某一条路径可以被测试到 用逻辑覆盖方法。用逻辑覆盖方法。基本路径测试n每个每个测试用例执行之后,与测试用例执行之后,与预期结果进行比较预期结果进行比较。如果所。如果所有测试用例

28、都执行完毕,则有测试用例都执行完毕,则可以确信程序中所有的可执可以确信程序中所有的可执行语句至少被执行了一次。行语句至少被执行了一次。n必须注意,一些独立的路径必须注意,一些独立的路径(如例中的路径如例中的路径1)1),往往不是,往往不是完全孤立的,有时它是程序完全孤立的,有时它是程序正常的控制流的一部分,这正常的控制流的一部分,这时,这些路径的测试可以是时,这些路径的测试可以是另一条路径测试的一部分。另一条路径测试的一部分。基本路径测试n数据流测试是用控制流图对变量的定义和引用进行分析,查找出未定义的变量或定义了而未使用的变量。n一般用工具进行n数据流测试步骤n将程序流程图转换成控制流图n在

29、每个链路上标注对有关变量的数据操作的操作符合或符合序列n选定数据流测试策略n根据测试策略得到测试路径n根据路径可以获得测试输入数据和测试用例n符号测试的基本思想是允许程序输入的不仅仅是具体的数值数据,而且包括符合值,符号值可以是基本符号变量,也可以是这些符号变量值的一个表达式。这样在执行程序过程中以符号的计算代替普通测试执行中对测试用例的数值计算,所得到的结果自然是符号公式或符号谓词。n符号测试可以看做是程序测试与程序验证的一个折中方法,一方面它沿用了传统的程序测试方法,通过运行被测程序来检验它的可靠性,另一方面由于一次符号测试的结果代表了一大类普通测试的运行结果,实际证明了程序接受此类输入,

30、所得输出是正确的还是错误的。白盒测试方法-说明1白盒测试方法-说明21.等价类划分n等价类划分是一种典型的黑盒测试方等价类划分是一种典型的黑盒测试方法,使用这一方法时,法,使用这一方法时,完全不考虑程完全不考虑程序的内部结构,只依据程序的规格说序的内部结构,只依据程序的规格说明来设计测试用例明来设计测试用例。n等价类划分方法等价类划分方法把所有可能的输入数把所有可能的输入数据据,即程序的输入域,即程序的输入域划分成若干部分划分成若干部分,然后然后从每一部分中选取少数有代表性从每一部分中选取少数有代表性的数据做为测试用例的数据做为测试用例。n使用这一方法设计测试用例要经历使用这一方法设计测试用例

31、要经历划划分等价类分等价类(列出等价类表)和(列出等价类表)和选取测选取测试用例两步试用例两步。n划分等价类划分等价类等价类是指某个输入域的子集合。在等价类是指某个输入域的子集合。在该子集合中,该子集合中,各个输入数据对于揭露各个输入数据对于揭露程序中的错误都是等效的程序中的错误都是等效的。测试某等。测试某等价类的代表值就等价于对这一类其它价类的代表值就等价于对这一类其它值的测试。值的测试。1.等价类划分n等价类的划分有两种不同的情况:等价类的划分有两种不同的情况:有效等价类有效等价类:是指对于程序的规:是指对于程序的规格说明来说,是合理的,有意义的输格说明来说,是合理的,有意义的输入数据构成

32、的集合。入数据构成的集合。无效等价类无效等价类:是指对于程序的规:是指对于程序的规格说明来说,是不合理的,无意义的格说明来说,是不合理的,无意义的输入数据构成的集合。输入数据构成的集合。n在设计测试用例时,要同时考虑有效在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。等价类和无效等价类的设计。1.等价类划分n划分等价类的原则。划分等价类的原则。(1)(1)如果输入条件规定了取值范围,如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等或值的个数,则可以确立一个有效等价类和两个无效等价类。价类和两个无效等价类。1.等价类划分n例如,在程序的规格说明中,对输入条例如,在程序的规格

33、说明中,对输入条件有一句话:件有一句话:“项数可以从项数可以从1 1到到999”999”则有效等价类是则有效等价类是“11项数项数999”999”两个无效等价类是两个无效等价类是“项数项数1”1”或或“项项数数999”999”。在数轴上表示成。在数轴上表示成:1.等价类划分(2)(2)如果输入条件规定了输入值的集合,如果输入条件规定了输入值的集合,或者是规定了或者是规定了“必须如何必须如何”的条件,这的条件,这时可确立一个有效等价类和一个无效等时可确立一个有效等价类和一个无效等价类。价类。n例如,在例如,在PascalPascal语言中对变量标识符规语言中对变量标识符规定为定为“以字母打头的以

34、字母打头的串串”。那么所。那么所有以字母打头的构成有效等价类,而不有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无在此集合内(不以字母打头)的归于无效等价类。效等价类。1.等价类划分(3)(3)如果输入条件是一个布尔量,则可如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价以确定一个有效等价类和一个无效等价类。类。(4)(4)如果规定了输入数据的一组值,而如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。且程序要对每个输入值分别进行处理。这时可为这时可为 每一个输入值确立一个有效等每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,

35、此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。价类,它是所有不允许的输入值的集合。1.等价类划分n例如,在教师上岗方案中规定对教授、例如,在教师上岗方案中规定对教授、副教授、讲师和助教分别计算分数,做副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定相应的处理。因此可以确定4 4个有效等价个有效等价类为教授、副教授、讲师和助教,一个类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分无效等价类,它是所有不符合以上身分的人员的输入值的集合。的人员的输入值的集合。(5)(5)如果规定了输入数据必须遵守的规如果规定了输入数据必须遵守的规则,则可以确立一个有效

36、等价类(符合则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角规则)和若干个无效等价类(从不同角度违反规则)。度违反规则)。1.等价类划分n例如,例如,PascalPascal语言规定语言规定“一个语句必须以分号一个语句必须以分号;结束结束”。这时,可以确定一个有效等价类。这时,可以确定一个有效等价类 “以以;结束结束”,若干个无效等价类,若干个无效等价类“以以:结束结束”、“以以,结束结束”、“以以 结束结束”、“以以LFLF结束结束”等。等。n确立测试用例确立测试用例在确立了等价类之后,建立等价类表,列出所在确立了等价类之后,建立等价类表,列出所有划分出的等价类。有划分出

37、的等价类。1.等价类划分n再从划分出的等价类中按以下原则选择测再从划分出的等价类中按以下原则选择测试用例:试用例:(1)(1)为每一个等价类规定一个唯一编号;为每一个等价类规定一个唯一编号;(2)(2)设计一个新的测试用例,使其设计一个新的测试用例,使其尽可能尽可能多地覆盖尚未被覆盖的有效等价类多地覆盖尚未被覆盖的有效等价类,重复,重复这一步,直到所有的有效等价类都被覆盖这一步,直到所有的有效等价类都被覆盖为止;为止;(3 3)设计一个新的测试用例,使其)设计一个新的测试用例,使其仅覆仅覆盖一个尚未被覆盖的无效等价类,盖一个尚未被覆盖的无效等价类,重复这重复这一步,直到所有的无效等价类都被覆盖

38、为一步,直到所有的无效等价类都被覆盖为止。止。1.等价类划分n用等价类划分法设计测试用例的实例用等价类划分法设计测试用例的实例在某一在某一PASCALPASCAL语言版本中规定:语言版本中规定:“标识符标识符是由字母开头,后跟字母或数字的任意组是由字母开头,后跟字母或数字的任意组合构成。有效字符数为合构成。有效字符数为8 8个,最大字符数个,最大字符数为为8080个。个。”并且规定:并且规定:“标识符必须先说明,再使标识符必须先说明,再使用。用。”“”“在同一说明语句中,标识符至在同一说明语句中,标识符至少必须有一个。少必须有一个。”1.等价类划分用等价类划分的方法,建立输入等价类表用等价类划

39、分的方法,建立输入等价类表:1.等价类划分n下面选取了下面选取了9 9个测试用例,它们覆盖了所有的等个测试用例,它们覆盖了所有的等价类。价类。VAR VAR x x,T1234567T1234567:REALREAL;BEGIN BEGIN x x:=3.414:=3.414;T1234567:=2.732T1234567:=2.732;.(1),(2),(4),(8),(9),(12),(1),(2),(4),(8),(9),(12),(14)(14)VAR VAR :REALREAL;(3)(3)VAR VAR x x,:,:REAL;REAL;(5)(5)1.等价类划分 VAR T123

40、45678VAR T12345678:REALREAL;(6)(6)VAR T12345.VAR T12345.:REALREAL;(7)(7)多于多于8080个字符个字符 VAR T$VAR T$:CHARCHAR;(10)(10)VAR GOTOVAR GOTO:INTEGERINTEGER;(11)(11)VAR 2TVAR 2T:REALREAL;(13)(13)VAR PARVAR PAR:REALREAL;(15)(15)BEGIN .BEGIN .PAP:=SIN(3.14 PAP:=SIN(3.14*0.8)/6 0.8)/6;1.等价类划分2.边界值分析n边界值分析也是一种黑

41、盒测试方法,是边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。对等价类划分方法的补充。n人们从长期的测试工作经验得知,人们从长期的测试工作经验得知,大量大量的错误是发生在输入或输出范围的边界的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部上,而不是在输入范围的内部。因此针。因此针对各种边界情况设计测试用例,对各种边界情况设计测试用例,可以查可以查出更多的错误出更多的错误。n比如,在做三角形计算时,要输入三比如,在做三角形计算时,要输入三角形的三个边长:角形的三个边长:A A、B B和和C C。我们应我们应注意到这三个数值应当满足注意到这三个数值应当满足 A A0 0、B

42、B0 0、C C0 0、A AB BC C、A AC CB B、B BC CA A,才能才能构成三角形。但如果把六个不等式中构成三角形。但如果把六个不等式中的任何一个大于号的任何一个大于号“”错写成大于错写成大于等于号等于号“”,那就不能构成三角形。,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。问题恰出现在容易被疏忽的边界附近。2.边界值分析n这里所说的边界是指,相当于输入等这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情界值及稍低于其边界值的一些特定情况。况。n使用边界值分析方法设计测试用例,使用边界值

43、分析方法设计测试用例,首先应确定边界情况。首先应确定边界情况。应当选取正好应当选取正好等于,刚刚大于,或刚刚小于边界的等于,刚刚大于,或刚刚小于边界的值做为测试数据值做为测试数据,而不是选取等价类,而不是选取等价类中的典型值或任意值做为测试数据。中的典型值或任意值做为测试数据。2.边界值分析3.错误推测法n人们也可以靠经验和直觉推测程序中可人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推写检查这些错误的例子。这就是错误推测法。测法。n错误推测法的基本想法是:错误推测法的基本想法是:列举出程序列举出程序中所有

44、可能有的错误和容易发生错误的中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例特殊情况,根据它们选择测试用例。4.因果图n因果图的适用范围因果图的适用范围如果在测试时必须考虑如果在测试时必须考虑输入条件的各种输入条件的各种组合组合,可使用一种适合于描述对于多种,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。来设计测试用例,这就需要利用因果图。因果图方法最终生成的就是判定表。它因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情适合于检查程序输入条件的各种组合情况。况。n用因果图生

45、成测试用例的基本步骤用因果图生成测试用例的基本步骤(1)(1)分析软件规格说明描述中,哪些是分析软件规格说明描述中,哪些是原因原因 (即输入条件或输入条件的等价即输入条件或输入条件的等价类类),哪些是结果,哪些是结果 (即输出条件即输出条件),并给,并给每个原因和结果赋予一个每个原因和结果赋予一个标识符标识符。(2)(2)分析软件规格说明描述中的语义,分析软件规格说明描述中的语义,找出找出原因与结果之间,原因与原因之间原因与结果之间,原因与原因之间对应的是什么关系对应的是什么关系?根据这些关系,画根据这些关系,画出因果图。出因果图。4.因果图(3)(3)由于语法或环境限制,有些原因与由于语法或

46、环境限制,有些原因与原因之间,原因与结果之间的组合情况原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条因果图上用一些记号标明约束或限制条件。件。(4)(4)把因果图转换成判定表。把因果图转换成判定表。(5)(5)把判定表的每一列拿出来作为依据,把判定表的每一列拿出来作为依据,设计测试用例。设计测试用例。4.因果图n在因果图中出现的基本符号在因果图中出现的基本符号通常在因果图中用通常在因果图中用CiCi表示原因,用表示原因,用EiEi表表示结果,各结点表示状态,可取值示结果,各结点表示状态,可取值“0”0”或

47、或“1”1”。“0”0”表示某状态不出现,表示某状态不出现,“1”1”表示某状态出现。表示某状态出现。n主要的原因和结果之间的关系有主要的原因和结果之间的关系有:4.因果图n表示约束条件的符号表示约束条件的符号为了表示原因与原因之间,结果与结为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符图中可以附加一些表示约束条件的符号。号。4.因果图n例如,有一个处理单价为例如,有一个处理单价为5 5角钱的饮料的角钱的饮料的自动售货机软件测试用例的设计。其规自动售货机软件测试用例的设计。其规格说明如下:格说明如下:若投入若投入

48、5 5角钱或角钱或1 1元钱的硬币,押下元钱的硬币,押下橙橙汁汁或或啤酒啤酒的按钮,则相应的饮料的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一就送出来。若售货机没有零钱找,则一个显示个显示零钱找完零钱找完的红灯亮,这时在的红灯亮,这时在投入投入1 1元硬币并押下按钮后,饮料不送出元硬币并押下按钮后,饮料不送出来而且来而且1 1元硬币也退出来;若有零钱找,元硬币也退出来;若有零钱找,则显示则显示零钱找完零钱找完的红灯灭,在送出的红灯灭,在送出饮料的同时退还饮料的同时退还5 5角硬币。角硬币。”4.因果图(1)(1)分析这一段说明,列出原因和结果分析这一段说明,列出原因和结果原因原因:1.

49、:1.售货机有零钱找售货机有零钱找 2.2.投入投入1 1元硬币元硬币 3.3.投入投入5 5角硬币角硬币 4.4.押下橙汁按钮押下橙汁按钮 5.5.押下啤酒按钮押下啤酒按钮建立中间结点,表示处理中间状态建立中间结点,表示处理中间状态11.11.投入投入1 1元硬币且押下饮料按钮元硬币且押下饮料按钮12.12.押下押下橙汁橙汁或或啤酒啤酒的按钮的按钮13.13.应当找应当找5 5角零钱并且售货机有零钱找角零钱并且售货机有零钱找14.14.钱已付清钱已付清4.因果图 结果:结果:21.21.售货机售货机零钱找完零钱找完灯亮灯亮 22.22.退还退还1 1元硬币元硬币 23.23.退还退还5 5角硬币角硬币 24.24.送出橙汁饮料送出橙汁饮料 25.25.送出啤酒饮料送出啤酒饮料(2)(2)画出因果图。所有原因结点列在左画出因果图。所有原因结点列在左边,所有结果结点列在右边。边,所有结果结点列在右边。(3)3)由于由于 2 2 与与 3 3,4 4 与与 5 5 不能同时不能同时发生,分别加上约束条件发生,分别加上约束条件E E。(4)(4)因果图因果图4.因果图n(5)转换成判定表

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|