T静态测试圈复杂度概述.pptVIP

  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文档。上传文档
查看更多
原子条件 原子条件指条件中不包含与、或、非运算的条件 画控制流图时注意 当程序中判定条件为复合条件时应将复合条件分解成原子条件后,再画出控制流图,进行圈复杂度计算 例: 例:闰年 public boolean isLeapYear(int year){ boolean result = false; if( ( 0 == year%400 ) || ( 0 != year%100 0 == year%4)) result = true; return result; } 练习 要求: 画出如下代码的流程图和控制流图,并计算圈复杂度 练习1-循环 要求: 画出以下代码的流程图和控制流图,并计算圈复杂度 练习2-循环 练习3-循环 练习4-循环 * 课后练习2 以组为单位,查询资料,解释等价类划分法是如何设计测试用例的,描述其步骤。 IT Education Training IT Education Training wangchunxiu@ ouyanghan@ 静态测试——静态分析 Software Testing Foundation 掌握代码转流程图以及数据流图 掌握圈复杂度的计算 熟悉Visio的使用 本次课的目标 / TNJHR-TCKQC-VCDKM-YY4TV-QPCFM / Visio下载 * 3. 静态分析 静态分析的目的是发现文档中的缺陷或可能存在缺陷的地方。 不过,静态分析经常通过工具来完成。 使用静态分析进行检查的文档必须是正式文档,并以一定的结构来组织。程序代码常常是软件开发过程中唯一可以进行。 * 静态分析和评审 静态分析和评审是紧密联系的。假如在评审之前进行了静态分析,可以发现很多缺陷,从而评审时需要检查的地方就可以明显地减少。由于静态测试通常是工具支持的,因此其工作量会比评审少得多。 * 通过静态分析可以发现以下缺陷和结构可能会导致程序产生的错误: 违背语法规则 违背编程规范和标准 控制流异常 数据流异常 * 静态分析可以用来发现安全性问题,很多安全性漏洞是由于使用了易产生错误的程序结构,并且没有进行必要的检查而产生的。比如确实缓冲区溢出保护,或者没有检查输入数据越界等。 工具可以发现这种类型的缺陷,因为他们有标准的格式来查找和发现这种缺陷。 * 3.1 编译器做为静态分析工具 通过静态分析工具可以发现编程语言语法错误,并且以故障或警告的方式进行报告。 * 静态分析工具可以发现的语法错误: 产生不同程序元素的交叉引用列表(变量、函数) 检查编程语言中数据和变量的数据类型的正确性 检查没有声明的变量 检查不可达代码 检查域边界的上溢或下溢(静态选择) 检查接口的一致性 检查所有作为跳转开始或跳转结束标签的使用 * 3.2 检查和规范、标准的一致性 通过工具可以检查测试对象是否与规范、标准相一致。比如是否遵循了大部分的编程规则和标准。 工具检查还有一个优点,假如编程人员知道代码需要按照编程规范进行检查,他们会比没有这种自动化测试时更乐于按照编程规范来工作。 checkStyle /bluesky4485/archive/2011/11/30/2269198.html * 3.3 数据流分析(data flow analysis) 数据流分析是指通过在程序代码经过的路径上检查数据的用法而发现缺陷的一种测试方法。 具体而言,就是在不运行程序的情况下,对变量的定义、引用进行分析,以检测数据的赋值与引用之间是否出现了不合理的现象,如引用未赋值的变量,对以前未曾引用变量的再次赋值等数据流异常现象。 * 数据流分析方法将程序中变量的出现分为变量的定义和引用。 若语句k执行时改变了程序变量v的值,则称k定义了变量v; 若语句k执行时引用了变量v的值,则称k引用了变量v. * 例如 语句 V=Y+Z 定义了变量V,引用了变量Y和Z 语句 if (YZ) then … 则引用了变量Y和Z 输入语句 input X 定义了变量X 输出语句 output Y 则引用了变量Y * 对以上变量的定义及引用做如下定义: 已定义的(d):变量已经赋值 引用的(r):读取或使用变量的值 没有定义的(u):变量没有定义具体的值 * 数据异常的三种情况 ur异常:程序路径上读取了没有定义的变量 du异常:变量被赋值,但这个变量已经变成无效的或者未定义的状态,同时未被引用 dd异常:变量接收了第二个值,同时,第一个值未被使用 * 例:函数exchange(int Min, int Max) void exchange(int Min, int Max) { Int Help; if (Min Max) { Max = Help; Max = Min; Help = M

文档评论(0)

挑战不可能 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档