日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件测试——逻辑覆盖

發布時間:2023/12/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件测试——逻辑覆盖 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、語句覆蓋(Statement Coverage)

對程序的邏輯覆蓋很少,只關心判定表達式的值,是很弱的邏輯覆蓋標準

  • 【基本思想】:設計若干測試用例,運行被測程序,使程序中每個可執行語句至少執行一次。
  • 【優點】:檢查所有語句、代碼覆蓋率高
  • 【缺點】:無法檢查出條件、循環語句的錯誤

2、判定覆蓋(Decision Coverage)

判定覆蓋比語句覆蓋強一些,能發現一些語句覆蓋無法發現的問題。但是往往一些判定條件都是由多個邏輯條件組合而成的,進行分支判斷時相當于對整個組合的最終結果進行判斷,這樣就會忽略每個條件的取值情況,導致遺漏部分測試路徑。

  • 【基本思想】:設計若干測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少經歷一次,即判斷真假值均曾被滿足。
  • 【優點】:判定覆蓋具有比語句覆蓋更強的測試能力。
  • 【缺點】:往往大部分的判定語句是由多個邏輯條件組合而成,若僅僅判斷其整個最終結果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑,判定覆蓋仍是較弱的邏輯覆蓋。

3、條件覆蓋(Condition Coverage)

通常而言條件覆蓋比判定覆蓋強,因為條件覆蓋使得判定中的每一個條件都取到了不同的結果,這一點判定覆蓋則無法保證。但條件覆蓋也有缺陷,因為它只能保證每個條件都取到了不同結果,但沒有考慮到判定結果,因此有時候條件覆蓋并不能保證判定覆蓋。

  • 【基本思想】:設計若干測試用例,執行被測程序以后要使每個判斷中每個條件的可能取值至少滿足一次。
  • 【優點】:能夠檢查所有的條件錯誤。
  • 【缺點】:不能保證所有的分支(判定)都能覆蓋,仍是較弱的覆蓋方式。

4、判定/條件覆蓋(Decision/Condition Coverage)

判定/條件覆蓋,說白了就是我們設計的測試用例可以使得判斷中每個條件所有的可能取值至少執行一次(條件覆蓋),同時每個判斷本身所有的結果也要至少執行一次(判定覆蓋)。不難發現判定條件覆蓋同時滿足判定覆蓋和條件覆蓋,彌補了兩者各自的不足,但是判定條件覆蓋并未考慮條件的組合情況。

  • 【基本思想】:設計足夠的測試用例,使得判斷條件中的所有條件可能至少執行一次取值,同時所有判斷的可能結果至少執行一次。
  • 【優點】:既考慮了每一個條件,又考慮了每一個分支,發現錯誤的能力強于分支覆蓋和條件覆蓋
  • 【缺點】:仍然不能覆蓋所有的路徑,有進一步提升的空間

5、條件組合覆蓋(Branch Condition Combination Coverage)

條件組合覆蓋,測試用例應該使得每個判定中的各個條件的各種可能組合都至少出現一次。顯然,滿足條件組合覆蓋的測試用例一定是滿足判定覆蓋、條件覆蓋和判定條件覆蓋的。

  • 【基本思想】:設計足夠的測試用例,使得所有可能的條件取值組合至少執行一次。
  • 【優點】:能夠檢查所有的條件錯誤
  • 【缺點】:不一定能使程序中的每條路徑都執行到,用例數明顯增加

6、路徑覆蓋(Path Coverage)

路徑覆蓋,意思是說我們設計的測試用例可以覆蓋程序中所有可能的執行路徑。這種覆蓋方法可以對程序進行徹底的測試用例覆蓋,比前面講的五種方法覆蓋度都要高。

  • 【基本思想】:要求設計足夠多的測試用例,使得程序中所有的路徑都至少執行一次 。
  • 【優點】:這種測試方法可以對程序進行徹底的測試,比前面五種的覆蓋面都廣。
  • 【缺點】:需要設計大量、復雜的測試用例,使得工作量呈指數級增長,不一定把所有的條件組合都覆蓋。

總結一下:

  • 在實際的操作中,要從代碼分析和代碼調研入手,可以選擇上述方法中的某一種,或者好幾種方法的結合,設計出高效的測試用例,盡可能全面地覆蓋到代碼中的每一個邏輯路徑。
  • 白盒測試又很少能使用手工進行,選擇一款不錯的自動化工具也是很重要的,之前工作中使用的testbed工具進行這種覆蓋測試非常方便,而且提供一個MC/DC(修正條件/判定覆蓋)的方式,在能夠保證覆蓋效果的情況下,盡可能減少測試用例的數量
  • ?

    總結

    以上是生活随笔為你收集整理的软件测试——逻辑覆盖的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。