zoukankan      html  css  js  c++  java
  • 不测的秘密:精准测试之路----读书笔记(第八章)

    八、精准测试第六式:知识库的优化

    1、为何实际中函数变更后用例推荐过多?

    建立函数与用例关系时,没有考虑到  各级调用和被调函数之间的复杂关系,以及函数内部的逻辑复杂度。这些关系对知识库建立产生影响。

    因为这两种关系越复杂,就会导致用例执行时关联的函数越多,并且多条用例会关联到相同的函数,关联度成指数量级增加,导致函数关联用例太多。

     

    2、去除冗余、优化知识库

    用例预函数的关系

    用例是针对函数编写的,用例预函数的分支内容息息相关,回归测试的时候,需要覆盖当前分支,但并不需要讲该分支的重复用例都覆盖到,不重复的用例分两种:

    1)用例和函数的某一分支对应,但是当前分支的代码改动后,用例预这个修改的函数分支关系已经无效,这一部分无效测试用例应该删除

    2)函数改动后,和其改动分支对应的测试用例仍然有效且必须执行,才是应该与函数关联的用例

     

    如何去除无关、非关键的函数与用例的关系?  -   精简函数对应的测试用例集   -  hash标识分支

    从函数角度,先对函数内部的路径分支做标记,然后从各路径分支抽出一条用例,组合出来的集合就是该函数的最小用例集

    1.  如何对函数路径分支进行标记?  -  需用例采集工具支持分支插桩

    如何对分支地址进行插桩?  在程序加载的过程中挂起进程,然后解析进程中每一个模块的汇编指令、判断指令是否是跳转指令,则在这个地址处进行插桩操作。

    2.  如何提取路径分支hash?

     要得到用例执行的路径分析,需建立分支与路径分支的关系?

    下图完成了函数路径分支hash提取、基本块地址与路径分支hash映射关系的建立。

    3.  用例与函数路径分支的关联关系的建立

     在采集器采集用例的过程中,将命中的插桩地址取出来,跟第2步建立的映射关系进行匹配,找到命中插桩地址对应的路径分支hash

    优化后结果:将用例个数严格控制在其路径分支个数的基础上,建设成最精简用例集

     

  • 相关阅读:
    C++重载运算符
    C++中的友元函数和友元类
    C++中的static关键字
    C++的new运算符和delete运算符
    git常用命令
    php+mysql+apache报错
    Nodejs 异步式 I/O 与事件式编程
    开始用Node.js编程
    Nodejs 模块
    Mac OS X上安装Node.js
  • 原文地址:https://www.cnblogs.com/testing2019/p/10273899.html
Copyright © 2011-2022 走看看