软件测试基本概念及白盒测试方法课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件测试基本概念及白盒测试方法课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 基本概念 方法 课件
- 资源描述:
-
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符号符号为控制流图的一个结点,表示一为控制流图的一个结点,表示一个或多个无分支的语句或源程序语句。个或多个无分支的语句或源程序语句。箭头为边,表示控制流的方向。箭头为边,
展开阅读全文