单元测试

Posted wuyazi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单元测试相关的知识,希望对你有一定的参考价值。

一、单元测试主要内容
  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为判定的个数)
 
 

以上是关于单元测试的主要内容,如果未能解决你的问题,请参考以下文章

什么是单元测试?如何做好单元测试?

测试篇——初探单元测试

单元测试

Java单元测试介绍

Android如何进行单元测试(转)

实验单元测试