我们已经了解了白盒测试的一般方法,现在是时候学习如何实际运用了。
- 测试目的
- 根据软件的结构和数据决定采取的白盒测试策略;
- 选取合适的测试用例;
- 测试结果分析方法。
- 测试计划
- 整体计划:选取合适的测试方法测试之前的平闰年判断程序;
-
测试评价标准:覆盖广度,测试结果与预期输出一致。
-
测试核心代码:
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>