第二部分:白盒测试之实例

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

  •  测试目的
  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;
    }
  4. 测试评价标准:覆盖广度,测试结果与预期输出一致。
  5. 根据代码绘制流程图与有向图

  • 测试用例设计
    •   根据分支-谓词覆盖准则设计用例:

      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>
原文地址:https://www.cnblogs.com/wwq1993/p/4458668.html