测试覆盖率的基本策略

测试覆盖率的基本策略

软件测试覆盖率简介
  一、定义:覆盖率是用来度量测试完整性的一个手段,同时也是测试技术有效性的一个度量。
  二、计算:覆盖率=(至少被执行一次的item数)/item的总数
  三、特色
  1)经过覆盖率数据,能够检测咱们的测试是否充分
  2)分析出测试的弱点在哪方面
  3)指导咱们设计可以增长覆盖率的测试用例,有效提升测试质量,可是测试用例设计不能一味追求覆盖率,由于测试成本随覆盖率的增长而增长。
  函数

软件测试覆盖率分类
  覆盖率按照测试方法大致上能够划分为三大类,即白盒覆盖(white-Box Coverage)、灰盒覆盖(Gray-Box coverage)和黑盒覆盖(Black-Box Coverage)。
  测试

白盒覆盖率(white-Box Coverage)
  白盒覆盖率中使用的最多见的就是逻辑覆盖率(Logical Coverage ),也叫代码覆盖率(Code Coverage)或者结构化覆盖率(Structural Coverage),咱们常见的逻辑覆盖包括:语句覆盖、断定覆盖、条件覆盖、断定条件覆盖、条件组合覆盖、路径覆盖。
  spa

一、语句覆盖(Statement Coverage)
  1)定义:在测试时,运行被测程序后,程序中被执行的可执行语句的比率。
  2)计算公式:语句覆盖率=(至少被执行一次的语句数量)/(可执行的语句总数)
  3)100%语句覆盖率含义:在测试时,首先设计若干个测试用例,而后运行被测程序,使程序中的每一个可执行语句至少执行一次。
  4)特色:语句覆盖能够检验每一个可执行语句,可是即便语句覆盖率达到了100%,也会有缺陷发现不了,因此覆盖率只是咱们度量的手段。
  设计

二、断定覆盖(Decision Coverage)/分支覆盖率(Branch Coverage)
  1)定义:在测试时,运行被测程序后,程序中全部判断语句的取真分支和取假分支被执行到的比率。
  2)计算公式:断定覆盖率=(断定结果被评价的次数)/(断定结果的总数)
  3)100%条件覆盖率含义:在测试时,首先设计若干个测试用例,而后运行测试程序,使得程序中每一个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被知足。
  4)特色
  (1)若断定覆盖达到100%,则语句覆盖必为100%。
  (2)即便断定覆盖率达到了100%,也会有缺陷发现不了。
  接口

三、条件覆盖(Condition Coverage)
  1)定义:在测试时,运行被测程序后,程序中全部判断语句中每一个条件的可能取值(真值和假值)出现过的比率。
  2)计算公式:条件覆盖率=(条件操做数值至少被评价一次的数量)/(条件操做数值的总数)
  3)100%条件覆盖率含义:在测试时,首先设计若干个测试用例,而后运行被测试程序,要使每一个判断中每一个条件的可能取值至少知足一次。
  4)特色:覆盖条件的测试用例不必定覆盖断定。
  ci

四、断定-条件覆盖(Decision Condition Coverage)/分支条件覆盖(Branch Condition Coverage)
  1)定义:在测试时,运行被测程序后,程序中全部判断语句中每一个条件的可能取值(真值和假值)和每一个判断自己的断定结果(为真为假)出现的比率。
  2)计算公式:断定-条件覆盖率=(条件操做数值或断定结果至少被评价一次的数量)/(条件操做数值的总数+断定结果的总数)
  3)100%断定-条件覆盖率含义:设计足够的测试用例,使得判断中每一个条件的全部可能取值至少执行一次,同时每一个判断自己的全部可能结果至少执行一次。换言之,便是要求各个判断的全部的可能的取值组合至少执行一次。
  4)特色
  (1)断定-条件覆盖率实际上就是断定覆盖率和条件覆盖率的组合。
  (2)采用断定-条件覆盖,逻辑表达式中的错误不必定可以查得出来。
  it

五、条件组合覆盖(Condition combination coverage)
  1)定义:在测试时,运行被测程序后,全部语句中原子条件全部的可能的取值结果组合出现过的比率。
  2)计算公式:条件组合覆盖率=(至少被执行一次的条件组合)/(总的可能的条件组合数)
  3)100%条件组合覆盖率含义:设计足够的测试用例,使得判断中条件的各类可能组合至少出现过一次。
  4)特色:若条件组合覆盖率为100%,则语句覆盖率、断定覆盖率、条件覆盖率和断定-条件覆盖率必为100%。
  io

六、路径覆盖(Path Coverage)
  1)定义:在测试时,运行被测程序后,程序中全部可能的路径被执行的比率。
  2)计算公式:路径覆盖率=(至少被执行一次的路径数)/(总的路径数)
  3)100%路径覆盖率含义:设计足够的测试用例,要求覆盖程序中全部可能的路径。
  4)特色
  (1)路径覆盖比断定条件覆盖更强,可是不能包含断定条件覆盖。
  (2)若路径覆盖率为100%,则语句覆盖率、断定覆盖率必为100%。
  小结:逻辑覆盖率能够做为软件测试的一个度量,可是,即便达到了100%的逻辑覆盖率,仍然没法保证程序的正确性。
  软件

灰盒覆盖率(Gray-Box Coverage)
函数覆盖和接口覆盖能够归为灰盒测试的范畴。
一、函数覆盖

  1)定义:它表示在测试中,有哪些函数被测试到了,其被测试到的频率有多大,这些函数在系统全部函数中占的比例有多大。
  2)计算公式:函数覆盖=(至少被执行一次的函数数量)/(系统中函数的总数)
  3)特色:是针对一个系统或者子系统测试的。
  程序

二、接口覆盖(Interface Coverage)/入口点覆盖(Entry-Point Coverage)
  1)定义:要求经过设计必定的用例使得系统的每一个接口被测试到。
  2)计算公式:接口覆盖=(至少被执行一次的接口数量)/(系统中接口的总数)
  

黑盒覆盖率(Black-Box Coverage)
  在实际测试中,与黑盒相关的覆盖率比较少,主要是功能覆盖率(Function Coverage),其中最多见的是需求覆盖。
  

需求覆盖
  1)定义:它表示在测试中,有哪些函数被测试到了,其被测试到的频率有多大,这些函数在系统全部函数中占的比例有多大经过设计必定的测试用例,要求每一个需求点都被测试到。
  2)计算公式:需求覆盖=(被验证到的需求数量)/(总的需求总数)

相关文章
相关标签/搜索