我们已经了解了白盒测试的一般方法,现在是时候学习如何实际运用了。
测试评价标准:覆盖广度,测试结果与预期输出一致。
测试核心代码:
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>
原文:http://www.cnblogs.com/wwq1993/p/4458668.html