白盒测试例题与详细概念

白盒测试例题与详细概念

独立路径法

例题

为以下程序用独立路径法设计测试用例

public float[] price={10.2,15,29.9,80.3};
public float[] p(float p)={
    if(p<10||p>90){
           return price[0];
}else if(p<20){
           return price[1]y
}else if(p<30){
           return price[2];
}else if(p<40){
return price[3];
  }
}

解法:

首先 画出程序流程图

↑由李佳明提供的控制流图(上)

↑由杜明珅提供的控制流图(带return 0版)↑

计算环路复杂度为4+1=5,如果是下面那张图 为5+1=6条

逻辑覆盖测试

逻辑覆盖测试分为

判定覆盖

条件覆盖

判定/条件覆盖

条件组合覆盖

例题2

为以下程序设计五组测试用例 分别满足语句覆盖 条件覆盖 判定覆盖 判定/条件覆盖 条件组合覆盖

public String eyes(float left float right){
String vision;
if((left>=400)&&(right>=400)){
vision="Very bad"
else{
if((left+right)>400){
    vision="Bad"
}else{
    vision="0k"
}
}
return vision
}

语句覆盖测试用例

确保每一个语句都能运行

判定覆盖

确保每个判定都能覆盖

  1. (left >= 400) && (right >= 400)

  2. (left + right) > 400(在第一个 if 为假时才会判断)

条件覆盖

确保每个条件都能覆盖

  1. left >= 400

  2. right >= 400

  3. (left + right) > 400

判定/条件覆盖

  • 判定:

    1. (left >= 400) && (right >= 400)

    2. (left + right) > 400(在第一个 if 为假时才会判断)

  • 条件:

    1. left >= 400

    2. right >= 400

    3. (left + right) > 400

条件组合覆盖

  1. left >= 400

  2. right >= 400

  3. (left + right) > 400

这些条件的组合情况如下:


  • left >= 400trueright >= 400true

  • left >= 400trueright >= 400false

  • left >= 400falseright >= 400true

  • left >= 400falseright >= 400false