软件测试PPT课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第10章软件测试下页末页上页首页目录第10章软件测试2/130第10章软件测试10.1软件测试基础10.2白盒测试10.3黑盒测试10.4测试策略10.5面向对象测试10.6测试完成的标准10.7调试下页末页上页首页目录第10章软件测试3/130教学目的与要求⒈掌握软件测试的目的、基本原则、测试方法;⒉熟练掌握白盒测试、黑盒测试及测试用例的设计;⒊掌握单元测试、集成测试、确认测试、系统测试等测试策略;4.了解面向对象测试的基本内容;⒌理解测试完成标准;⒍掌握调试的概念及调试方法。下页末页上页首页目录第10章软件测试4/130教学重点⒈软件测试的目的、基本原则;⒉白盒测试、黑盒测试及测试用例的设计;⒊测试策略。教学难点⒈白盒测试、黑盒测试及测试用例的设计;⒉面向对象测试的基本内容。教学学时5学时下页末页上页首页目录第10章软件测试5/130教学方法采用多媒体课件+讲授法+启发式相结合教学教学参考文献⒈《软件工程导论(第五版)》,张海藩,清华大学出版社⒉《软件工程(第二版)》,齐治昌,高等教育出版社⒊《软件测试教程》,宫云战,机械工业出版社⒋《软件测试技术概论》,古乐,清华大学出版社⒌《软件性能测试与LoadRunner实战》,于涌,人民邮电出版社下页末页上页首页目录第10章软件测试6/13010.1软件测试基础一、软件测试的目的测试是一个为了发现错误而执行程序的过程一个好的测试用例是指很可能找到迄今为至尚未发现的错误的测试用例一个成功的测试是指揭示了迄今为至尚未发现的错误的测试根据这个测试目的,应该排除对测试的错误观点,设计合适的测试用例,用尽可能少的测试用例,来发现尽可能多的软件错误。下页末页上页首页目录第10章软件测试7/130有关软件测试的错误观点“软件测试是为了证明程序是正确的,即测试能发现程序中所有的错误”。事实上这是不可能的。要通过测试发现程序中的所有错误,就要穷举所有可能的输入数据。例:程序P有两个整型输入量X、Y,输出量为Z,在32位机上运行。所有的测试数据组(Xi,Yi)的数目为:232×232=264,1毫秒执行1次,共需5亿年。PXYZ下页末页上页首页目录第10章软件测试8/130“程序测试是证明程序正确地执行了预期的功能”。实际上,一个程序不仅要完成它所需完成的功能,而且不应完成它不该做的事。如不能把边长为0、0、0的三条边判断为等边三角形。下页末页上页首页目录第10章软件测试9/130二、软件测试的原则Davis提出了一组指导软件测试的基本原则:1.所有的测试都应可追溯到客户需求2.应在测试工作开始前的较长时间就进行测试计划3.Pareto原则:测试中发现的80%的错误可能来自于20%的程序代码4.测试应从“小规模”开始,逐步转向“大规模”5.穷举测试是不可能的6.为达到最有效的测试,应由独立的第三方来承担测试下页末页上页首页目录第10章软件测试10/130其他的测试原则:1.在设计测试用例时,应包括合理的输入条件和不合理的输入条件2.严格执行测试计划,排除测试的随意性3.应当对每一个测试结果做全面检查4.妥善保存测试计划、测试用例、出错统计和最终分析报告,为维护提供方便5.检查程序是否做了应做的事仅是成功的一半,另一半是检查程序是否做了不该做的事6.在规划测试时不要设想程序中不会查出错误下页末页上页首页目录第10章软件测试11/130三、软件测试方法软件测试方法1.静态分析方法指以人工的、非形式化的方法对程序进行分析和测试。主要形式:审查、评审和走查。静态分析动态测试下页末页上页首页目录第10章软件测试12/130评审(Review)评审是由若干开发人员、项目经理、测试人员、用户或领域专家等组成一个会审小组,通过阅读、讨论和争议,对工作制品进行静态分析的过程。类型:需求评审、设计评审和代码评审。•评审过程–小组负责人先把需求规格说明、设计说明或程序代码及有关要求、规范等分发给小组成员,作评审依据;–在充分阅读有关材料后召开评审会议,主要开发人员进行讲解,其他成员提出问题并展开讨论,审查是否存在错误;–评审小组形成产品评审的书面报告。下页末页上页首页目录第10章软件测试13/130走查(Walkthrough)走查是由设计人员或编程人员组成一个走查小组,通过阅读一段文档或代码,并进行提问和讨论,从而发现可能存在的缺陷、遗漏和矛盾的地方。–类型:设计走查、代码走查。•走查过程–与评审过程类似,即先把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会;–与评审的区别:评审通常是简单地读程序或对照错误检查表进行检查;走查则是按照所提交的测试用例,人工模仿计算机运行一遍,并记录跟踪情况。下页末页上页首页目录第10章软件测试14/130无论Y为何值,都不能够调用子程序。READYY0NX:=YX0YNY调用子程序ABCDE即执行ABC后,是不可能执行路径CDE的。走查时,还常使用以下分析方法:①调用图:从语义的角度考察程序的控制路线。下页末页上页首页目录第10章软件测试15/130②数据流分析图:检查分析变量的定义和引用情况。节点—表示单个语句。有向边—表示控制结构。d—定义r—引用u—未引用R:duuuuuS:uruuurY:uuddruR=0.5W=1/SY=A**WY=E*WZ=X+YC=Z*S123456只定义不用未定义引用连续定义下页末页上页首页目录第10章软件测试16/130审查(Inspection)检查是由一些经过严格训练的人员根据评估标准,对于开发过程中的产品或中间制品进行检查,发现其中存在的错误。–检查一般是按规定程序和时间计划进行的,参与者来自开发人员、测试人员、质量保证人员或用户,以3-7人组成小组。•检查过程–检查遵循一个严格的过程,人员经过培训,检查过程有评估标准;–检查过程包括计划、会议准备、会议召开、修改错误、问题跟踪等环节,目的是获得项目管理和质量评估的数据,并改进检查过程本身。下页末页上页首页目录第10章软件测试17/130•测试用例的设计是软件测试的关键所在•设计尽可能少的测试用例来发现尽可能多的错误•设计最有可能发现软件错误的测试用例,同时避免使用发现错误效果相同的测试用例•测试用例的设计方法大体可分为两类:白盒测试和黑盒测试。2.动态测试方法通过选择适当的测试用例,执行程序。下页末页上页首页目录第10章软件测试18/130•白盒测试(又称结构测试)把测试对象看作一个透明的盒子,测试人员根据程序内部的逻辑结构及有关信息设计测试用例,检查程序中所有逻辑路径是否都按预定的要求正确地工作。•白盒测试主要用于对模块的测试,包括:程序模块中的所有独立路径至少执行一次对所有逻辑判定的取值(“真”与“假”)都至少测试一次在上下边界及可操作范围内运行所有循环测试内部数据结构的有效性等下页末页上页首页目录第10章软件测试19/130•黑盒测试(又称功能测试)把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能需求。•黑盒测试可用于各种测试,它试图发现以下类型的错误:不正确或遗漏的功能接口错误,如输入/输出参数的个数、类型等数据结构错误或外部信息访问错误性能错误初始化和终止错误下页末页上页首页目录第10章软件测试20/13010.2白盒测试常用的白盒测试方法有:•逻辑覆盖测试•基本路径覆盖测试•数据流测试•循环测试下页末页上页首页目录第10章软件测试21/130逻辑覆盖测试语句覆盖判定覆盖条件覆盖判定-条件覆盖条件组合覆盖路径覆盖逻辑覆盖主要考察使用测试数据运行被测程序时对程序逻辑的覆盖程度。通常希望选择最少的测试用例来满足所需的覆盖标准。主要的覆盖标准有:下页末页上页首页目录第10章软件测试22/130例:对下列子程序进行测试Procedure(varA,B,X:real);beginif(A1)and(B=0)thenX:=X/A;if(A=2)or(X1)thenX:=X+1end;该子程序接受A、B、X的值,并将计算结果x的值返回给调用程序。与该子程序对应的流程图如下:下页末页上页首页目录第10章软件测试23/130入口s(A1)and(B=0)a(A=2)or(x1)c返回ebx=x/Aftdx=x+1ft下页末页上页首页目录第10章软件测试24/130语句覆盖语句覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个可执行语句都至少执行一次。欲使每个语句都执行一次,只需执行路径L1(sabcde)即可。测试用例如下:测试数据预期结果x=4,A=2,B=0x=3seacbdtffta:(A1)and(B=0)c:(A=2)or(x1)下页末页上页首页目录第10章软件测试25/130判定覆盖判定覆盖(也称分支覆盖)是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定的所有可能结果都至少执行一次(即判定的每个分支至少经过一次)判定覆盖将每个判定的所有可能结果都至少执行一次,所以,程序中的所有语句也必定都至少执行一次。因此,满足判定覆盖标准的测试用例也一定满足语句覆盖标准。下页末页上页首页目录第10章软件测试26/130欲使每个分支都执行一次,只需执行路径L3(sacde)和L4(sabce)即可。或者,执行路径L1(sabcde)和L2(sace).seacbdtffta:(A1)and(B=0)c:(A=2)or(x1)测试数据预期结果路径acx=1,A=2,B=1x=2sacdeftx=3,A=3,B=0x=1sabcetf下页末页上页首页目录第10章软件测试27/130条件覆盖条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定中的每个条件的所有可能结果都至少出现一次。下页末页上页首页目录第10章软件测试28/130判定a中各种条件的所有可能结果:A1,A≤1,B=0,B≠0。判定c中各种条件的所有可能结果:A=2,A≠2,x1,x≤1。seacbdtffta:(A1)and(B=0)c:(A=2)or(x1)测试数据预期结果路径覆盖的条件x=1,A=2,B=0x=1.5sabcdeA1,B=0,A=2,x=1x=2,A=1,B=1x=3sacdeA≤1,B≠0,B≠2,x1下页末页上页首页目录第10章软件测试29/130条件覆盖通常比判定覆盖强,但有时虽然每个条件的所有可能结果都出现过,但判定表达式的某些可能结果并未出现。上面的二个测试用例满足了条件覆盖标准,但判定c为“假”的结果并未出现。下页末页上页首页目录第10章软件测试30/130判定/条件覆盖判定/条件覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定的所有可能结果都至少执行一次,并且,每个判定中的每个条件的所有可能结果都至少出现一次。显然,满足判定/条件覆盖标准的测试用例一定也满足判定覆盖、条件覆盖、语句覆盖标准。下页末页上页首页目录第10章软件测试31/130seacbdtffta:(A1)and(B=0)c:(A=2)or(x1)测试数据预期结果路径ac覆盖的条件x=4,A=2,B=0x=3sabcdettA1,B=0,A=2,x=4x=1,A=1,B=1x=1saceffA≤1,B≠0,A≠2,x≤1下页末页上页首页目录第10章软件测试32/130条件组合覆盖条件组合覆盖是指选择足够的测试用例,使得运行这些测试用例时,被测程序的每个判定中条件结果的所有可能组合都至少出现一次显然,满足条件组合覆盖标准的测试用例一定也满足判定覆盖、条件覆盖、判定/条件覆盖、语句覆盖标准。下页末页上页首页目录第10章软件测试33/130判定a中条件结果的所有可能组合:①A1,B=0;②A1,B≠0;③A≤1,B=0;④A≤1,B≠0判定c中条件结果的所有可能组合:⑤A=2,x1;⑥A=2,x≤1;⑦A≠2,x1;⑧A≠2,x≤1seacbdtffta:(y1)and(z=0)c:(

1 / 130
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功