2010-09-14 166 views
0

你好,關於調試的另一個問題是:當我知道parameterset時自動生成測試用例。而在開發過程中做這一切的同時,而不是(可以踢自己)關於單元測試的建議

我有一組的,我想測試我的軟件參數。 (僅〜12參數)。當然,這些參數通常是整數,所以對於每個參數,我可以有4個有意義的值(0,非常大,通常很大,通常很小)。

有沒有辦法可以自動生成我的測試用例?會爲我節省很多時間。我已經必須親自檢查每個測試案例,我不是嗎?我的程序中有很多產生輸出到控制檯,所以正常的斷言可能不會起作用,我大部分時間也在自制數據結構上工作,所以我不能使用簡單的斷言。

我的夢想選擇是一種反向的正則表達式,在這裏我設置的規則,並讓自己的一些文件生成的,我可以作爲輸入使用(我的軟件有粗腳本語言)的。這樣我可以組裝所有輸入文件並逐個測試它們。

期待聽取您的善意建議。

歡呼聲

+0

看看http:// fortranwiki。org/fortran/show /單元+測試+框架 – Wildcat 2010-09-14 13:47:45

回答

2

有很多的方法來產生在方案中的測試用例 - 雖然你是什麼形式的輸入,你的程序上有點模糊和單位需要承擔。對於我的一個Fortran程序,我使用模板輸入參數文件,bash腳本和make文件。 make文件在測試假目標上調用時:

a)編譯程序; b)運行bash腳本,它使用sed替換模板參數文件中的佔位符,以創建128(或其他)測試輸入文件; c)將所有測試作業提交給集羣上的作業管理系統。

一旦他們的工作已經完成了,我有一些其他的腳本與基準比較輸出,收集統計數據,諸如此類的事情。

如果您需要更具體的建議,請發佈更具體的問題。

編輯:使用sed的bash腳本里面:

假設參數輸入模板文件包含要更換3碼:$ FREQ $,$ NUM $ $和$ TOL。然後我寫了一個bash腳本,用3 - 深循環嵌套是這樣的:

for frq in 0.01 0.0 1 10 
do 
    for np in 1 2 4 8 16 
    do 
     for tol in 0.001 0.0001 0.00001 
      sed .... 
     done 
    done 
done 

它不漂亮,但它的工作原理,以及它爲我節省了與更爲複雜的解決方案,如xUnit的測試或Python編程摔跤。

+0

聽起來像我所需要的。你如何使用sed來使用數據基礎?我也在尋找一個「反向」正則表達式生成器。到目前爲止不幸 – tarrasch 2010-09-14 14:28:26

+0

謝謝你會嘗試。 – tarrasch 2010-09-15 13:48:06

1

我看到你FORTRAN工作,你可能處理的xUnit的FORTRAN的版本之一。作爲JUnit的用戶,我建議parameterized tests - 看看這個概念是否適用於你的情況。

+0

謝謝我會讀一些關於它,但會嘗試上面的解決方案 – tarrasch 2010-09-15 13:48:28