第二部分:白盒測試之實例


我們已經了解了白盒測試的一般方法,現在是時候學習如何實際運用了。

  •  測試目的
  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>

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM