我们已经了解了白盒测试的一般方法,现在是时候学习如何实际运用了。
- 测试目的
- 根据软件的结构和数据决定采取的白盒测试策略;
- 选取合适的测试用例;
- 测试结果分析方法。
- 测试计划
- 整体计划:选取合适的测试方法测试之前的平闰年判断程序;
- 测试评价标准:覆盖广度,测试结果与预期输出一致。
- 测试核心代码:
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;
}
- 测试评价标准:覆盖广度,测试结果与预期输出一致。
- 根据代码绘制流程图与有向图
- 测试用例设计
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:
- 用例编号2:
- 用例编号3:
- 用例编号4:
- 用例编号5:
- 用例编号6:
- 用例编号7:
- 将测试结果和预期结果对比后发现,测试基本完成。
实验结论
白盒测试依据程序内部细节、对软件的逻辑路径进行覆盖测试,在软件测试中具有重要意义。测试人员在了解软件内部代码的情况下,能更具针对性的设计测试用例,以免在一些不重要的地方浪费精力。在选择白盒测试方法的时候,要针对代码选择合适的覆盖方法,以更多的覆盖代码同时提高测试质量。
附:全部代码如下
<!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>