静态测试与动态测试精选PPT.ppt

上传人:石*** 文档编号:43304776 上传时间:2022-09-17 格式:PPT 页数:32 大小:1.37MB
返回 下载 相关 举报
静态测试与动态测试精选PPT.ppt_第1页
第1页 / 共32页
静态测试与动态测试精选PPT.ppt_第2页
第2页 / 共32页
点击查看更多>>
资源描述

《静态测试与动态测试精选PPT.ppt》由会员分享,可在线阅读,更多相关《静态测试与动态测试精选PPT.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、静态测试与动态测试第1页,此课件共32页哦主要内容主要内容n1 1静态测试与动态测试的含义静态测试与动态测试的含义n2 2代码检查代码检查n3 3静态结构分析静态结构分析n4 4程序插桩程序插桩n5 5逻辑覆盖逻辑覆盖第2页,此课件共32页哦 白盒测试可分为静态测试和动态测试。白盒测试可分为静态测试和动态测试。静态测试静态测试是一种不通过执行程序而进行测试的技术,是一种不通过执行程序而进行测试的技术,其关键功能是检查软件的表示和描述是否一致,没有冲突其关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。侧重于纠正软件系统在描述、表示和规格或者没有歧义。侧重于纠正软件系统在描述、表示和

2、规格上的错误,是任何进一步测试的前提。上的错误,是任何进一步测试的前提。动态测试动态测试需要软件执行,当软件系统在模拟或真实环需要软件执行,当软件系统在模拟或真实环境中执行之前、之中和之后,对软件系统行为的分析是境中执行之前、之中和之后,对软件系统行为的分析是动态测试的主要特点。它显示一个系统在检查状态下是动态测试的主要特点。它显示一个系统在检查状态下是正确还是不正确。正确还是不正确。静静态测试与与动态测试的含的含义第3页,此课件共32页哦 最最常常见见的的静静态态测测试试是是找找出出源源代代码码的的语语法法错错误误,可可由由编编译译器器来来完完成成,因因编编译译器器可可逐逐行行分分析析检检验

3、验程程序序的的语语法法,找找出错误并报告。出错误并报告。除除此此之之外外,测测试试人人员员须须采采用用人人工工方方法法来来检检验验程程序序,有有些些地地方方存存在在非非语语法法方方面面错错误误,只只能能通通过过人人工工检检测测的的方方法法来来判判断。断。人人工工检检测测的的方方法法主主要要有有代代码码检检查查法法、静静态态结结构构分分析法析法等。等。3.1 静静态测试第4页,此课件共32页哦n代代码码检检查查法法主主要要是是通通过过桌桌面面检检查查,代代码码审审查查和和走走查查方方式,对以下内容进行检查:式,对以下内容进行检查:(1)(1)检查代码和设计的一致性;检查代码和设计的一致性;(2)

4、(2)代码的可读性及对软件设计标准的遵循情况;代码的可读性及对软件设计标准的遵循情况;(3)(3)代码逻辑表达的正确性;代码逻辑表达的正确性;(4)(4)代码结构的合理性;代码结构的合理性;(5)(5)程序中不安全、不明确和模糊的部分;程序中不安全、不明确和模糊的部分;(6)(6)编程风格方面的问题等。编程风格方面的问题等。1 代码检查法代码检查法第5页,此课件共32页哦(1)(1)桌面检查桌面检查(2)(2)代码审查代码审查(3)(3)走查走查n代码检查方式代码检查方式第6页,此课件共32页哦n代码会审是由一组人通过阅读、讨论和争代码会审是由一组人通过阅读、讨论和争议对程序进行静态分析的过程

5、。议对程序进行静态分析的过程。n代码审查小组成员:代码审查小组成员:n组长:能力较强的程序员组长:能力较强的程序员n待审程序的设计者或程序员待审程序的设计者或程序员n测试专家测试专家第7页,此课件共32页哦n代码审查时应注意问题:代码审查时应注意问题:提出的建议应针对程序本身,而不应针对程序员。提出的建议应针对程序本身,而不应针对程序员。程序员对整个审查过程采取积极和建设性的态度。程序员对整个审查过程采取积极和建设性的态度。第8页,此课件共32页哦n代码走查代码走查(code walkthrough)(code walkthrough)走查是以小组为单元进行代码阅读的,同样也是一走查是以小组为

6、单元进行代码阅读的,同样也是一系列规程和错误检查技术的集合。系列规程和错误检查技术的集合。n人员组成人员组成一位经验丰富的程序员一位经验丰富的程序员一位程序设计语言专家一位程序设计语言专家一位程序员新手一位程序员新手一位其他不同项目的人员一位其他不同项目的人员一位该软件编程小组的成员一位该软件编程小组的成员第9页,此课件共32页哦n必须修改的问题必须修改的问题(3)(3)n程序没有注释程序没有注释n程序程序=代码代码+注释注释n注释语句注释语句/总代码行数总代码行数=1/51/4=1/51/4n子函数子函数maxmax没有返回值类型没有返回值类型n精度丢失问题精度丢失问题n建议修改的问题建议修

7、改的问题(3)(3)nmainmain函数没有返回值类型和参数表函数没有返回值类型和参数表(默认为默认为void main(void)void main(void)n1 1行代码只定义行代码只定义1 1个变量。个变量。n程序适当加一些空行程序适当加一些空行n程序中存在未使用的变量程序中存在未使用的变量#includemax(floatx,floaty)floatz;z=xy?x:y;return(z);main()floata,b;intc,d;scanf(%f,%f,&a,&b);c=max(a,b);printf(Maxis%dn,c);第10页,此课件共32页哦n测测试试人人员员通通过过

8、使使用用测测试试工工具具分分析析程程序序源源代代码码的的系系统统结结构构、数数据据结结构构、数数据据接接口口、内内部部控控制制逻逻辑辑等等内内部部结结构构,生生成成函函数数调调用用关关系系图图、模模块块控控制制流流图图、内内部部文文件件调调用用关关系系图图等等各各种图形、图表,清晰地标识整个软件的组成结构。种图形、图表,清晰地标识整个软件的组成结构。n通通过过分分析析上上述述图图表表,包包括括控控制制流流分分析析、数数据据据据流流分分析析、接接口口分分析析、表表达达式式分分析析等等,使使其其便便于于阅阅读读与与理理解解,然然后后可可以通过分析这些图表,检查软件是否存在缺陷或错误。以通过分析这些

9、图表,检查软件是否存在缺陷或错误。2 静态结构分析法静态结构分析法第11页,此课件共32页哦 静静态态结结构构分分析析法法通通常常采采用用以以下下方方法法进进行行源源程程序序的的静静态态分析:分析:n (1)(1)通过各种图表对源程序进行静态分析通过各种图表对源程序进行静态分析 常用的各种引用表主要有:常用的各种引用表主要有:标号交叉引用表标号交叉引用表 变量交叉引用表变量交叉引用表 子程序子程序(宏、函数宏、函数)引用表引用表 等价表等价表 常数表常数表第12页,此课件共32页哦 函函数数调调用用关关系系图图:列列出出所所有有函函数数,用用连连线线表表示示调调用用关关系系,通通过过应应用用程

10、程序序各各函函数数之之间间的的调调用用关关系系展展示系统的结构。示系统的结构。模模块块控控制制流流图图:由由许许多多结结点点和和连连接接结结点点的的边边组组成成的的图图形形,其其中中每每个个结结点点代代表表一一条条或或多多条条语语句句,边边表表示示控控制流向,可直观反映出一个函数的内部结构。制流向,可直观反映出一个函数的内部结构。常用的关系图、控制流图常用的关系图、控制流图第13页,此课件共32页哦n静静态态错错误误分分析析主主要要用用于于确确定定在在源源程程序序中中是是否否有有某某类类错误或错误或“危险危险”结构。结构。类型和单位分析类型和单位分析 引用分析引用分析 表达式分析表达式分析 接

11、口分析接口分析(2)(2)错误静态分析错误静态分析第14页,此课件共32页哦 在在软软件件动动态态测测试试中中,程程序序插插桩桩是是一一种种基基本本的的测测试试手手段,有着广泛的应用。段,有着广泛的应用。程程序序插插桩桩方方法法是是借借助助往往被被测测程程序序中中插插入入操操作作,来来实实现现测测试试目目的的的的方方法法,即即向向源源程程序序中中添添加加一一些些语语句句,实实现对程序语句的执行、变量的变化等情况进行检查。现对程序语句的执行、变量的变化等情况进行检查。3.2 程序插程序插桩技技术第15页,此课件共32页哦 想了解一个程序在某次运行中所有可执行语句想了解一个程序在某次运行中所有可执

12、行语句被覆盖的情况,或是每个语句的实际执行次数,被覆盖的情况,或是每个语句的实际执行次数,最好的办法是利用插桩技术。最好的办法是利用插桩技术。以计算整数以计算整数X X和整数和整数Y Y的最大公约数程序为例,的最大公约数程序为例,说明插桩方法的要点。图说明插桩方法的要点。图3-13-1给出了这一程序的流给出了这一程序的流程图。程图。第16页,此课件共32页哦图图3 3-1 1 插插桩桩后后求求最最大大公公约约数数程程序序的的流流程程图图 第17页,此课件共32页哦n设计插桩程序时需要考虑的问题包括:设计插桩程序时需要考虑的问题包括:探测哪些信息;探测哪些信息;在程序的什么部位设置探测点在程序的

13、什么部位设置探测点;需要设置多少个探测点;需要设置多少个探测点;程程序序中中特特定定部部位位插插入入某某些些用用以以判判断断变变量量特特性性的的语语句句。如如.NET.NET里的插入断言语句:里的插入断言语句:Debug.Assert(Debug.Assert(this.textBox3.Text.Length0,“this.textBox3.Text.Length0,“输入值为空输入值为空!);int a=int a=Int32.Parse(Int32.Parse(this.textBox3.Textthis.textBox3.Text);第18页,此课件共32页哦 逻逻辑辑覆覆盖盖是是白白

14、盒盒测测试试中中动动态态测测试试技技术术主主要要方方法法之之一一,是是以以程程序序内内部部的的逻逻辑辑结结构构为为基基础础的的测测试试技技术术,通通过过对对程程序序逻逻辑辑结结构构的的遍遍历历实实现现程程序序的的覆覆盖盖,要要求求测试人员对程序的逻辑结构有清楚的了解。测试人员对程序的逻辑结构有清楚的了解。3.3 逻辑覆盖覆盖第19页,此课件共32页哦逻辑覆盖原则逻辑覆盖原则保证一个模块中的左右独立路径至少被使用一次保证一个模块中的左右独立路径至少被使用一次对所有逻辑值均需测试对所有逻辑值均需测试truetrue和和falsefalse在上下边界及可操作范围内运行所有循环在上下边界及可操作范围内

15、运行所有循环检查内部数据结构以确保其有效性检查内部数据结构以确保其有效性第20页,此课件共32页哦n从从覆覆盖盖源源程程序序语语句句的的详详细细程程度度分分析析,逻逻辑辑覆覆盖盖标标准准有有语语句句覆覆盖盖、判判定定覆覆盖盖、条条件件覆覆盖盖、判判定定/条条件件覆覆盖盖、条条件组合覆盖件组合覆盖。n为便于理解,根据下面所示的为便于理解,根据下面所示的2 2个被测试程序个被测试程序(用用C C语语言书写言书写),分别讨论几种常用的覆盖技术。,分别讨论几种常用的覆盖技术。第21页,此课件共32页哦n程序程序1 1如下:如下:Voidjs(floatA,floatB,floatX)if(A1&B=0

16、)X=X/A;if(A=2|X1)X=X+1;第22页,此课件共32页哦图图3 3-3 3 程程序序1 1流流程程图图第23页,此课件共32页哦n程序程序2 2如下:如下:voidDoWork(intx,inty,intz)intk=0,j=0;if(x3)&(z5)j=x*y+10;语句块语句块2j=j%3;语句块语句块3第24页,此课件共32页哦图图3 3-4 4 程程序序2 2流流程程图图第25页,此课件共32页哦n1 1语句覆盖语句覆盖 语句覆盖使程序中每个语句至少都能被执行一次。语句覆盖使程序中每个语句至少都能被执行一次。如如程程序序1 1中中,为为使使程程序序中中每每个个语语句句至

17、至少少执执行行一一次次,只只需需设设计计一一个个能能通通过过路路径径a-c-ea-c-e的的数数据据就就可可以以了了,例例如如选选择择输输入数据为:入数据为:A=2A=2,B=0B=0,X=3X=3就可达到就可达到“语句覆盖语句覆盖”标准。标准。在在程程序序2 2中中,如如测测试试用用例例输输入入为为:x=4x=4、y=5y=5、z=5 z=5 程程序执行的路径是:序执行的路径是:a-b-da-b-d。第26页,此课件共32页哦n2 2 判定覆盖判定覆盖 比语句覆盖稍强的覆盖标准是判定覆盖。比语句覆盖稍强的覆盖标准是判定覆盖。设设计计若若干干测测试试用用例例,运运行行被被测测程程序序,使使得得

18、程程序序中中每每个个判判断断的的取取真真分分支支和和取取假假分分支支至至少少经经历历一一次次,即即判断的真假值均曾被满足。判断的真假值均曾被满足。判定覆盖又称为分支覆盖。判定覆盖又称为分支覆盖。第27页,此课件共32页哦n3 3 条件覆盖条件覆盖 在在设设计计程程序序中中,一一个个判判定定语语句句是是由由多多个个条条件件组组合合而成的复合判定。而成的复合判定。条条件件覆覆盖盖的的含含义义是是:构构造造一一组组测测试试用用例例,使使得得每每一判定语句中每个逻辑条件的可能值至少满足一次。一判定语句中每个逻辑条件的可能值至少满足一次。第28页,此课件共32页哦n4 4条件判定组合覆盖条件判定组合覆盖

19、 条条件件判判定定组组合合覆覆盖盖的的含含义义是是:设设计计足足够够的的测测试试用用例例,使使得得判判定定中中每每个个条条件件的的所所有有可可能能(真真/假假)至至少少出出现现一一次次,并并且且每每个个判判定定本本身身的的判判定定结结果果(真真/假假)也也至至少少出出现一次。现一次。第29页,此课件共32页哦n5 5多条件覆盖多条件覆盖 多多条条件件覆覆盖盖也也称称为为条条件件组组合合覆覆盖盖,其其含含义义是是:设设计计足足够够的的测测试试用用例例,使使得得每每个个判判定定中中条条件件的的各各种种可可能能组组合合都至少出现一次。都至少出现一次。显显然然满满足足多多条条件件覆覆盖盖的的测测试试用

20、用例例是是一一定定满满足足判判定定覆盖、条件覆盖和条件判定组合覆盖的。覆盖、条件覆盖和条件判定组合覆盖的。第30页,此课件共32页哦n测试覆盖准则测试覆盖准则(1)Foster(1)Foster的的ESTCAESTCA覆盖准则覆盖准则 前面介绍的逻辑覆盖其出发点似乎是合理的。前面介绍的逻辑覆盖其出发点似乎是合理的。所谓所谓“覆盖覆盖”,就是想要做到全面而无遗漏。但是,就是想要做到全面而无遗漏。但是,事实表明,它并不能真的做到无遗漏。事实表明,它并不能真的做到无遗漏。K.A.FosterK.A.Foster从从测测试试工工作作实实践践的的教教训训出出发发,吸吸收收了了计计算算机机硬硬件件的的测测试试原原理理,提提出出了了一一种种经经验验型型的的测测试试覆盖准则。覆盖准则。第31页,此课件共32页哦(2)Woodward2)Woodward等人的层次等人的层次LCSAJLCSAJ覆盖准则覆盖准则 WoodwardWoodward等人曾经指出结构覆盖的一些准则,如分等人曾经指出结构覆盖的一些准则,如分支覆盖或路径覆盖,都不足以保证测试数据的有效性。为支覆盖或路径覆盖,都不足以保证测试数据的有效性。为此,他们提出了一种层次此,他们提出了一种层次LCSAJLCSAJ覆盖准则。覆盖准则。第32页,此课件共32页哦

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁