2013-01-06 71 views
0

是否有工具顯示提供決策/條件覆蓋的測試用例的數量?決策/條件覆蓋範圍

爲前:

if(x>0) 

if(x<=10 && y>0) 

3箱子足夠供決定/條件覆蓋。

if(x>0) 

if(x<=10 || y>0) 

4個案例足以作出決定/條件覆蓋。

這是真的嗎?

回答

1

可能不是。*除了這樣的微不足道的情況之外,很難弄清楚可能的情況的數量。

另一方面,有一些代碼覆蓋工具可以跟蹤您的代碼在測試中實際運行的百分比。


*我對衝我的賭注;這是很難證明一個否定的;)

+0

現有的白盒測試用例生成工具顯然不能保證它們能夠爲所有程序提供完美的覆蓋,但它們已經足夠成熟,可以成爲受歡迎的幫助(也就是說,它們處理的程序不夠平凡以至於存在缺陷)。 –

0

是的,有工具可以生成測試用例來實現覆蓋。如果所有你感興趣的只是數字,一旦他們都在那裏,你可以數它們。生成的測試套件通常至少具有以下特性:每個測試用例在添加(按順序)時都會提高覆蓋率。由於它們的工作方式,這些工具在實現的覆蓋標準方面通常是靈活的。我想他們都允許決定/條件覆蓋。

我們提出了一種新的符號執行工具KLEE,它能夠自動生成測試,以在各種複雜和環境密集的程序中實現高覆蓋率。

http://llvm.org/pubs/2008-12-OSDI-KLEE.html

另一個測試用例生成工具是PathCrawler

第三種是內部工具​​,Microsoft使用。

這些工具依賴的技術的通用名稱是concolic testing。正如Oli在他的回答中指出的那樣,這些工具正在解決這個問題是一個難題,設計空間非常大,而且這些工具之間的細節差別很大。