文档详情

Ch3-测试覆盖率.ppt

发布:2018-05-08约2.56千字共28页下载文档
文本预览下载声明
软件测试 -Ch3 测试覆盖率 MPMail:zhaohui@mail.ccut.edu.cn 测试覆盖率 主要内容 逻辑覆盖率(自学) 功能覆盖率 面向对象的覆盖率 其他覆盖率 如何使用覆盖率 功能覆盖率 面向对象的覆盖率 面向对象的覆盖率 面向对象的覆盖率 面向对象的覆盖率 面向对象的覆盖率 面向对象的覆盖率 面向对象的覆盖率 面向对象的覆盖率 面向对象的覆盖率 其他覆盖率 其他覆盖率 其他覆盖率 其他覆盖率 其他覆盖率 其他覆盖率 其他覆盖率 其他覆盖率 其他覆盖率 其他覆盖率 如何使用覆盖率 如何使用覆盖率 如何使用覆盖率 如何使用覆盖率 * zhaohui@mail.ccut.edu.cn * 赵 辉 代码覆盖率 缺陷排除率 覆盖率=(至少被执行一次的Item数)/ Item的总数 覆盖率是度量测试完整性的一种手段 属于黑盒测试范畴 最常见的是需求覆盖 需求覆盖率=被验证到需求数量/总的需求数量 接口覆盖(入口点覆盖) 封装性 继承性 多态性 上下文覆盖:收集被测试软件如何执行数据的方法。 三种类型: 继承上下文覆盖:度量系统中多态调用被测试的程度 基于状态的上下文覆盖:对带有状态依赖行为的类的 测试 用户定义上下文覆盖:结构化覆盖无法使用的地方 1.继承上下文覆盖 扩展传统结构化覆盖来考虑方法被继承时的额外接口。 度量:考虑每个类的上下文内获得覆盖率级别。 基类与继承类的方法在其上下文空间相互独立。 特例:基于判定覆盖的继承上下文覆盖率 继承上下文判定覆盖=累加每个上下文内执行到的 判定分支数/(上下文数×上下文内的判定分支总数) 2.基于状态的上下文覆盖 基于状态的类:类的行为依赖于状态 2.基于状态的上下文覆盖 入口点覆盖(黑盒测试) 2.基于状态的上下文覆盖 白盒测试 代码中的判定不对应公共接口 无法确定被丢失的代码 2.基于状态的上下文覆盖 基于状态转移图 2.基于状态的上下文覆盖 基于状态上下文覆盖 对应于被测试类对象的潜在状态,一个状态上下文内的一个例行程序的执行独立于另一个状态内相同例行程序的执行。 基于状态的上下文入口点覆盖率=(累加每个状态内执行到的方法数) / (状态数×类内方法数) 注:构造器不作为类内方法计算 3.基于线程的上下文覆盖 将基于继承的上下文覆盖和基于状态的上下文覆盖应用到每个线程中,计算每个线程的独立覆盖率。 1.函数覆盖 函数覆盖率= 至少被执行一次的函数数量 / 系统中函数的总数 2.指令块覆盖 指令块覆盖率= 至少被执行一次的指令块数量 / 系统中指令块总数 3.判定路径覆盖(DDP) DDP覆盖率= 至少被执行一次的判定路径数量 / 系统中判定路径总数 4.更改条件判定覆盖(MC/DC) 需求1: 被测试程序模块的每个入口点和出口点都必须至少走一次,并且每个程序判定的结果至少被覆盖一次。 需求2: 通过分解逻辑操作,程序的判定被分解为基本的布尔条件表达式,每个条件独立作用于判定的结果,覆盖所有条件的可能结果 4.更改条件判定覆盖(MC/DC) X AND ( Y OR Z ) 5.分支条件覆盖(BCC) BCC覆盖率= 被评价的分支条件组合数 / 分支条件组合总数 If A AND B then Do_something End if 6.过程到过程路径覆盖(PPP) PPP覆盖率= PPP被执行到一次的数量 / 系统中PPP总数 7. Z路径覆盖 路径覆盖的变体,简化循环意义下的覆盖。 只考虑循环一次和零次两种情况。 规则1: 对于A rel B(rel可以是 =)型分支谓词,应适当选择A与B的值,使得测试执行到该分支语句时,AB,AB,A=B的情况分别出现一次。 规则2: 对于A rel1 B(rel1可以是 =,A是变量,C是常量)型分支谓词,当rel1为时,应适当选择A的值,使:A= C- M 当rel1为时,应适当选择A的值,使:A= C+ M (M是距C最小的正数) 规则3: 对于外部输入变量赋值,使其在每一个测试用例中均有不同的值与符号,并与同组测试用例中其他变量和符号不一致。 8. ESTCA覆盖 错误敏感测试用例分析规则 检测rel的错误 检测“差一”的错误 检
显示全部
相似文档