2010-09-13 131 views

回答

2

我覺得IBM Rational測試覆蓋工具的儀器對象代碼。

假設你有這樣的工具,但沒有訪問源,代碼覆蓋究竟意味着什麼,除了100%?

如果你沒有100%的覆蓋率,你會知道你沒有做過什麼。 但你無法知道什麼。

+0

我有興趣使用模糊測試和代碼覆蓋率分析來查找安全漏洞。首先,我可以在正常操作條件下運行應用程序,並識別塵土飛揚的未使用代碼路徑。然後嘗試在假定最少覆蓋的代碼可能具有最多漏洞的情況下確定漏洞。 – 2010-09-13 19:50:28

+0

但是當你沒有源時,究竟什麼是「塵土飛揚的未使用的路徑」?看起來你所擁有的只是「這條指令沒有被執行」,你必須自己追蹤(下游分支)路徑。即便如此,你也不知道這個路徑代表了什麼;與密碼相關的東西,或與打印「磁盤已滿」相關的內容?那麼你會怎麼做一個未執行的指令位置列表? – 2010-09-13 21:11:55

+0

這是一個好點;我以某種方式相信自己,我可以通過檢查其他輸入如何映射到指令中,來了解如何形成輸入來運行未使用的代碼。現在我想更多了,看起來相當困難。 – 2010-09-14 15:04:56

0

如果您有入口點數(公共方法),則可以測試覆蓋範圍。儘管如此,我還不知道任何工具。 否則,你將不得不測試彙編代碼覆蓋率,我不知道它是否可能。

1

舊帖子...但我的兩美分。

如果你有一堆罐子,並且你知道你正在使用的是什麼類/方法,你可以使用Emma來測試這些罐子,並運行你的示例應用程序對付這些罐子。

在我的情況下,我有我的公司用來構建它的網頁的實際專有組件(生成html代碼)的jar。我們有一個示例應用程序,利用這些組件以及針對示例應用程序運行的一組測試。我編寫了一個ant任務,將maven依賴關係複製到一個目錄中,對它們進行測試並對這些測試過的jar進行測試。這個任務是從Maven POM調用的,因此是構建過程的一部分。

此外,作爲構建過程的一部分,我們處理emma coverage數據以生成報告。此報告顯示了我們沒有源代碼的jar中的類和方法!希望這可以幫助。