2013-02-08 50 views
2

我最近偶然在這個(老化)的文章:是否有一個開源工具可以自動生成遺留代碼的測試用例?

http://imranontech.com/2007/01/04/unit-testing-the-final-frontier-legacy-code/

在這裏筆者據稱寫了一個perl腳本來自動生成測試用例。 他的策略是這樣的(引用):

  1. 閱讀頭文件我給了它。
  2. 提取函數原型。
  3. 給我找到的函數列表,讓我選擇 哪些是我想要創建單元測試的。
  4. 然後,它創建了一個DBX (的Solaris調試器)腳本,將打破點每次 選擇的函數被調用時,保存傳遞給 它的變量,然後繼續,直到該函數返回此時它 將保存返回值。

  5. 運行DBX 腳本下的可執行文件,這點我開始使用該應用程序爲 正常,只是通過大量的使用案例,我認爲會 通過代碼中的問題,特別情況下,跑了我認爲 它會碰到我想爲其創建單元測試 的函數中的邊緣情況。

  6. perl腳本然後把所有的實施例的運行,剝離出來 重複,然後自動生成包含單元C文件測試 對於每一個實施例(即,通過在所述輸入數據和驗證 返回值是編譯/鏈接一樣的例子來看)/冉 的單元測試,並扔掉了那些其失敗(即擺脫 輸入引起的功能表現不確定性)

我有一個很多Python和Fortran語言中的各種遺留代碼。這篇文章是從2007年開始的。在目前的單元測試框架中是否有類似的東西?

我會怎麼寫這樣的腳本?

回答

0

非常類似C的。另外,依賴於操作系統,我認爲(Solaris調試器)?我想說你應該看看「記錄/捕捉和回放」工具,但不知怎的,我認爲「生成」部分從未真正起飛過。

Python's testing tools taxonomy將是一個很好的開始。我想說你要麼通過使用硒或Dogtail應用程序記錄你的方式。該鏈接可讓您直接訪問該部分的Web測試工具,但也檢查其他人:模糊測試是一種類似於Golden Master的技術,有時可能有助於傳統應用程序,並且是「錄製/回放」技術。羽毛稱這種測試爲「特徵」測試,因爲它們表徵了傳統系統的行爲。

在文章非常好點你舉:

看一看自己的源代碼庫,看看哪些 功能/班都應用了最bug修正簽入的 錯誤修正80%往往是約佔20%的代碼。在這之後有 的聲音邏輯 - 經常有20%的代碼很差寫幾十個 或數百個「特例」黑客。

這是我真正開始的地方。你有沒有確定這些零件?分類標準中的簡單Git/SVB日誌使用腳本和覆蓋工具部分將與此一起使用。

不幸的是,我不能幫你 - 我的Python經驗有限,Fortran - 不存在。

相關問題