我们已经了解了白盒测试的一般方法,现在是时候学习如何实际运用了。

  •  测试目的
  1. 根据软件的结构和数据决定采取的白盒测试策略;
  2. 选取合适的测试用例;
  3. 测试结果分析方法。
  • 测试计划
  1. 整体计划:选取合适的测试方法测试之前的平闰年判断程序;
  2. 测试评价标准:覆盖广度,测试结果与预期输出一致。
  3. 测试核心代码:
function test(){
    var input=document.getElementById("input").value;
       if(!checkNum(input))
        document.getElementById("output").innerHTML="请检查是否输入非法字符.";
    else if(input==0||input>9999)
        document.getElementById("output").innerHTML="输入年份有误.";
    else if((input%4==0&&input%100!=0)||input%400==0)
        document.getElementById("output").innerHTML="输入年份为闰年.";
    else
        document.getElementById("output").innerHTML="输入年份为平年.";
}
function checkNum(value) {
    var Reg = /^[0-9]*$/;
    if (Reg.test(value)) return true;
    return false;
}
  1. 测试评价标准:覆盖广度,测试结果与预期输出一致。
  2. 根据代码绘制流程图与有向图
  • 测试用例设计

C1

!checkNum(input)

C2

input==0

C3

input>9999

C4

input%4==0

C5

input%100!=0

C6

input%400==0

用例编号

Input

C1  C2  C3  C4  C5  C6

B1  B2  B3

覆盖路径

1

-50

1    0   0   0    0   0

1    0   0

Start,1,3,end

2

0

0    1   0   0    0   0

0    1   0

Start,1,2,5,end

3

10000

0    0   1   0    0   0

0    1   0

Start,1,2,5,end

4

10

0    0   0   0    0   0 

0    0   0

Start,1,2,4,6,end   

5

300

0    0   0   1    0   0

0    0   0

Start,1,2,4,6,end

6

8

0    0   0   1    1   0

0    0   1

Start,1,2,4,7,end

7

400

0    0   0   1    0   1

0    0   1

Start,1,2,4,7,end

用例编号

期望输出

1

请检查是否输入非法字符.

2

输入年份有误.

3

输入年份有误.

4

输入年份为平年.

5

输入年份为平年.

6

输入年份为闰年.

7

输入年份为闰年.

  • 测试结果:

    根据用例进行测试,结果截图如下:

  • 用例编号1:
  • java白盒测试性能测试 白盒测试测试用例模板_用例

  • 用例编号2:
  • java白盒测试性能测试 白盒测试测试用例模板_用例_02

  • 用例编号3:
  • java白盒测试性能测试 白盒测试测试用例模板_非法字符_03

  • 用例编号4:
  • java白盒测试性能测试 白盒测试测试用例模板_java白盒测试性能测试_04

  • 用例编号5:
  • java白盒测试性能测试 白盒测试测试用例模板_用例_05

  • 用例编号6:
  • java白盒测试性能测试 白盒测试测试用例模板_非法字符_06

  • 用例编号7:
  • java白盒测试性能测试 白盒测试测试用例模板_非法字符_07

  • 将测试结果和预期结果对比后发现,测试基本完成。

实验结论

白盒测试依据程序内部细节、对软件的逻辑路径进行覆盖测试,在软件测试中具有重要意义。测试人员在了解软件内部代码的情况下,能更具针对性的设计测试用例,以免在一些不重要的地方浪费精力。在选择白盒测试方法的时候,要针对代码选择合适的覆盖方法,以更多的覆盖代码同时提高测试质量。

附:全部代码如下

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="GB2312">
<style>
body{text-align:center}
</style>
<body>
请输入年份:<input type="text" id="input" autofocus="autofocus"/>
<input type="submit" value="确定" onclick="test()"/>
<p id="output"></p>
<script>
function test(){
    var input=document.getElementById("input").value;
    if(!checkNum(input))
        document.getElementById("output").innerHTML="请检查是否输入非法字符.";
    else if(input==0||input>9999)
        document.getElementById("output").innerHTML="输入年份有误.";
    else if((input%4==0&&input%100!=0)||input%400==0)
        document.getElementById("output").innerHTML="输入年份为闰年.";
    else
        document.getElementById("output").innerHTML="输入年份为平年.";
}
function checkNum(value) {
    var Reg = /^[0-9]*$/;
    if (Reg.test(value)) return true;
    return false;
}
</script>
</body>
</html>