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

如题所述

  程序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、多条件覆盖
  多条件覆盖也成为条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。
  级别太低,流程图插不上,汗....
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-19
方法功能,如果是男且是中国人,那么他很苦逼,否则他很幸运
分支覆盖是建两组用例,一组是中国男人,一组是中国女人,分别测试,可以覆盖苦逼和幸运的分支,即分支覆盖
但是上面那两组用例没有覆盖判断中国人这个判断条件,把上面的用例改为中国男人和日本女人,这样既验证了性别条件判断,又验证了国籍判断,覆盖了条件的两组判断,就是条件覆盖
相似回答