版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程名称:软件工程第22讲班级:日期:教室:教学题目:第14章软件测试14.1软件测试的基础知识
14.2软件测试技术
14.2.1白盒测试1.逻辑覆盖教学目的:了解软件测试的基本知识。掌握逻辑覆盖测试技术。教学重点:软件测试的步骤和常见错误类型、逻辑覆盖。教学难点:软件测试的步骤、逻辑覆盖。教具:多媒体教室、电子教案作业:第14章软件测试试软件测试试是对软软件规格格说明、、软件设设计和编编码的最最全面也也是最后后的审查查。通过软件件测试,,可以发发现软件件中绝大大部分潜潜伏的错错误,从从而可以以大大提提高软件件产品的的正确性性、可靠靠性,进进而可显显著提高高产品质质量。统计表明明,软件件测试工工作往往往占软件件开发总总工作量量的40%以上上。甚至至3~5倍以上上。第14章软件测试试本章将介介绍:软件测试试的基本本知识;;软件测试试的常用用方法和和技术;;软件测试试的过程程;软件的调调试与排排错技术术;软件测试试的工具具。第14章软件测试试14.1软件测试试的基本本知识14.2软件测试试技术14.3软件测试试过程14.4调试14.5测试工具具14.1软软件测试试的基本本知识软件测试试是执行行程序发发现并排排除程序序中潜伏伏的错误误的过程程。软件测试试是软件件投入运运行前,,对软件件需求分分析、设设计、实实现的强强有力的的最终审审查。14.1.1软软件件测试的的目标与与原则测试用例例——为为了进行行有效的的测试而而设计的的输入数数据和预预期的输输出结果果数据。。Myers在其软件件测试著著作中对对软件测测试的目目标提出出以下观观点:①软件测测试是为为了发现现错误而而运行程程序的过过程;②一个好好的测试试用例能能够发现现至今尚尚未发现现的错误;③一个成成功的测测试是发发现了至至今尚未未发现的的错误的测试试。测试原则则①应尽早早和不断断地进行行软件““测试””,即将将这种““测试””贯穿于于软件开开发的各各个阶段段,坚持持各个阶阶段的技技术评审审,以便便尽早地地发现和和预防错错误。②测试用用例中,,不仅要要选择合合理的输输入数据据,还要要选择不不合理的的输入数数据。③在开发发各阶段段应事先先分别制制定出相相应的测测试计划划,在测测试开始始后应严严格执行行,防止止随意性性。④对发现现错误较较多的程程序模块块,应进进行重点点测试。。Pareto指出,测测试发现现错误的的80%%集中在在20%%的模块块中。发发现错误误较多的的模块质质量较差差,需重重点测试试,并要要测试是是否引入入了新的的错误。。测试原则则⑤避免程程序员测测试自己己的程序序。测试用例例的设计计应有第第三方参参与。对对于大型型软件的的测试,,一般的的做法是是:设计计者与测测试者共共同完成成单元测测试任务务,而综综合测试试由专门门的测试试机构负负责,有有时其中中也可以以有设计计者参加加⑥用穷举举测试是是不现实实的,一一般通过过设计测测试用例例,充分分覆盖所所有条件件或所有有语句即即可。⑦长期妥妥善保存存测试计计划、测测试用例例、出错错统计和和有关的的分析报报告。14.1.2软软件件测试的的步骤图14--1-1测测试步骤骤部件代码部件代码单元测试试单元测试试单元测试试…部件代码集成测试试功能测试试性能测试试验收测试试安装测试试设计规格说明明系统功能需求求其他软件需求求用户需求求规格说明明用户环境集成后的模块功能系统验证,生效的软件被接受的系统在使用中中的系统统测试后的模块14.1.2软软件件测试的的步骤在本书中中,从软软件工程程的角度度:将单元测测试与详详细设计计对应起起来,即即在详细细设计阶阶段就应应制定出出单元测测试计划划;而集成测测试又称称为综合合测试,,可以把把概要设设计和集集成测试试对应起起来,在在概要设设计阶段段就可以以制定集集成测试试计划;;将功能测测试、性性能(行行为)测测试、验验收测试试统称为为验收测测试(也也称确认认测试)),与软软件系统统需求分分析阶段段对应起起来,在在需求分分析阶段段就应制制定出验验收准则则和验收收测试计计划,验验收测试试应提交交经用户户确认的的软件产产品;最后,将将软件、、硬件等等要素构构成一个个完整的的基于计计算机的的系统,,再进行行系统测测试,使使系统测测试与系系统定义义相对应应,即在在系统定定义阶段段就应制制定系统统测试计计划。14.1.2软软件件测试的的步骤图14--1-2软软件工程程的开发发与测试试的关系系系统工程程需求分析析概要设计计设计、编编码单元测试试集成测试试验收测试试系统测试试14.1.3测测试试阶段的的信息流流图14--1-3测测试阶段段的信息息流测试评价排错可靠性模型软件配置置测试配置置测试结果果错误错误统计计预期结果果正确的程程序可靠性预预测14.1.3测测试试阶段的的信息流流测试的输输入流有有软件配配置和测测试配置置。软件配置置由需求求规格说说明、设设计说明明、源代代码等组组成;测试配置置包括测测试计划划、测试试用例((其中包包括预期期的结果果)、测测试工具具等组成成。测试结果果评价经常发现现严重的的错误并并需要修修改软件件,则软软件的质质量和可可靠性一一定不高高,需要要进一步步测试;;如果测试试所发现现的错误误不多且且易于改改正,软软件功能能看起来来也较完完善,则则需考虑虑两种可可能:1)软件件质量和和可靠性性确实令令人满意意;2)测试试不全面面,很可可能还潜潜伏着严严重错误误;如果测试试过程没没有发现现任何错错误,则则很有可可能是测测试配置置不合理理。14.1.4软软件件测试的的常用方方法1.静态态测试静态测试试是采用用人工检检测和计计算机辅辅助静态态分析的的方法对对程序进进行检测测。人工检测测是指靠靠人工走走查程序序或评审审软件。。这种走走查与评评审主要要针对编编码的质质量和软软件开发发各个阶阶段的文文档,特特别是总总体设计计和详细细设计阶阶段的错错误。能能发现30%~~70%%的逻辑辑设计和和编码错错误。计算机辅辅助静态态分析是是指利用用静态分分析软件件工具对对程序进进行静态态分析,,主要检检测变量量是否用用错、参参数是否否匹配、、循环嵌嵌套是否否有错、、是否有有死循环环和永远远执行不不到的死死代码等等等。同同时,它它还可对对程序的的特性进进行分析析。14.1.4软软件件测试的的常用方方法2.动态态测试动态测试试是指事事先设计计好一组组测试用用例,然然后通过过运行程程序来发发现错误误。动态测试试有两种种测试方方法:黑盒测试试;白盒测试试。14.1.4软软件件测试的的常用方方法黑盒测试试,又称称为功能能测试———把被被测的程程序模块块看成一一个黑匣匣子,即即完全不不考虑程程序的内内部结构构和处理理过程,,测试仅仅在程序序的接口口上进行行。白盒测试试——把把被测的的程序看看成一个个透明的的白匣子子,即完完全了解解程序的的内部结结构和详详细的处处理过程程,测试试是在程程序的内内部结构构上进行行。即要要求针对对每一条条逻辑路路径都要要设计测测试用例例,检查查每一个个分支和和每一次次循环的的情况。。穷举测试试是不现现实的。。如上图图,设循循环体应应执行30次,,循环体体中有4个独立立的分支支,则最最多有430≈1018个逻辑路路径,假假设每运运行一个个测试用用例平均均花费1毫秒,,则需花花费3千千多万年年。一般般选用少少量最有有效的测测试用例例,以便便覆盖每每一个条条件、每每一个路路径和每每一个语语句,从从而以最最少的代代价发现现尽可能能多的错错误。开始结束14.1.5软软件件测试中中常见的的错误类类型按照错误误的影响响和造成成的后果果进行分分类,可可分为::较小错错误,中中等错误误,较严严重错误误,严重重错误,,非常严严重的错错误,最最严重的的错误。。按照软件件生存周周期各个个阶段分分类,可可分为::问题定定义错误误、需求求分析规规格说明明错误、、设计错错误、编编码错误误等等。。这里重点点介绍一一种按照照错误的的性质和和范围进进行分类类的方法法,可以以将错误误分为如如下几类类:按照错误误的性质质和范围围进行分分类1.功能能错误①需求规规格说明明错误。。主要是是指其中中有错误误、多余余或遗漏漏的功能能,有二二义性或或自相矛矛盾。②设计实实现错误误。设计计或实现现的功能能不是规规格说明明或用户户所要求求的功能能。按照错误误的性质质和范围围进行分分类2.系统统错误①外部接接口错误误。如与与打印机机的接口口错误。。②内部接接口错误误。指各各程序模模块间的的联系存存在错误误。如输输入/输输出、数数据保护护、子程程序访问问等。③硬件结结构错误误。如错错误地理理解I/O指令、中中断处理理、设备备启动和和初始化化等而引引起的错错误。④软件结结构错误误。由于于软件结结构不合合理或不不清晰所所引起的的错误。。往往在在系统满满载时才才能发现现。⑤操作系系统错误误。该类类错误是是由于不不了解操操作系统统而引起起的,操操作系统统本身也也有错误误。⑥控制与与顺序错错误。包包括事件件的时间间顺序不不正确、、等待一一个不可可能发生生的事件件等等。。⑦资源管管理错误误。既资资源使用用不当。。资源死死锁等。。按照错误误的性质质和范围围进行分分类3.加工工错误((算法错错误)①计算与与操作错错误。指指计算、、函数求求值和一一般操作作过程中中的错误误。②初始化化错误。。如忘记记了初始始化工作作区、数数据区,,错误地地对循环环变量赋赋初值,,不正确确的初始始化等等等。③局部控控制和次次序错误误。如遗遗漏路径径、不可可达到的的代码段段、循环环嵌套或或终止条条件不正正确、死死循环等等等。④逻辑错错误。如如多分支支、判断断条件不不正确等等。按照错误误的性质质和范围围进行分分类4.数据据错误①动态数数据错误误。②静态数数据错误误。静态态数据指指直接或或间接地地出现在在程序或或数据库库中的数数据,其其内容和和格式都都是固定定的。因因此在内内容或格格式上都都可能存存在错误误。③数据内内容错误误。是指指由于内内容被破破坏或被被错误地地解释而而造成的的错误。。④数据结结构错误误。包括括数据结结构说明明错误和和数据结结构使用用错误。。⑤数据属属性错误误。数据据属性是是指数据据内容的的含义或或语义,,如整数数、字符符等。数数据属性性错误是是指对数数据属性性的错误误解释和和错误使使用而导导致的错错误。按照错误误的性质质和范围围进行分分类5.代码码错误代码错误误主要包包括语法法错误、、键入错错误、对对语句的的理解错错误等。。例如,Myers(1976)指出,美美国第一一个去金金星的太太空任务务的失败败是由于于在一个个Fortrando循环中缺缺少一个个逗号。。14.2软软件测试试技术14.2.1白白盒盒测试白盒测试试的原则则是:①保证程程序中每每一独立立的路径径至少执执行一次次;②保证所所有判定定的每一一个分支支至少执执行一次次;③保证每每个判定定表达式式中每个个条件的的所有可可能结果果至少出出现一次次;④保证每每一循环环都在边边界条件件和一般般条件至至少各执执行一次次;⑤验证所所有内部部数据结结构的有有效性。。几种典型型的白盒盒测试技技术1.逻辑辑覆盖逻辑覆盖盖是指设设计测试试用例对对程序的的内部分分支逻辑辑结构进进行部分分或全部部覆盖的的技术。。1)语句句覆盖2)判定定覆盖3)条件件覆盖4)判定定/条件件覆盖5)条件件组合覆覆盖6)路径径覆盖逻辑覆盖盖1)语句句覆盖——使程程序中的的每个语语句至少少执行一一次。令x=2,,y=0,z==4作为测试试数据,,程序执执行路径径为abcde,使语句段段1和2各执行行一次,,实现了了语句覆覆盖。它它不能检检测所有有判定条条件的错错误。比比如,错错把z>1写成了z<1,,则上述测测试用例例就无法法检测出出来了。。(x>1)AND((y==0)(x=2)OR((z>1)语句段1语句段2开始结束TTFFabcde2)判定定覆盖———分支支覆盖判定覆盖盖是指设设计足够够多的测测试用例例,使每每个判定定的每种种可能结结果都至至少出现现一次,,也就是是使每个个判定的的每个分分支都至至少执行行一次。。可以设计计如下两两组数据据以满足足判定覆覆盖:x=3,,y=0,z==1(通过路径径abce);x=2,,y=1,z==2(通过路径径acde)。判定覆盖盖必然满满足语句句覆盖。。覆盖程程度仍然然不高。。比如,,错把z>1写成了z<1,,则上述测测试用例例仍无法法检测出出来。因因为它只只覆盖了了全部路路径的一一半。判判定覆盖盖可以推推广到多多分支情情况。(x>1)AND(y=0)(x=2)OR(z>1)语句段1语句段2开始结束TTFFabcde3)条件件覆盖条件覆盖盖是指设设计足够够的测试试用例,,使每个个判定表表达式中中的每个个条件的的每种可可能值都都至少出出现一次次。如图,共共有4个个条件::x>1,y=0,x=2,z>1。条件覆盖盖要求设设计测试试用例,,覆盖第第一个判判定表达达式的x>1,y==0,x≤≤1,y≠≠0等各种结结果,并并覆盖第第二个判判定表达达式的x=2,z>1,x≠2,z≤1等各种结结果。(x>1)AND((y==0)(x=2)OR((z>1)语句段1语句段2开始结束TTFFabcde3)条件件覆盖设计如下下两组测测试用例例,可以以满足条条件覆盖盖的标准准:x=2,,y=0,z==3(覆盖x>1,,y=0,x==2,z>1,,通过路径径abcde);x=1,,y=1,z==1(覆盖x≤1,,y≠0,x≠≠2,z≤1,,通过路径径ace))。(x>1)AND((y==0)(x=2)OR((z>1)语句段1语句段2开始结束TTFFabcde3)条件件覆盖但是,如如果设计计如下一一组测试试用例::x=1,,y=0,z==3(覆盖x≤1,,y=0,x≠≠2,z>1,,通过路径径acde);x=2,,y=1,z==1(覆盖x>1,,y≠0,x==2,z≤1,,通过路径径ace))。虽满足条条件覆盖盖,但不不满足语语句覆盖盖和判定定覆盖。。(x>1)AND(y=0)(x=2)OR(z>1)语句段1语句段2开始结束TTFFabcde4)判定定/条件件覆盖它是指设设计足够够的测试试用例,,使得判判定表达达式中的的每个条条件都取取到所有有可能的的值(即即满足条条件覆盖盖),并并使每个个判定表表达式也也都取到到所有可可能的判判定结果果(即满满足判定定覆盖))。4)判定定/条件件覆盖x=2,,y=0,z==3(覆盖x>1,,y=0,x==2,z>1,,通过路径径abcde);x=1,,y=1,z==1(覆盖x≤1,,y≠0,x≠≠2,z≤1,,通过路径径ace))。(x>1)AND(y=0)(x=2)OR(z>1)语句段1语句段2开始结束TTFFabcde5)条件件组合覆覆盖条件组合合覆盖是是指设计计足够的的测试用用例,使使得每个个判定表表达式中中条件的的各种可可能值的的组合都都至少出出现一次次。这是是一种较较强的逻逻辑覆盖盖。如图,两两个判定定表达式式中含有有4个条条件,共共有8种种组合::①x>1,,y=0;②②x>1,y≠≠0;③x≤1,y==0;④④x≤≤1,y≠0;;⑤x=2,z>>1;⑥⑥x=2,,z≤1;⑦x≠2,z>>1;⑧⑧x≠2,z≤≤1。(x>1)AND(y=0)(x=2)OR(z>1)语句段1语句段2开始结束TTFFabcdex=2,,y=0,z==3;覆盖条件件组合①①和⑤,,通过路路径abcde;x=2,,y=1,z==1;覆盖条件件组合②②和⑥,,通过路路径acde;x=0,,y=0,z==3;覆盖条件件组合③③和⑦,,通过路路径acde;x=1,,y=1,z==1;覆盖条件件组合④④和⑧,,通过路路径ace。。但未通过过路径abce。(x>1)AND(y=0)(x=2)OR(z>1)语句段1语句段2开始结束TTFFabcde6)路径径覆盖路径覆盖盖是指设设计足够够的测试试用例,,以覆盖盖被测程程序中所所有可能能的路径径。如图,共共有4条条路径,,设计以以下4组组测试用用例,就就可以覆覆盖这4条路径径:x=2,,y=0,z==3;覆盖路径径abcdex=2,,y=1,z==1;覆盖路径径acdex=1,,y=1,z==1;覆盖路径径acex=3,,y=0,z==1;覆盖路径径abce(x>1)AND(y=0)(x=2)OR(z>1)语句段1语句段2开始结束TTFFabcde没有覆盖盖条件组组合③和和⑦③x≤1,,y=0⑦x≠2,z>>1实际测试试在实际测测试时,,为了达达到充分分测试的的目的,,一般以以条件组组合覆盖盖为主设设计测试试用例,,然后再再补充部部分测试试用例,,以便实实现路径径覆盖。。课程名称称:软件件工程第第23讲班级级:日期期:教室室:教学题目目:14.2软软件测测试技术术14.2.1白白盒测测试14.2.2黑黑盒测测试教学目的的:掌握握白盒、、黑盒测测试的概概念和测测试方法步骤。。教学重点点:基本本路径测测试、黑黑盒测试试技术教学难点点:基本本路径测测试。教具具:多媒媒体教室室、电子子教案作业业:14.2.1白白盒盒测试2.基本本路径测测试其主要思思想是根根据软件件详细设设计的过过程性描描述或源源代码中中的控制制流程求求出程序序的环形形复杂性性度量,,然后用用此度量量确定程程序的基基本路径径集合,,并由此此导出一一组测试试用例来来覆盖该该集合中中的每一一个独立立的路径径,从而而可以保保证每个个语句至至少执行行一次。。2.基本本路径测测试【例14.1】】试用基基本路径径测试法法对如下下的PDL描述或如如图14-2--2所示示的程序序流程图图设计测测试用例例。该例例子描述述了最多多输入50个值值(以––1作为为输入结结束标志志),计计算其中中有效的的学生分分数的个个数、总总分数和和平均值值。PROCEDUREaverageINTERFACERETURNSaverage,sum,n1;**n1为为有效成成绩的个个数。**INTERFACEACCEPTSscore;;TYPEscore[1,,50]]ISSCALARARRAY;TYPEaverage,,n1,,n2,,sumISSCALAR;**n2为为输入值值的个数数。*TYPEiISINTEGER;i=1;n1=n2=0;sum=0;DOWHILE((score[[i]]<>>–1)AND((n2<<50))n2加加1;;IF((score[[i]]>==0)AND((score[[i]]<==100)THENn1加加1;;sum==sum++score[i]];ENDIF;;i加1;ENDDO;;IFn1>0THENaverage=sum/n1;ELSEaverage=––1;ENDIF;;ENDaverage图14--2-2过过程average的程序流流程图开始i=1,n1=n2=0,,sum=0Score[i]]<>--1ANDn2<<50n2=n2+1n1=n1+1,sum=sum++score[[i]Score[i]]>0ANDscore[i]]<100i=i++1n1>0average=sum/n1average=––1返回FFFTTT12和345和6789101112【例14.1】】解:可按按如下步步骤设计计测试用用例:步骤1::根据详详细设计计或代码码导出过过程average的流图。。123456789111012R1R2R3R4R5R6【例14.1】】步骤2::据流图图确定环环形复杂杂性度量量V(G)):1)V((G)==E––N++2==16––12+2==6;;其中E为流图中中的边数数,N为结点数数;2)V(G))=6(个区域));3)V(G))=P+1==5++1=6;;其中P为谓词结结点的个个数。在在流图中中,结点点2、3、5、、6、9是谓词词结点。。【例14.1】】步骤3::确定基基本路径径集合((即独立立路径集集合)。。一条独独立路径径是指,,和其他他的独立立路径相相比,至至少引入入一个新新处理语语句或一一个新判判断的程程序通路路。V(G))值正好等等于该程程序的独独立路径径的条数数。于是是可确定定6条独独立的路路径:路径1::1—2—…——2—9—10—12路径2::1—2—9——11——12路径3::1—2—3——9—10—12路径4::1—2—3——4—5—8——2…路径5::1—2—3——4—5—6——8—2…路径6::1—2—3——4—5—6——7—8—2……【例14.1】】步骤4::为每一一条独立立路径各各设计一一组测试试用例,,以便强强迫程序序沿着该该路径至至少执行行一次。。1)路径径1的测测试用例例:score[k]=有效分数数值,当当k<i;;score[i]]=––1,,2≤i≤50;期望结果果:根据据输入的的有效分分数算出出正确的的分数个个数n1、总分sum和平均分分average。2)路径2的的测试用用例:score[1]]=––1;;期望的结结果:average=––1,其他量保保持初值值。【例14.1】】3)路径径3的测测试用例例:输入多于于50个个有效分分数,即即试图处处理51个分数数,要求求前51个为有有效分数数;期望结果果:n1=50、且算出正正确的总总分和平平均分。。4)路径径4的测测试用例例:score[i]]=有效分数数,当当i<50;score[k]]<0,,k<i;;期望结果果:根据据输入的的有效分分数算出出正确的的分数个个数n1、总分sum和平均分分average。【例14.1】】5)路径径5的测测试用例例:score[i]]=有效分数数,当当i<50;score[k]]>100,,k<i;;期望结果果:根据据输入的的有效分分数算出出正确的的分数个个数n1、总分sum和平均分分average。6)路径6的的测试用用例:score[i]]=有效分数数,当当i<50;期望结果果:根据据输入的的有效分分数算出出正确的的分数个个数n1、总分sum和平均分分average。3.循环环测试1)对于于最多为为n次的单循循环,可可设计测测试用例例实现下下列测试试:①跳过循循环,即即一次也也不执行行;②仅循环环1次;;③循环2次;④循环m次,m<n;;⑤分别循环环n–1次,n次,n+1次。2)对于于嵌套循循环的测测试:①从最内内层循环环开始测测试,此此时外层层循环都都取最小小值,对对内层进进行单循循环的测测试;②向外退退一层进进行测试试,此时时其内层层循环取取一些典典型值,,其外层层循环仍仍取最小小值;③继续向向外层扩扩展,直直至测试试完成。。14.2.2黑黑盒盒测试主要是测测试软件件是否满满足功能能需求。。黑盒测试试主要测测试的错错误类型型有:①不正确确或遗漏漏的功能能;②接口错错误;③③性能能错误;;④数据结结构或外外部数据据访问错错误;⑤初始化化或终止止条件错错误等等等。黑盒测试试设计测测试用例例的方法法:等价类的的划分、、边界值值分析、、错误推测测、组合合数据测测试等。。1.等价价类划分分等价类划划分的思思想是将将输入数数据按有有效的((合理的的)和无无效的((不合理理的)划划分成若若干个等等价类,,认为测测试等价价类中的的一个代代表值的的结果就就等于对对该类其其他值的的测试。。利用等等价类划划分的测测试步骤骤如下::1)划分分等价类类从程序的的功能说说明中找找出每个个输入条条件,然然后将其其划分成成若干个个有效和和无效的的等价类类。下面面给出等等价类划划分的几几条经验验性原则则供参考考:等价类划划分的几几条经验验性原则则①如果规规定了输输入值的的范围,,则可划划分出一一个有效效的等价价类(输输入值在在此范围围内)和和两个无无效的等等价类((输入值值小于最最小值或或大于最最大值))。②如果规规定了数数据输入入的个数数,则可可划分出出一个有有效的等等价类((输入值值的个数数符合规规定)和和两个无无效的等等价类((输入值值的个数数少于或或多于规规定个数数)。③如果规规定了输输入数据据的一组组值,而而且程序序对不同同的输入入值进行行不同的的处理,,则每个个允许的的输入值值是一个个有效的的等价类类,此外外还有一一个无效效的等价价类(规规定的这这一组值值以外的的值)。。等价类划划分的几几条经验验性原则则④如果规规定了输输入数据据必须遵遵循的规规则,则则可划分分出一个个有效的的等价类类(符合合规则))和若干干个无效效的等价价类(从从不同的的角度违违反规则则)。⑤如果输输入条件件规定了了一个集集合,则则可划分分出一个个有效的的等价类类(此集集合)和和一个无无效的等等价类((此集合合的补集集)。1.等价价类划分分2)设计计测试用用例①等价类类划分应应列表,,并为每每一个等等价类编编号。②设计一一个有效效等价类类的测试试用例,,使其尽尽可能多多地覆盖盖尚未被被覆盖过过的有效效等价类类。如此此重复,,直到所所有有效效等价类类都被覆覆盖为止止。③设计一一个测试试用例,,仅覆盖盖一个无无效等价价类,如如此重复复,直到到所有无无效等价价类都被被覆盖为为止。2)设计计测试用用例【例14.1】】设有一一个档案案管理系系统,要要求用户户输入以以年月表表示的日日期。假假设日期期限定在在1990年1月~2003年12月,并并规定日日期由6位数字字字符组组成,前前4位表表示年,,后2位位表示月月。现用用等价类类划分法法设计测测试用例例,来测测试程序序的“日日期检查查功能””。【例14.1】】1)划分分等价类类并编号号表14--1等价价类划分分的结果果输入等价类有效等价类无效等价类日期的类型及长度①6位数字字符②有非数字字符③少于6位数字字符④多于6位数字字符年份范围⑤在1990~2003之间⑥小于1990⑦大于2003月份范围⑧在01~12之间⑨等于00⑩大于12【例14.1】】2)设计计测试用用例,以以便覆盖盖所有的的有效等等价类在表14-1中中列出了了3个有有效等价价类,编编号分别别为①、、⑤、⑧⑧,设计计的测试试用例如如下:测试数据据期期望望结果覆覆盖的有有效等价价类200211输输入有效效①①、、⑤、⑧⑧【例14.1】】3)为每每一个无无效等价价类设计计一个测测试用例例,设计结果果如下::测试数据据期期望结结果覆覆盖的的无效等等价类95June无效输入入②②20036无无效效输入③③2001006无无效输入入④④198912无无效输输入⑥⑥200401无无效输输入⑦⑦200100无无效输输入⑨⑨200113无无效输输入⑩⑩2.边界界值分析析边界值分分析(boundaryvalueanalysis,BVA))是指设计计测试用用例,使使程序在在输入或或输出的的边界值值或者边边界值左左右的值值执行。。边界值分分析方法法可以单单独设计计测试用用例,也也可以作作为等价价类划分分方法的的补充,,即在各各个等价价类中主主要是选选择边界界上及其其左右的的值。例例如例14.1中对月月份范围围的测试试就可以以选择00、01、02、11、12、13等数数据作为为测试用用例。边界值分分析方法法设计测测试用例例的经验验性原则则1)如果果输入条条件指定定了范围围[a,b]],则a、b以及紧挨挨a、b左右的各各一个值值都应作作为测试试用例。。比如,,学生成成绩为[[0,100]],应取取-1、、0、1、99、100、101共共6个值值作为测测试用例例。2)如果果输入条条件指定定了输入入数据的的个数范范围,则则按最大大、最小小个数及及其左右右的个数数各设计计一个测测试用例例。比如如,一个个输入文文件应包包括1~~255个记录录,则应应分别设设计输入入0个、、1个、、2个、、254个、255个个、256个记记录的测测试用例例。3)将规规则1))和2))应用于于输出条条件,即即设计测测试用例例使输出出值达到到边界值值及其左左右的值值。3.错误误推测错误推测测法的基基本思想想是:程程序测试试员通过过已经掌掌握的测测试理论论和实际际测试中中积累的的经验,,推测程程序在哪哪些情况况下可能能发生错错误,并并将可能能发生错错误的情情况列出出,然后后为每一一可能发发生错误误的情况况各设计计一个测测试用例例。3.错误误推测例如,测测试一个个对线性性表(比比如数组组)进行行排序的的程序,,可推测测列出以以下几项项需要特特别测试试的情况况:1)输入入的线性性表为空空表;2)表中中只含有有一个元元素;3)输入入表中所所有元素素已排好好序;4)输入入表已按按逆序排排好;5)输入入表中部部分或全全部元素素相同。。于是,可可以针对对以上列列出的每每一种情情况各设设计一个个测试用用例。4.组合合数据测测试实践表明明,在单单个测试试用例没没有测试试出错误误的情况况下,采采用测试试数据的的某种组组合却可可能检测测出程序序中隐藏藏很深的的错误。。组合数据据测试法法可以采采用的有有效工具具有判定定表、判判定树等等。以判定表表为例,,即列出出输入数数据的各各种组合合情况和和程序相相应的动动作、可可能的输输出结果果之间的的对应关关系,然然后为判判定表的的每一列列至少设设计一个个测试用用例。课程名称称:软件件工程第第24讲班级级:日期期:教室室:教学题目目:14.3软软件测试试过程14..4调调试14.5测测试工具具教学目的的:掌握握软件的的测试过过程、调调试的概概念和策略,了了解自动动测试工工具和调调试工具具。教学重点点:基本本路径测测试、黑黑盒测试试技术教学难点点:基本本路径测测试。教具具:多媒媒体教室室、电子子教案作业业:14.3软软件测试试过程从宏观的的角度讲讲,软件件测试过过程一般般可划分分为单元元测试、、集成测测试、验验收测试试和系统统测试等等几个主主要测试试阶段。。对于每一一个测试试阶段,,都应包包含制定定测试计计划、设设计测试试用例、、测试实实施和测测试结果果的收集集评估等等。其中,测测试计划划应包括括具体的的测试步步骤、工工作量、、进度和和资源等等。在测测试的各各个阶段段,应适适宜地选选择黑盒盒测试和和白盒测测试方法法,由开开发人员员和一个个独立的的测试小小组单独独、分别别或共同同完成测测试任务务,必要要时还应应有用户户参加。。14.3.1单单元元测试单元测试试的测试试对象———程序序模块。。单元测试试的依据据——根根据详细细设计的的描述制定的单单元测试试计划。。单元测试试——多多采用白白盒测试试技术。。单元测试试——可可以并行行进行。。14.3.1单单元元测试1.单元元测试的的任务1)模块块接口测测试2)模块块局部数数据结构构的测试试3)模块块中所有有独立路路径的测测试4)模块块中各条条错误处处理路径径的测试试5)模块块边界条条件的测测试1)模块块接口测测试①输入的的实参与与本模块块的形参参在个数数、类型型、顺序序、量纲纲上是否否一致;;②调用其其他模块块时所给给实际参参数与被被调模块块的形式式参数在在个数、、类型、、顺序、、量纲上上是否一一致;③调用预预定义函函数时所所用参数数的个数数、类型型、顺序序、返回回值的类类型等是是否正确确;④是否存存在与当当前入口口点无关关的参数数引用;;⑤是否修修改了只只读型参参数;1)模块块接口测测试⑥各个模模块对全全局变量量的定义义和引用用是否保保持一致致;⑦是否把把某些约约束作为为参数传传递。⑧如果模模块内包包括外部部输入输输出,还还应测试试文件属属性、文文件打开开/关闭闭语句、、格式说说明、输输入输出出语句、、缓冲区区大小与与记录长长度是否否匹配、、是否处处理了文文件尾、、输出信信息中是是否存在在文字错错误等方方面的内内容。2)模块块局部数数据结构构的测试试主要的测测试内容容有:①不适合合或不相相容的类类型说明明;②变量名名不正确确(拼写写或截断断错误等等);③变量无无初值或或初始化化、缺省省值有错错;④出现上上溢出、、下溢出出、地址址异常等等。3)模块块中所有有独立路路径的测测试单元测试试旨在找找出如下下错误::①计算中中常见的的错误,,有:运运算符优优先级错错误、混混合运算算类型匹匹配错误误、变量量初值错错、达不不到精度度、表达达式不正正确等。。②不正确确的比较较判断和和不恰当当的控制制流常见见的错误误,有::被比较较的对象象的类型型不匹配配、错误误地使用用逻辑运运算符及及其优先先级、计计算误差差引起的的判断错错误、循循环终止止条件不不合适、、错误地地修改了了循环变变量、迭迭代发散散时不能能退出循循环等。。4)模块块中各条条错误处处理路径径的测试试我们希望望程序模模块具有有较强的的容错能能力,这这就需要要在设计计时能预预见各种种出错条条件,并并预先设设计好各各种出错错处理通通路,以以便在用用户出现现错误时时系统能能给出恰恰当的提提示而不不使系统统失效。。出错处理理路径测测试主要要测试的的错误有有:①异常处处理不当当;②在程序序自定义义的出错错处理程程序段运运行之前前系统已已介入;;③显示的的出错信信息难以以理解或或未能提提供足够够的错误误定位信信息;④显示的的错误与与实际发发生的错错误不符符等。5)模块块边界条条件的测测试模块边界界条件的的测试是是单元测测试中最最后、也也是最重重要的一一项测试试任务,,因为程程序最容容易在边边界上出出错。可可以采用用边界值值分析技技术针对对边界值值及其左左、右值值设计测测试用例例,很有有可能检检测出新新的错误误。2.单元元测试的的步骤通常,单单元测试试在编码码阶段进进行。在在源程序序代码编编制完成成并经过过编译检检查和评评审后,,就可以以开始进进行单元元测试。。测试用用例的设设计应与与评审工工作相结结合,根根据测试试计划和和详细设设计信息息设计测测试数据据,并应应给出对对应的期期望结果果。测试时需需要为被被测模块块编制::一个驱动动模块((drivermodule)———用来模拟拟被测模模块的上上级调用用模块,,用它接接收测试试数据,,并传送送给被测测模块,,接收测测试结果果并输出出。若干个桩桩模块((stubmodule)———也称为存存根模块块,用来来代替被被测模块块所调用用的子模模块。其其作用是是为被测测模块提提供所需需要的信信息,因因此,越越简单越越好。图14--3-1软软件层次次结构图图图图14--3-2模模块A的单元测测试环境境测试软件件(指驱驱动模块块和桩模模块)并并不作为为软件产产品的一一部分提提交给用用户。有些模块块用单元元测试的的方法不不能进行行充分的的测试,,可在集集成测试试的过程程中完成成详尽的的测试。。提高模块块内聚度度可简化化单元测测试过程程。MABCDEF驱动模块A桩模块1桩模块2桩模块3测试用例测试结果14.3.2集集成成测试集成测试试—将将软件件组装成成系统的的一种测测试技术术。因此此,又称称为组装装测试或或综合测测试。集成测试试旨在发发现与接接口有关关的错误误。这些些错误包包括:①数据通通过接口口时会丢丢失;②一个模模块的功功能对另另一个模模块产生生了不利利影响;;③几个子子功能组组合起来来没有实实现主功功能;④全局数数据结构构出现错错误;⑤误差的的不断积积累达到到不能接接受的程程度。集成测试试有两种种集成方方式:非增量集集成方式式;增量集成成方式。。1.非增增量集成成方式非增量集集成方式式是将经经过单元元测试的的所有模模块一次次性全部部组装起起来,然然后进行行整体测测试,最最后得到到所要求求的软件件系统。。这种集成成方式容容易出现现混乱,,开始可可能遇到到一大堆堆错误,,错误定定位非常常困难,,新旧错错误交织织在一起起,会使使测试变变得更加加困难。。因此,,一般不不应采用用这种集集成方式式。2.增量量集成方方式可分为自自顶向下下集成和和自底向向上集成成两种方方法。1)自顶顶向下集集成自顶向下下集成方方式是从从主控模模块开始始,按照照软件的的控制层层次结构构,以深深度优先先或广度度优先的的策略,,逐步把把各个模模块组装装在一起起。自顶向下下集成测测试的具具体步骤骤①以主控控模块作作为驱动动模块,,其直接接调用的的下属模模块都用用“桩模模块”代代替;②依据所所选用的的集成策策略(深深度优先先或广度度优先))所规定定的次序序,每次次只用一一个实际际模块替替代一个个对应的的桩模块块;③每结合合进一个个模块立立即测试试一遍;;④为了检检测加入入新模块块是否引引入了新新的错误误,每次次都需要要进行回回归测试试(即部部分或全全部地重重复以前前做过的的测试))。重复执行行步骤②②、③、、④,每每重复一一次,增增加一个个模块,,直至构构造起整整个软件件结构为为止。图14--3-3被被测软件件系统结构构图深度优先先策略::①以以M1作为驱动动模块,,首先将将模块M2加入其中中,此时时模块M3、M4、M5、M6分别以桩桩模块S3、S4、S5、S6代替,于于是对由由M1、M2、S3、S4、S5、S6组成的子子系统测测试一遍遍;M1M2M4M5M6M7M8M3M1M2S4S3S5S6深度优先先策略::②用用M5代替S5,并将M8用桩模块块S8代替,对对由M1、M2、M5、S3、S4、S8、S6组成的子子系统再再测试一一遍;M1M2M4M5M6M7M8M3M1M2S4S3M5S6S8深度优先先策略::③用用M8代替S8,对由M1、M2、M5、M8、、S3、S4、、S6组成的子子系统再再测试一一遍;M1M2M4M5M6M7M8M3M1M2S4S3M5S6M8深度优先先策略::④用用M6代替S6,对由M1、M2、M5、M8、、M6、S3、、S4组成的子子系统再再测试一一遍;M1M2M4M5M6M7M8M3M1M2S4S3M5M6M8深度优先先策略::⑤用用M3代替S3,并以S7代替M7,对由M1、M2、M5、M8、、M6、M3、、S7、、S4组成的子子系统再再测试一一遍;M1M2M4M5M6M7M8M3M1M2S4M3M5M6M8S7深度优先先策略::⑥用用M7代替S7,对由M1、M2、M5、M8、、M6、M3、、M7、、S4组成的子子系统再再测试一一遍;M1M2M4M5M6M7M8M3M1M2S4M3M5M6M8M7深度优先先策略::⑦用用M4代替S4,对由M1、M2、M5、M8、、M6、M3、、M7、、M4组成的子子系统再再测试一一遍;至至此,,整个系系统测试试完。M1M2M4M5M6M7M8M3M1M2M4M3M5M6M8M7广度优先先策略广度优先先策略———沿控控制层次次结构水水平地向向下移动动,按一一层一层层的顺序序将模块块一个个个地集成成起来。。如图的的集成的的顺序为为M1、M2、M3、M4、M5、M6、M7、M8,在集成的的过程中中也需桩桩模块的的配合。。M1M2M4M5M6M7M8M3自顶向下下集成的的优缺点点自顶向下下集成的的特点是是不需要要驱动模模块,但但需要大大量的桩桩模块。。优点是能能够尽早早地验证证程序的的主要控控制和判判断机制制,可以以较早发发现此类类错误,,从而减减少以后后的返工工。缺点是在在测试较较高层模模块时,,低层模模块采用用较简单单的桩模模块来代代替,不不能反映映实际情情况,测测试可能能不充分分。2)自底底向上集集成即从程序序结构的的最底层层模块开开始组装装和测试试。这种种测试需需要一定定数量的的驱动模模块,而而不需要要桩模块块。自底向上上集成测测试的具具体步骤骤:①把低层层模块组组织成实实现某个个特定的的软件子子功能的的模块群群(modulecluster);;②为每一个个模块群群开发一一个驱动动模块,,控制测测试数据据的输入入和测试试结果的的输出;;③对每个个模块群群进行测测试;④去掉测测试用的的驱动模模块,用用较高层层模块将将几个模模块群组组成新的的更大的的模块群群。上述的②②、③、、④步重重复执行行,直至至整个程程序构造造完毕。。自底向上上集成举例图14--3-4自自底向上上集成M1M2M3模块群1模块群2模块群3自底向上上集成举例图14--3-4自自底向上上集成M1M2M3D2D1D3模块群1模块群2模块群3自底向上上集成优优缺点优点:①只需设设计驱动动模块,,不需要要设计桩桩模块,,测试用用例的设设计也相相对简单单。②由于涉涉及到复复杂算法法和直接接输入输输出的模模块最先先得到组组装和测测试,可可以在早早期解决决这些最最容易出出问题的的部分;;③自底向向上集成成可以实实施多个个模块并并行测试试。缺点:对高层控控制与判判断进行行测试的的时间较较晚,如如果到测测试的后后期才发发现整体体存在较较严重问问题,就就不得不不进行较较大的返返工,此此时代价价将是巨巨大的。。3)混合合式测试试及重点点测试自顶向下下和自底底向上两两种集成成测试方方法的优优缺点刚刚好相反反,可结结合起来来使用,,即对于于上层模模块采用用自顶向向下的方方法,而而对于下下层模块块采用自自底向上上的方法法,这样样不但可可以大大大减少了了开发驱驱动模块块和桩模模块的数数量,还还可以充充分发挥挥各自的的优点。。在集成测测试过程程中应对对关键模模块进行行重点测测试。关关键模块块是指具具有如下下一个或或多个特特征的模模块:①①对应多多条需求求;②具具有高层层控制功功能;③③复杂、、易出错错;④有有特殊性性能要求求。对关关键模块块应尽早早测试,,并应进进行反复复的回归归测试。。3.集成成测试文文档集成测试试文档即即测试说说明书((testspecifications)应给出集集成的总总体规划划和某些些特殊测测试的描描述。它它将作为为软件配配置的一一部分提提交给用用户。测测试说明明书的主主要内容容提纲如如下:测试说明明书的主主要内容容提纲1)测试试范围2)测试试计划A.测试的各各个阶段段和划分分模块群群情况B.进度安排排C.开销软件件(驱动动和桩模模块)D.环境和资资源测试说明明书的主主要内容容提纲3)各个个模块群群测试过过程的描描述,包包括:A.集成的顺顺序①用途②被测模模式B.模块群中中各模块块单元测测试的情情况①模块的的测试描描述②开销软软件描述述③期望的的结果测试说明明书的主主要内容容提纲C.测试环境境①特殊工工具和技技术②开销软软件的描描述D.测试用例例E.模块群的的期望结结果等4)实际际测试结结果5)参考考文献6)附录录。14.3.3验验收收测试又称为确确认测试试。确认认测试是是一种验验收形式式的测试试,主要要是检查查软件是是否满足足软件需需求规格格说明书书中的确确认标准准,即测测试软件件能否按按照合同同的要求求运行。。1.验收收测试的的实施验收测试试需要采采用一系系列的黑黑盒测试试来完成成。参加人员员有:专专门的测测试人员员,必须有用用户或客客户参加加。文档:需需求规格格说明书书、用户户手册等等,应事事先制定测试试计划,,确定测测试的种种类、测测试进度、设设计具体体的测试试用例。。软件验收收测试的的中心任任务是测测试软件件是否满满足合同同规定的的所有功功能和性性能,文文档资料料是否齐齐全,人人机界面面以及可可移植性性、兼容容性、可可维护性性、容错错能力等等方面是是否达到到了用户户的期望望。1.验收收测试的的实施经过验收收测试后后,其结结果可能能是以下下两种情情况之一一:1)功能能、性能能等各项项指标满满足需求求规格说明的要要求,用用户可以以接受;;2)功能能、性能能等各项项指标不不满足需需求规格说明的的全部要要求,用用户不能能接受。。对于第二二种结果果,应提提交一份份问题分分析报告告。2.软件件配置复复审软件配置置复审是是验收测测试的重重要环节节之一。。软件配配置复审审的任务务是审查查软件配配置(组组成程序序、所有有文档资资料、数数据结构构的所有有项目))的正确确性、完完整性和和一致性性,以便便确保软软件配置置齐全、、分类有有序,并并包括软软件维护护所必需需的细节节,从而而为以后后的软件件维护工工作奠定定了基础础。3.α、、β测试试要验证所所开发的的软件是是否真正正满足最最终用户户的要求求,就应应由用户户在其实实际工作作的环境境中进行行一系列列的“验验收测试试”。但一方面面用户进进行“验验收测试试”可可能导致致开发延延期,另另一方面面是一个个软件产产品不可可能由每每个用户户验收。。因此,,通常的的做法是是采用““α、β测试”的的方法。。1)α测测试所谓α测试,可可以是由由用户在在开发环环境下进进行的一一种测试试,也可可以是软软件公司司内部的的“用户户”在模模拟实际际操作环环境下进进行的一一种测试试。被测测试的是是即将面面市的软软件产品品的α版本。α测试是在在受控制制的环境境下进行行的测试试,其目目的是检检测软件件产品的的功能((Function)、、可使用性性(Usability))、可靠性((Reliability)、、性能(Performance)和支持((Support),即FURPS,特别是产产品的界界面和特特色。参加α测试的人人员是除除了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024甲乙双方关于2024年度小麦收购的居间合同
- 多媒体技术及应用知到智慧树章节测试课后答案2024年秋海南师范大学
- 河道水毁清理维护施工合同
- 咖啡店临时服务员合同模板
- 2025年度二零二五木坑果场承包经营与农业信息化建设合同3篇
- 海边度假别墅海滨住宿协议
- 设立分公司信息共享协议
- 美容院健身教练合同模板
- 2024铁路物流仓储配送合同范本3篇
- 2024正规餐饮企业员工劳动合同范本与食品安全管理协议3篇
- 2025年首都机场地服公司招聘笔试参考题库含答案解析
- 《廉政讲堂格言》课件
- 审计服务采购招标文件
- 2024年03月中国农业发展银行内蒙古分行校园招考拟招录人员笔试历年参考题库附带答案详解
- 空置房检查培训
- 浙江省绍兴市越城区2023-2024学年四年级上学期数学期末考试试卷
- 广东省广州市海珠区2023-2024学年九年级上学期期末英语试题(答案)
- ISO 56001-2024《创新管理体系-要求》专业解读与应用实践指导材料之8:“5领导作用-5.2创新方针”(雷泽佳编制-2025B0)
- 2023年新疆广播电视台招聘事业单位工作人员笔试真题
- 金科新未来大联考2025届高三12月质量检测语文试题(含答案解析)
- 烤烟科技员考试题答案
评论
0/150
提交评论