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

PPT
  • 阅读 49 次
  • 下载 0 次
  • 页数 114 页
  • 大小 3.063 MB
  • 2022-11-25 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
软件测试基本概念及白盒测试方法课件
可在后台配置第一页与第二页中间广告代码
软件测试基本概念及白盒测试方法课件
可在后台配置第二页与第三页中间广告代码
软件测试基本概念及白盒测试方法课件
可在后台配置第三页与第四页中间广告代码
软件测试基本概念及白盒测试方法课件
软件测试基本概念及白盒测试方法课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 114
  • 收藏
  • 违规举报
  • © 版权认领
下载文档40.00 元 加入VIP免费下载
文本内容

【文档说明】软件测试基本概念及白盒测试方法课件.pptx,共(114)页,3.063 MB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-50463.html

以下为本文档部分文字说明:

软件测试基本概念及白盒测试方法软件测试定义使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。------------在IEEE软件工程标准术语软件测试的目的测试是程序的执行过程,目的在于发现错误测试是为了证明程

序有错,而不是证明程序无错误一个好的测试用例在于能发现至今未发现的错误一个成功的测试是发现了至今未发现的错误的测试-------GrenfordJ.Myers测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件

质量的度量------------BillHetzelt软件测试的目的以最少的人力、物力、时间找出软件中潜在的各种错误和缺陷,通过修正错误和缺陷提高软件质量,回避潜在的软件错误和缺陷给软件造成商业风险。通过分析测试过程中发现的问题可以帮助发现当前开发工作所采用的软件工程的缺陷,

以便进行软件过程改进,同时通过测试结果的分析整理,可修正软件开发规则,并为软件可靠性分析提供依据。软件测试的目的评价程序或系统的属性,对软件质量进行度量和评估,以验证软件的质量满足用户的需求,为用户选择接受软件提供有力的依据。软件测试的原则软件测试是证伪而非证

真软件测试完成并不能说明软件已经不存在问题了。尽早地和不断地进行软件测试软件开发的每个环节都可能产生错误软件开发每前进一步,发现和修复软件缺陷的代价平均要增长10倍。重视无效数据和非预期使用习惯的测试软

件产品中突然暴露出来的许多问题常常是当程序以某种非预期的方式运行导致的。软件测试的原则程序员应避免检查自己的程序人们具有一种不愿意否定自己的自然性心理充分注意测试中的群集现象经验表明,测试后程序中残

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

,并记录足够的测试信息,以备缺陷能够复现。妥善保存测试计划,测试用例,出错统计和最终分析报告,为以后产品升级测试提供足够的价值信息。软件测试的原则软件测试的经济性原则软件测试是保证软件质量的重要环节穷尽测试

是不可能的根据程序的重要性及故障发生的损害程度来确定测试有限级做好测试策略,使用尽可能少的测试用例发现尽可能多的软件缺陷软件测试的对象软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。需求分析、概要设计、详细设计以及程序编码等各阶段所得到

的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序,都应成为软件测试的对象。为把握软件开发各个环节的正确性,需要进行各种确认和验证工作。验证与确认确认(Validation),是在

产品交付用户之前进行的深入细致的评定,它的目的是确定整个产品是否满足规格说明。需求规格说明的确认程序的确认(静态确认、动态确认)验证(Verification),确定某阶段是否正确完成的过程,在每阶段结束时进行

-----IEEE610.12,1990:软件工程术语表验证与确认验证(Verification)在生命周期的每个阶段,通过测试和分析,确定所考查阶段的需求是否满足前一阶段的输出以及本阶段的输出是否实现了本阶段的需求的活动。确认(Validation)通过测

试和分析,表明产品在各个方面符合规定需求的一种证明行为。---------EN50129.2003软件的验证和确认与软件质量保证的关系验证和确认不同于软件质量保证,验证和确认是一个系统工程过程,采用严格的方法学来评估软件生命周期全过程中的软件产品的正确性和质量,

强调产品的完整性和正确性。软件质量保证是一个系统过程,评价过程和产品,通过强调对过程的监视来保证发布产品的质量,强调对标准和程序的依从性。验证和确认关注的是安全和任务关键的工程软件;软件质量保证关注的是整个工程软件。验证和确认不能代替软件质量保

证,它应该是软件质量保证的补充,它们的工作可能有一些重迭。测试信息流测试信息流软件配置:软件需求规格说明、软件设计规格说明、源代码等;测试配置:测试计划、测试用例、测试程序等;测试工具:测试数据自动生成程序、静态分析程序、动态分析程序、测试结果分析程序、以及驱动测

试的测试数据库等等。测试信息流测试结果分析:比较实测结果与预期结果,评价错误是否发生。排错(调试):对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档。修正后的文档再测试:直到通过测试为止。测试

信息流通过收集和分析测试结果数据,对软件建立可靠性模型利用可靠性分析,评价软件质量:软件的质量和可靠性达到可以接受的程度;所做的测试不足以发现严重的错误;如果测试发现不了错误,可以肯定,测试配置考虑得不够细致充分,错误仍然潜伏在软件中。软件测试的分类分类依据测试类型软件

开发阶段单元测试(模块测试)集成测试(组装测试,部件测试)系统测试(确认测试,配置项测试)验收测试软件测试的分类分类依据测试类型测试方法与技术是否执行软件静态测试动态测试是否了解内部结构黑盒测试白盒测试灰盒测试软件测试的分类分类依据测试类型测试实施组织开发方测试用户测试第三方测试软件测试的分类

分类依据测试类型测试内容功能测试安全性测试接口测试容量测试完整性测试结构测试用户界面测试软件测试的分类分类依据测试类型测试内容负载测试压力测试疲劳强度测试恢复性测试配置测试兼容性测试安装测试测试类型描述单元

测试单元测试又称为模块测试,是对软件中最小可测单元进行检查和验证。单元测试需要掌握内部设计和编码的细节知识,往往需要开发测试驱动模块和桩模块来辅助完成,一般由开发人员来执行测试。集成测试单元测试

的下一个阶段就是集成测试,又称为组装测试,是在单元测试的基础上,将单元模块组装成系统或子系统过程中所进行的测试,重点检查软件不同单元或部件之间的接口是否正确。系统测试系统测试是对整个基于计算机系统的测试,软件作为该系统的一个元素,与计算机硬件,外设,网络,支持软件,数据

和人员等其他系统元素结合在一起,在真实或模拟运行环境下进行一系列的组装测试和确认测试,检查软件是否能与硬件、外设、网络、支持软件等正确配置连接,并满足用户需求。验收测试验收测试是按照项目任务书或合同,供需双方约定的验收依据文档,在用户指定的或真实的环境中,对整个系统进行的测

试与评审,作为用户接受或拒绝系统的依据,是软件在投入使用之前的最后测试。静态测试不运行被测软件本身,仅通过人工分析或检查软件的需求说明书,设计说明书,以及源程序的文法,结构、过程、接口等来验证软件正确性的测试过程动态测试

通过人工或工具运行软件,比较软件运行的外部表现与预期结果的差异,来验证软件的正确性,并分析软件运行效率和健壮性等性能。白盒测试白盒测试是一种按照程序内部逻辑结构和编码结构设计测试数据的测试方法。测试时可以看到被测程序

的内部结构,并根据其内部结构设计测试数据,使程序中的每个语句、每个条件分支、每个控制路径都在程序测试中受到检验。白盒测试又称为结构测试或逻辑驱动测试。黑盒测试黑盒测试(BLACK-BOXTESTING)是一种按照需求规格说明设计测试数据的方法。它把

程序看作内部不可见的黑盒子,完全不需考虑程序内部结构和编码结构,也不需考虑程序中的语句及路径,测试者只需了解程序输入和输出之间的关系,或是程序的功能,完全依靠能够反映这一关系和程序功能的需求规格说明确定测试数据,判定测试结果的正确性。黑盒测试也称功能测试、数据驱动测试。灰盒测试介于白盒测试与

黑盒测试之间的测试;关注输出对于输入的正确性,同时也关注内部表现。开发方测试在软件开发环境下,由开发方检测与证实软件的实现是否满足设计说明或需求说明要求的过程。用户测试在用户的应用环境下,用户通过运行和使用软件,检测和核实软件是否符合自己预期要求的过程。第三方测试又

称独立测试,通常是在模拟用户真实应用的环境下,由在技术、管理、财务上与开发、用户相当独立的组织进行的软件测试功能测试侧重于验证测试目标预期功能,在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误。安全性测试侧重于确保测试目标数据(或系统)只供

预定好的那些参与者访问。接口测试测试验证测试目标的数据接口的正确性和对其设计的遵循性容量测试侧重于验证测试目标处理大量数据的能力。完整性测试侧重于评估测试目标的健壮性(防止故障)和语言、语法和

资源用途的技术一致性。结构测试侧重于评估测试目标对其设计和形式的遵循性。用户界面测试侧重于验证用户与软件的交互。负载测试一种性能测试,侧重于验证和评估在满足性能指标的情况下,系统所能承受的最大负载量。压力测试一种性能测试,侧重于通过确定一个系统的瓶颈或不能接受

的性能点,来获得系统能提供的最大服务级别。疲劳强度测试侧重于验证测试目标在异常或极端条件下其性能行为的可接受程度。恢复性测试侧重于应用程序或整个系统可以从各种硬件、软件或网络故障中成功地进行故障转移或恢复。

配置测试侧重于在不同的硬件和软件配置上实现预期的测试目标功能。兼容性测试侧重于确保受测试系统与其他软件可以共存运行安装测试侧重于确保在不同硬件和软件配置上以及不同条件下按计划安装测试目标。性能测

试性能测试是要检查系统是否满足在需求说明书中规定的性能。特别是对于实时系统或嵌入式系统。性能测试常常需要与强度测试结合起来进行,并常常要求同时进行硬件和软件检测。通常对软件性能的检测表现在以下几个方面:响应时间、吞吐量、辅助存

储区,例如缓冲区,工作区的大小等、处理精度等等。软件测试基本方法黑盒测试常用的方法等价类边界值错误推测法因果图法判定表法场景法功能图法软件测试基本方法白盒测试常用的方法静态测试代码走查,代码走查控制流分析,数据流分析,接口分析,表达式分析动态测试逻辑覆盖,基本路径覆盖,

域测试,符合测试,程序插桩,程序变异测试方法分类与关系分析等价类划分边界值分析错误推测法因果图法判定表法正交实验法场景法功能图法黑盒测试白盒测试静态测试代码走查代码审查静态分析数据流分析控制流分析接口分析表达式分析动态测试逻辑覆盖基本路径测试域测试符号测试程序插桩软件测试过程模型-V模型系统

需求分析软件需求分析概要设计详细设计编码单元测试集成(部件)测试软件确认(配置项)测试(系统)确认测试系统任务说明书软件任务书软件需求说明软件概要设计文档软件详细设计文档验证验证验证验证验证验证确认确

认编译后的单元测试后的单元测试后的软件部件测试后的软件配置项交付软件测试与软件开发各阶段的关系测试方法分类与关系分析单元测试适合各种测试方法集成测试适合各种测试方法,主要是动态测试方法(白盒、黑盒)确认测

试、系统测试适合各种测试方法,主要是黑盒测试方法软件测试生命周期测试需求划分测试需求明确测试意图,分解测试需求;确定测试需求输入与输出;检查测试需求与软件需求的一致性。白盒测试用例设计方法逻辑覆盖法基本路径法数据流测试

程序插桩域测试程序变异符合测试逻辑覆盖法测试数据执行程序的逻辑覆盖程度语句覆盖(SC)判定覆盖(DC)条件覆盖(CC)判定-条件覆盖(CDC)修正条件判定覆盖(MC/DC)多条件覆盖(MCC)语句覆盖(statementcoverage)语句覆盖就是设计若干个测试用例,

运行被测程序,使得每一可执行语句至少执行一次。在图例中,正好所有的可执行语句都在路径L1上,所以选择路径L1设计测试用例,就可以覆盖所有的可执行语句。L1:a->c->eL1测试用例的设计格式如下【输入的(A,B,X),输出的(A,B,X)】为图例设计满足语句覆盖的测试用例是:【(2,0,4

),(2,0,3)】覆盖ace【L1】(A=2)and(B=0)or(A>1)and(B=0)and(X/A>1)判定覆盖(decisioncoverage)判定覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判

断的取真分支和取假分支至少经历一次。判定覆盖又称为分支覆盖。对于图例,如果选择路径L1和L2,就可得满足要求的测试用例L1:a->c->eL2:a->b->dL1L2100%语句覆盖不一定100%判定覆盖。【(2,0,4),(2,0,3)】覆盖ace【L1】【(1,1,1),(1,1,

1)】覆盖abd【L2】(A=2)and(B=0)or(A>1)and(B=0)and(X/A>1)(A<=1)and(X<=1)or(B!=0)and(A!=2)and(X<=1)判定覆盖如果选择路径L3和L4,还可得另一组可用的测试用例:【(2,1,1),

(2,1,2)】覆盖abe【L3】【(3,0,3),(3,1,1)】覆盖acd【L4】判定覆盖L4L3条件覆盖(conditioncoverage)条件覆盖就是设计若干个测试用例,运行被测程序,使得

程序中每个判断的每个条件的可能取值至少执行一次。在图例中,我们事先可对所有条件的取值加以标记。例如,对于第一个判断:条件A>1取真为,取假为条件B=0取真为,取假为对于第二个判断:条件A=2取真为,取假为条件X>1取真为,取假为测试用例覆盖分支条件取值【(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)判定-条件覆盖(condition/decisioncoverage)判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断中的每个条件的可能取值至少执行一

次。测试用例覆盖分支条件取值【(2,0,4),(2,0,3)】L1(c,e)【(1,1,1),(1,1,1)】L2(b,d)判定-条件覆盖条件组合覆盖(Multipleconditioncoverage)条件组合覆盖就是设计足

够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。记①A>1,B=0作②A>1,B≠0作③A≯1,B=0作④A≯1,B≠0作⑤A=2,X>1作⑥A=2,X≯1作⑦A≠2,X>1作⑧A≠2,X≯1作测试用例覆盖条件覆盖组合【

(2,0,4),(2,0,3)】(L1)①,⑤【(2,1,1),(2,1,2)】(L3)②,⑥【(1,0,3),(1,0,4)】(L3)③,⑦【(1,1,1),(1,1,1)】(L2)④,⑧修正条件判定覆盖(MC/DC)运行被测程序,使得

条件判断表达式中所有条件操作数逻辑值独立对条件判定表达式结果影响。(每个条件对判定的结果都至少转化一次)①A>1,B=0作结果1②A>1,B≠0作结果0③A≯1,B=0作结果0修正条件判定覆盖(MC/DC)路径覆盖路径

测试就是设计足够的测试用例,覆盖程序中所有可能的路径。测试用例通过路径覆盖条件【(2,0,4),(2,0,3)】ace(L1)【(1,1,1),(1,1,1)】abd(L2)【(1,1,2),(1,1,3)】abe(L3)【(3,0,3),(3,0,1)】acd(L4)条件测试路径选择当程序中判

定多于一个时,形成的分支结构可以分为两类:嵌套型分支结构和连锁型分支结构。对于嵌套型分支结构,若有n个判定语句,需要n+1个测试用例;对于连锁型分支结构,若有n个判定语句,需要有2n个测试用例,覆盖它的2n条路径。当n较大时将无法测试。条件测试路径选择循环测试路径选择循环分为4种不同类型:简

单循环、连锁循环、嵌套循环和非结构循环。(1)简单循环①零次循环:从循环入口到出口②一次循环:检查循环初始值③二次循环:检查多次循环④m次循环:检查在多次循环⑤最大次数循环、比最大次数多一次、少一次的循环。循环测试路径选择例:求最小值k=i;for(j=i+1;j<=n;j

++){if(A[j]<A[k])thenk=j;}循环测试路径选择测试用例选择(2)嵌套循环①对最内层循环做简单循环的全部测试。所有其它层的循环变量置为最小值;②逐步外推,对其外面一层循环进行测试。测试时保持所有外层循环的循环变量

取最小值,所有其它嵌套内层循环的循环变量取“典型”值。。③反复进行,直到所有各层循环测试完毕。④对全部各层循环同时取最小循环次数,或者同时取最大循环次数循环测试路径选择(3)连锁循环如果各个循环互相独立,则可以用与简单循环相同的方法进行

测试。但如果几个循环不是互相独立的,则需要使用测试嵌套循环的办法来处理。(4)非结构循环这一类循环应该使用结构化程序设计方法重新设计测试用例。循环测试路径选择基本路径测试基本路径测试方法把覆盖的路径数压缩到一定限度内,程序中的循环体最多只执行一次。它是在程序控制流图的基础上,分析控

制构造的环路复杂性,导出基本可执行路径集合,设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少要执行一次。基本路径测试路径测试法的步骤导出程序控制流图计算程序圈复杂度确定基本路径

集准备测试用例1.程序的控制流图符号○为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句。箭头为边,表示控制流的方向。基本路径测试在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个

区域。如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的复合条件表达式,则需要改为一系列只有单个条件的嵌套的判断。基本路径测试基本路径测试计算程序圈复杂度从控制流图中计算McCabe圈复杂度:V(G)=边数-结点数+2或V(G)=区域数或V

(G)=独立路径数独立路径是指包括一组以前没有处理的语句或条件的一条路径。2.程序环路复杂性程序的环路复杂性给出了程序基本路径集中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必需的测试用例

数目的上界。从控制流图来看,一条独立路径是至少包含有一条在其它独立路径中从未有过的边的路径。基本路径测试例如,在图示的控制流图中,一组独立的路径是path1:1-11path2:1-2-3-4-5-10-1-11path3:1-2-3-6-8-9-10-1

-11path4:1-2-3-6-7-9-10-1-11路径path1,path2,path3,path4组成了控制流图的一个基本路径集。基本路径测试3.导出测试用例导出测试用例,确保基本路径集中

的每一条路径的执行。根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到—用逻辑覆盖方法。基本路径测试每个测试用例执行之后,与预期结果进行比较。如果所有测试用例都执行完毕,则可以确信程序中所有的可执行语句至少被执行了一次。必须注意,一些独立的路径(如例中的路径1),往往

不是完全孤立的,有时它是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试的一部分。基本路径测试数据流测试数据流测试是用控制流图对变量的定义和引用进行分析,查找出未定义的变量或定义了而未使用的

变量。一般用工具进行数据流测试步骤将程序流程图转换成控制流图在每个链路上标注对有关变量的数据操作的操作符合或符合序列选定数据流测试策略根据测试策略得到测试路径根据路径可以获得测试输入数据和测试用例符号测试(执行)符号测试的基本思想是允许程序输入的不仅仅

是具体的数值数据,而且包括符合值,符号值可以是基本符号变量,也可以是这些符号变量值的一个表达式。这样在执行程序过程中以符号的计算代替普通测试执行中对测试用例的数值计算,所得到的结果自然是符号公式或符号谓词。符号测试可以看做是程序测试与程序验证的一个折中方

法,一方面它沿用了传统的程序测试方法,通过运行被测程序来检验它的可靠性,另一方面由于一次符号测试的结果代表了一大类普通测试的运行结果,实际证明了程序接受此类输入,所得输出是正确的还是错误的。白盒测试方法-说明1说明1:

白盒测试方法都不能保证程序的正确性。如将下面条件:if(e>0)…错写成:if(e>=0)…使用白盒测试方法则不能发现该错误。因此必须将结构测试与功能测试方法结合起来。白盒测试方法-说明2说明2:采用

其中任何一种方法都不能完全覆盖所有的测试用例,因此,在实际的测试用例设计过程中,可以将不同的测试方法组合起来,交叉使用。黑盒测试方法1.等价类划分等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。等价类划分方法把所有可能的输入数

据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。划分等价类等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭

露程序中的错误都是等效的。测试某等价类的代表值就等价于对这一类其它值的测试。1.等价类划分等价类的划分有两种不同的情况:①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据

构成的集合。在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。1.等价类划分划分等价类的原则。(1)如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。1.等价类划分例如,在程序的规格说明中,对输入条件有一句话:“„

„项数可以从1到999„„”则有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”或“项数>999”。在数轴上表示成:1.等价类划分(2)如果输入条件规定了输入值的集合,或者是规定了“必须如何”的条件,这时可确立一个有效等价类和一个无效等价类。例如,

在Pascal语言中对变量标识符规定为“以字母打头的„„串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。1.等价类划分(3)如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。(4)

如果规定了输入数据的一组值,而且程序要对每个输入值分别进行处理。这时可为每一个输入值确立一个有效等价类,此外针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。1.等价类划分例如,在教师上岗方案中规定对教授、

副教授、讲师和助教分别计算分数,做相应的处理。因此可以确定4个有效等价类为教授、副教授、讲师和助教,一个无效等价类,它是所有不符合以上身分的人员的输入值的集合。(5)如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类

(符合规则)和若干个无效等价类(从不同角度违反规则)。1.等价类划分例如,Pascal语言规定“一个语句必须以分号‘;’结束”。这时,可以确定一个有效等价类“以‘;’结束”,若干个无效等价类“以‘:

’结束”、“以‘,’结束”、“以‘’结束”、“以LF结束”等。确立测试用例在确立了等价类之后,建立等价类表,列出所有划分出的等价类。1.等价类划分再从划分出的等价类中按以下原则选择测试用例:(1)为每一个等价类规定

一个唯一编号;(2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;(3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为

止。1.等价类划分用等价类划分法设计测试用例的实例在某一PASCAL语言版本中规定:“标识符是由字母开头,后跟字母或数字的任意组合构成。有效字符数为8个,最大字符数为80个。”并且规定:“标识符必须先说明,再使用。”“在同一说明语句中,标识符至少必

须有一个。”1.等价类划分用等价类划分的方法,建立输入等价类表:1.等价类划分下面选取了9个测试用例,它们覆盖了所有的等价类。①VARx,T1234567:REAL;BEGINx:=3.414;T1234567:=2.732;...„(1),(2

),(4),(8),(9),(12),(14)②VAR:REAL;(3)③VARx,:REAL;(5)1.等价类划分④VART12345678:REAL;(6)⑤VART12345......:REAL;(7)多于80个字符⑥VART$

:CHAR;(10)⑦VARGOTO:INTEGER;(11)⑧VAR2T:REAL;(13)⑨VARPAR:REAL;(15)BEGIN......PAP:=SIN(3.14*0.8)/6;1.等价类划分2.边界值分析边界

值分析也是一种黑盒测试方法,是对等价类划分方法的补充。人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。

比如,在做三角形计算时,要输入三角形的三个边长:A、B和C。我们应注意到这三个数值应当满足A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能构成三角形。但如果把六个不等式中的任何一个大于号“>

”错写成大于等于号“≥”,那就不能构成三角形。问题恰出现在容易被疏忽的边界附近。2.边界值分析这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边

界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。2.边界值分析3.错误推测法人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。错误

推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。4.因果图因果图的适用范围如果在测试时必须考虑输入条件的各种组合,可使用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这

就需要利用因果图。因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。用因果图生成测试用例的基本步骤(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一

个标识符。(2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系?根据这些关系,画出因果图。4.因果图(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些

记号标明约束或限制条件。(4)把因果图转换成判定表。(5)把判定表的每一列拿出来作为依据,设计测试用例。4.因果图在因果图中出现的基本符号通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0”或“1”

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

设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则

显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。”4.因果图(1)分析这一段说明,列出原因和结果原因:1.售货机有零钱找2.投入1元硬币3.投入5角硬币4.押下橙汁按钮5.押下啤酒按钮建立中间结点,表示处理中间状态11.投入1元硬币且押下饮料按钮12.押下〖橙汁〗

或〖啤酒〗的按钮13.应当找5角零钱并且售货机有零钱找14.钱已付清4.因果图结果:21.售货机〖零钱找完〗灯亮22.退还1元硬币23.退还5角硬币24.送出橙汁饮料25.送出啤酒饮料(2)画出因果图。所有

原因结点列在左边,所有结果结点列在右边。(3)由于2与3,4与5不能同时发生,分别加上约束条件E。(4)因果图4.因果图(5)转换成判定表

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?