天天看点

单元测试

一、单元测试主要内容

  1、测试对象:函数,函数是实现一个功能的独立的执行语句之和

  2、测试时间:开发完成一个函数。

  3、依据:lld

  4、测试人员:开发

二、支撑条件

  1、桩单元:用来调用被测函数所调用的函数,此子单元称为桩 单元,一般功能简单

  2、驱动单元:用来调用被测函数、并且接受其返回值的单元

三、测试策略

  完成单元测试的顺序

  1、孤立的测试策略

    a、将每个函数单独执行测试

    b、每个函数的测试,都需要准备驱动和桩

    c、可以同时进行多个函数的单元测试,属于纯粹的单元测试

  

  2、自顶向下

    a、需要为该函数准备桩,在进行第二层函数测试时,可以利用顶层函数作为驱动

    b、需要大量的桩单元编写

    c、越向下测试越复杂

  3、自底向上

    a、需要为该函数准备驱动,在进行上一层函数测试时,可以利用底层函数(已经测试通过的)作为桩

    b、只需要准备驱动

    c、但是不是纯粹的单元测试,类似集成测试

四、单元测试活动

  1、测试计划

  2、测试设计

  3、测试实现

    用例——脚本——数据——规程

  4、测试执行

    执行用例——回归测试——测试报告

五、测试原则

  1、流程化:根据计划和方案设计

  2、计划、方案要参加评审

  3、回归测试:如果代码有改动,无论大小都要回归测试,必要时需要重新编写用例和脚本

  4、当发现问题,需要记录,进一步分析问题所在

  5、时间、测试轮次、覆盖率、bug的修复率,只有达到测试结束的标准,才能结束

  6、比较完备的单元测试要达到指定的覆盖率

六、覆盖率

  覆盖率是用例度量测试的完备性的指标

  1、覆盖率=(至少执行一次的item数)/总的item数

    item:用来统计的测试项

    重复的item,只统计一次

  2、黑盒覆盖率:一般用功能点来做统计

  3、灰盒覆盖率:一般用函数覆盖率、接口覆盖率来统计

  4、白盒覆盖率:也叫逻辑覆盖率、代码覆盖率、结构覆盖率

   a、语句覆盖

   b、判定覆盖:每个判定均取真和假,真和假各统计一次item

      item总数:若判定数为n,则总数为2*n

   c、条件覆盖:每个判定中的条件均取真和假一次,判定中用逻辑运算符分割条件表达式,即为一个条件

      item总数:条件数*2

   d、判定条件覆盖:每个判定均取真和假,以及判定中的条件均取真和假

      item总数:条件覆盖item总数+判定覆盖item总数

   e、条件组合:每个判定中的条件取值要做全排列

      分母=判定1的条件取值的全排列组合+判定2的条件取值的全排列组合+......

   f、路径覆盖:每个路径均执行一次,即判定组合

      item总数=判定的n次方(n为判定的个数)

继续阅读