软件测试案例教程课件作者周元哲第四章节白盒测试.pptVIP

软件测试案例教程课件作者周元哲第四章节白盒测试.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
尚辅网 / 第四章 白盒测试 概述 词法分析与语法分析 代码检查法 静态结构分析 程序插桩技术 逻辑覆盖法 路径分析 白盒测试只测试软件产品的内部结构和处理过程,而不测试软件产品的功能,用于纠正软件系统在描述、表示和规格上的错误,是进一步测试的前提。白盒子测试分静态和动态两种:静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时也称为结构分析。动态白盒测试也称结构化测试,通过查看并使用代码的内部结构,设计和执行测试。 词法分析与语法分析 词法分析是计算机科学中将字符序列转换为单词序列的过程。进行词法分析的程序或者函数叫作词法分析器(Lexical analyzer,简称Lexer),也叫扫描器(Scanner)。词法分析器一般以函数的形式存在,供语法分析器调用。 语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等.语法分析程序判断源程序在结构上是否正确.源程序的结构由上下文无关文法描述.语法分析程序可以用YACC等工具自动生成。 代码检查法 代码检查主要检查代码和设计的一致性,代码对文档标准的遵循及代码的可读性,代码的逻辑表达正确性,代码结构的合理性等方面。代码检查比动态测试更有效率,能快速找到大约30%~70%的逻辑设计错误和编码缺陷。 静态结构分析法 在静态结构分析中,测试者通过使用测试工具分析程序源代码的系统结构、数据结构、数据结构、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图、子程序表、宏和函数参数表等各类图形图标,可以清晰地标识整个软件系统的组成结构,使其便于阅读和理解,然后可以通过分析这些图标,检查软件有没有存在缺陷或错误。 程序插桩技术 在软件动态测试中,程序插桩是一种基本的测试手段,有着广泛的应用。通过借助于往被测程序中插入操作,来实现测试目的的方法,即向源程序中添加一些语句,实现对程序语句的执行、变量的变化等情况进行检查。 在实际测试中,通常在代码中的如下一些部位设置探测点: 程序块的第1个可执行语句之前 for,do ,do-while,do until 等循环语句处。 if, else if, else及end if等条件语句各分支处。 输入/输出语句之后。 函数、过程、子程序调用语句之后。 return语句之后 call语句之后 逻辑覆盖法 程序控制流图是白盒测试的主要依据。对于一个程序,其程序控制流图G=(V,E,I,O)是一个有向图,其中V是结点的集合,E是边的集合,I是唯一的源结点(入口结点),而O是唯一的汇结点(出口结点)。 在控制流图中, ● 结点表示语句,以标有编号的圆圈表示。 ● 边表示语句间可能的控制流向 ● I, O相应于程序的开始语句和结束语句。 如果i和j是程序控制流图中的结点,从结点i到结点j存在一条边,当且仅当对应结点j的语句可以在对应结点i的语句之后立即执行。 三角形问题类C语言实现 /* PROGRAM TRIANGLE */ mian () { 1 int a,b,c; 2 boolean IsTraingle 3 sacnf(“Enter 3 integer which is sides of a triangle. %d%d%d”,a,b,c); 4 printf(“Side a is %d”, a); 5 printf(“Side b is %d”, b); 6 printf(“Side c is %d”,c); 7 if ((ab+c) AND (ba+c) AND (ca+b)) 8 then IsTraingle=True; 9 else IsTraingle=False; 10 if (IsTraingle) 11 then if ((a=b) AND (b=c)) 12 then printf(“Equilateral”) 13 else if (a!=b) AND (a!=c) AND (b!=c) 14 then printf(“Scalene”) 15 else printf(“Isosceles”) 16 else printf(“Not a Triangle”) } 程序控制流图 结点3到7是一个序列,结点7到10是一个if-then-else结构,结点11到16是一个嵌套的if-then-else结构。结点3和16是程序源

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档