- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * 全谓词使用导出全边覆盖?进而导出全节点? * * * * * * 基于状态模型/状态机/UML状态图的覆盖标准 度量: 状态覆盖 转换覆盖 状态-事件覆盖 路径覆盖 … 状态模型覆盖 主要内容 白盒测试简介 常见白盒测试方法 覆盖测试 实现覆盖的途径 4. 实现覆盖的途径 希望能设定一个测试,使之按照给定的路径来执行,从而实现期望的覆盖。 但是,如何为这样一个测试给定输入? 随机生成测试输入,大量尝试 基于逻辑推导的方法 启发式演化测试方法 y := y+1 x=y ? zw x := x-1 推导路径条件(path condition) 用符号表示输入变量的取值 A表示x,B表示y 顺着路径自上而下进行分析,对于赋值,用输入上的符号表达式表示当前变量的计算结果 对于判定分支,带入各变量的符号表达式,用符号关系表示所走分支应该满足的约束,将该约束加入到该路径的路径条件中 y := y+1 x=y ? zw x := x-1 X=A-1, y = B+1 PC = (A?B+1 ? CD) x=A, y = B, z=C, w=D x=A, y = B+1 PC = (A?B+1 ? CD) 路径约束的求解 所走路径应满足 (A?B+1 ? CD) 用约束求解工具可获得满足条件的一组值 x=2, y=1, z=4, w=3 影响有效性的问题 数组 第三方库 浮点数 …… y := y+1 x=y ? zw x := x-1 X=A-1, y = B+1 PC = (A?B+1 ? CD) x=A, y = B, z=C, w=D x=A, y = B+1 PC = (A?B+1 ? CD) 演化测试(Evolutionary Testing) 随机生成一批测试用例 是否覆盖 指定路径? 取上一批测试用例中好的部分作为生成下一批测试用例的基础 对选出测试用例杂交 优势基因结合 OK 何为好? 用海明距离判断路径向量与目标路径的贴近程度 对杂交结果进行适当变异 用新的测试用例集进行测试 演化测试(Evolutionary Testing) * * * * * * * * * * * 原则1:测试的目标是尽可能发现错误,寻找被测对象与既定规格不一致的地方。所以,测试用例设计中,首先应当根据需求的了解,使用已有经验去挖掘测试用例。在此基础上,再使用合适的覆盖准则。如果仅以覆盖率准测来指导测试,就会丢失很多重要信息,陷入追求覆盖率的数字游戏中。 原则2:如果针对每种覆盖率都进行测试,就会使测试成本变得十分昂贵,测试本身也无法实现。由于现代软件需要对市场快速响应,因此尽量使用简短的,能够让产品迅速稳定下来的测试。 原则3:只考虑一种覆盖率指标,会使得测试过程遗漏一些重要的方面。不同覆盖率考虑的重点不同,综合使用能发现更多错误。 原则4:达到100%的覆盖率将付出极大的成本,也没有必要。对于一般软件应设置一个合理的覆盖率标准。 * * * 注释 * * * * * * * * * * 3.2.2 基本路径测试 基本路径测试法是在程序控制流图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例的方法。 设计出的测试用例要保证在测试中程序的每个基本可执行路径至少执行一次。 流程图 流图 基本路径 测试用例 基路径测试—向量空间的启发 向量空间的基是相互独立的一组向量,基“覆盖”整个向量空间,使得该空间中的任何其他向量都可以用基向量来表示。 因此,一组基向量在一定程度上可表示整个向量空间的本质:空间中的一切都可以用基表示. 基路径测试—向量空间的启发 基对测试的潜在意义:如果可以把程序看做是一种向量空间,则这种空间的基就是要测试的非常有意义的元素集合。如果基没有问题,则可以期望能够用基表达的一切都是没有问题的。 ex1=p2+p3-p1 ex2=2p2 - p1 McCabe的基路径方法 核心思想 以程序控制流图中的线性独立环路为基 线性独立环路 一条路径,初始节点是终止节点 线性独立:至少拥有一条以上其它线性独立路径中没有的边 线性独立环路数的数量即程序控制流图的圈数量 控制流图 McCabe的导出强连接图 五个线性独立路径 P1:A,B,C,G P2:A,B,C,B,C,G P3:A,B,E,F,G P4:A,D,E,F,G P5:A,D,F,G 基 圈数计算 令 e是G中的边数。 n是G中的节点数。 p是G中的连通分量个数。 不增加从汇节点到源节点的边 V(G)=e-n+2p 增加边后 V(G)=e-n+p McCabe的基路径方法 通过定义加法和标量乘法的概念,强制使其看起来像向量空间: 路径加法就是一条路径后接另一条
文档评论(0)