测试课件7软件结构性测试.ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
公司内部积累起来的编程易出错的checklist 主要是对代码的检查 不涉及测试用例 由于非结构化程序会给测试、排错、和程序的维护带来许多不必要的困难,人们要求写出的程序是结构良好的。系统的检查程序的控制结构成为十分有意义的工作。 如C语言是结构化语言 程序流程图又称为框图,使人们最熟悉,也是最容易接受的一种程序控制结构的图形表示。 在这种图上的框内标明了处理要求或条件, 在做路径的分析时是不重要的,因此需要简化。 如图,这种简化了的流程图为控制流图。 控制流图中只有两种符号 节点:以标有编号的圆圈表示,他代表了程序流程图中矩形框所表示的处理、菱形表示的两个甚至多个出口判断以及多条流线相交的汇合点。 控制流线或弧:以箭头表示,他与程序流程图中的流线是一致的,表明了控制的顺序,为了方便讨论,控制流线通常标有名字。 为了便于机器表示和处理控制流图,可以把它表示成矩阵的形式,称为控制流图矩阵, 控制流图中含有5个节点决定了矩阵是5*5的,矩阵中的6个元素的位置决定了他们所连接节点的号码,例如:弧d在矩阵中处于第3行第4列,是因为控制流图中d连接了节点3至节点4, 注意控制流的方向 两个节点没有弧线,所对应的位置也就没有元素。 为了便于机器表示和处理控制流图,可以把它表示成矩阵的形式,称为控制流图矩阵, 控制流图中含有5个节点决定了矩阵是5*5的,矩阵中的6个元素的位置决定了他们所连接节点的号码,例如:弧d在矩阵中处于第3行第4列,是因为控制流图中d连接了节点3至节点4, 注意控制流的方向 两个节点没有弧线,所对应的位置也就没有元素。 在编写程序时稍加注意,做到这几点也是很容易的。 这里我们更关心的是如何进行检测,把以上4种问题从程序中找出来。 目前对这四种情况的检测主要通过编译器和程序分析工具来实现。 数据流分析最初是随着编译系统要生成有效的目标码而出现的,这类方法主要用于代码优化。 近些年数据流分析方法也用在了白盒测试中, 用以查找如引用未定义变量等程序错误, 也可用来查找对以前未曾使用的变量再次赋值等数据流异常的情况。 这些错误是常见的错误 表现形式,如错拼名字、名字混淆或语句丢失 第1个语句定义了3个变量, 出口语句引用z表明,Z的值被送给外部环境 该程序含有2个错误 语句2使用变量w,而此前从未对其定义 语句5,6使用变量V,而此前也从未对其定义过 此外,程序还包含1个异常 语句8对W的定义后来从未使用过 目前,通过编译器或程序分析工具通过数据流分析可以查找出对未定义变量的使用和未曾使用的定义。 (1)给出了语句与输入变量的关系,in_m的输入在语句2中得到了直接使用,由于这一语句将in_m的值传给了out_r,所以in_m的初始值也间接的用于语句3和5,而且语句3决定了语句4的重复执行次数,所以,in_m的值也间接的用于语句4 (2)给出了语句与输出变量的关系,所有的语句都可能影响商out_q的关系,而语句1和4并未影响到余数out_r的值 (3)给出了输入与输出的关系,可以看出输入变量都会影响输出变量 (2)例如:假定某个变量的值在使用以前被错误的改写了(也就是说对输出没有任何作用),这个语句就可能被发现 总结: 程序结构分析可分为控制流分析、数据流分析和信息流分析 程序结构分析实质是代码的静态测试 白盒测试是依据被测程序的逻辑结构设计测试用例,驱动被测程序运行的测试 可以发现应该应用变量却错成常量的错误 总结: 测试的覆盖率实质就是各种覆盖方式的覆盖数与总数的比例 逻辑覆盖测试的方法各有利弊,实际测试中应灵活应用 最少用例数的计算是给测试提供一个量化的标准,便于制定测试的策略与计划 总结: 最少用例数可以为测试提供量化参考 测试方法应灵活应用 总结: 白盒测试工具不仅可以检查错误、测试代码覆盖率,还可以测试代码性能 简化循环路径图 (1)和(2)都可简化为(3) C B 最少测试用例数计算 对于具体的程序,至少要设计多少测试用例? 估算最少测试用例数 帮助执行测试 有助于估算测试的时间 结构化程序与N-S图 结构化程序是由3种基本控制结构组成 顺序型 选择型(条件分支) 重复型(循环) 测试时考虑的结构 顺序型 选择型(条件分支) 程序结构与测试用例数 程序结构与测试用例数 当程序中判定多于一个时,形成的分支结构可以分为两类:嵌套型分支结构和连锁型分支结构 对于嵌套型分支结构,若有n个判定语句,需要n+1个测试用例 对于连锁型分支结构,若有n个判定语句,需要有2n个测试用例,覆盖它的2n条路径 最少测试用例数计算实例 计算最少测试用例数 最少测试用例数计算实例 最少测试用例数计算实例 测试覆盖准则 Foster的ESTCA覆盖准则 错误敏感测试用例分析(Error Sensitive Tes

您可能关注的文档

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档