请问谁知道白盒测试中的分支条件覆盖和条件组合覆盖的区别?最好能给举个例子。

如题所述

具体如下:

程序1如下:
Function js(float A,float B,float X)
{
if(A>1&&B=0)X=X/A;
if(A=2||X>1)X=X+1;
}
程序2如下:
Void DoWork(int x,int y,int z)
{
int k=0,j=0;
if((x>3)&&(z5))
{j=x*y+10;} ‘语句块2
j=j%3; ‘语句块3
}

A、语句覆盖:语句覆盖使程序中每个语句至少都能够被执行一次.

例如,在程序1中,为使程序中每个语句至少执行一次,只需设计一个能通过路径a-c-e的数据就可以了,

例如选择输入数据为:A=2,B=0,X=3就可以达到“语句覆盖”标准.

在程序2中,如测试用例输入为:x=4,y=5,z=5程序执行的路径是a-b-d.

B、判定覆盖

比语句覆盖稍强的覆盖标准是判定覆盖.按判定覆盖准则进行测试是指,设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足.判定覆盖又称为分支覆盖.

C、条件覆盖

再设计程序中,一个判定语句是由多个条件组合而成的复合判定.条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次.

D、条件判定组合覆盖

条件判定组合覆盖的含义是:设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次.

E、多条件覆盖

多条件覆盖也成为条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次.显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的.

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-01-31
  程序1如下:
  Function js(float A,float B,float X)
  {
  if(A>1&&B=0)X=X/A;
  if(A=2||X>1)X=X+1;
  }
  程序2如下:
  Void DoWork(int x,int y,int z)
  {
  int k=0,j=0;
  if((x>3)&&(z<10))
  {
  k=x*y-1; ‘语句块1
  j=sqrt(k);
  }
  if((x==4)||(y>5))
  {j=x*y+10;} ‘语句块2
  j=j%3; ‘语句块3
  }
  A、语句覆盖:语句覆盖使程序中每个语句至少都能够被执行一次。
  例如,在程序1中,为使程序中每个语句至少执行一次,只需设计一个能通过路径a-c-e的数据就可以了,例如选择输入数据为:A=2,B=0,X=3就可以达到“语句覆盖”标准。
  在程序2中,如测试用例输入为:x=4,y=5,z=5程序执行的路径是a-b-d。
  B、判定覆盖
  比语句覆盖稍强的覆盖标准是判定覆盖。按判定覆盖准则进行测试是指,设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。判定覆盖又称为分支覆盖。
  C、条件覆盖
  再设计程序中,一个判定语句是由多个条件组合而成的复合判定。
  条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。
  D、条件判定组合覆盖
  条件判定组合覆盖的含义是:设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。
  E、多条件覆盖
  多条件覆盖也成为条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。
  级别太低,流程图插不上,汗....
相似回答