軟體測試·白盒測試

來源:互聯網
上載者:User

標籤:

  在軟體測試中,大家對於白盒測試應該都很熟悉,白盒測試是與黑箱測試完全相反的一種測試,正如它們的名字一樣相反。黑箱測試是基於輸入和輸出的測試,不用考慮其內部的執行情況,而白盒測試則是依賴於程式內部構成來進行的一種測試。

  白盒測試又稱結構測試、邏輯驅動測試或基於程式的測試。白盒測試一般被用來剖析器的內部結構。白盒測試的測試者可以看到被測程式的內部,因此,白盒測試要求對被測的程式做到一定程度的覆蓋,並且要求軟體中的各類成分都要被測試,而白盒測試的優良標準也會以程式的某種成分是否被測試來評判,這也被稱為基於覆蓋的測試技術。

  白盒測試在不同的時期提出了不同的覆蓋準則,到現在已經有幾十種不同的覆蓋準則。

  這次從兩個方面來介紹一些用的比較廣泛並且普遍被接收的覆蓋準則:

  一、控制流程測試

    在軟體的發展曆史中,人們發現非結構化的程式會給測試,排錯及維護帶來極大的不便,因此人們開始要求寫出的程式是結構良好的,符合結構化的。而控制流程圖在用來刻畫程式結構已經非常成熟。此後人們按照覆蓋準則在控制流程中提出了幾個著名的覆蓋準則。

    1、語句覆蓋準則

      語句覆蓋準則是最簡單的測試方法之一,當然也是比較暴力的一種測試方法、其要求被測程式的每條語句都被運行,而在控制流程圖中則表現在每條語句對應的節點都被覆    蓋。語句測試的覆蓋率表達為在控制流程圖中被覆蓋的節點數[NODE(LT)]除以控制流程圖中的所有節點數(NG)。

            運算式為 語句測試的覆蓋率 = ||NODE(LT)||/||NG ||

    2、分支覆蓋準則

      語句覆蓋測試時最基本的測試手段,因此其對很多軟體錯誤而言還是無能為力,所以在這個時候更強的覆蓋準則就被提出來了。分支測試是要求在軟體測試中每一分支至少要獲得一個“真”和一次“假”;即為每一個分支都必須進行一次正確和一次錯誤的測試。因此也稱分支覆蓋測試包含語句覆蓋測試。分支測試的覆蓋率運算式為控制流程圖中所有被覆蓋的有向邊數[EDGE(LT)]除以控制流程圖中的所有有向邊的總數(EG)。

            運算式為 分支測試的覆蓋率 = ||EDGE(LT)||/||EG||

    3、路徑覆蓋準則

      路徑覆蓋準則是要求在觀察到的程式的整個路徑中,要求程式的運行能夠覆蓋所有的完整路徑。

      LT邊說GP中的被覆蓋的完整路徑,EP(GP)為控制流程圖中的所有完整路徑,其覆蓋率的運算式為:

            路徑覆蓋測試的覆蓋率 = ||LT||/||EP(GP)||

            

  二、資料流測試

    1、資料流覆蓋準則

      在資料流測試中最簡單的測試方式是測試每一個資料定義的正確性。其定義為: 如果對具有資料流資訊的控制流程圖GP中的每一個變數x的定義性出現,若該定義性出現能夠可行的傳遞到該變數的某一個引用性出現,那麼LT重存在一條路徑A,它包含一條子路徑A`,使得A`將該定義出現傳遞到某一個引用性出現。則稱測試資料集T對測試程式P滿足定義覆蓋準則。

  以上準則即為在白盒測試中適用性高的其中幾個。

軟體測試·白盒測試

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.