2008-11-28 41 views
5

我即將對現有的Apache C模塊進行一些更改,以修復一些可能的安全漏洞和一般不良做法。然而,代碼的功能必須保持不變(除了修正錯誤的情況除外)。標準迴歸測試的東西似乎是有序的。我想知道是否有人知道在代碼中運行一些迴歸單元測試的好方法。我正在考慮一些沿用C-Unit的方法,但是與Apache APR以及狀態結構中的所有綁定相關,我想知道是否有一種很好的方法來測試它。例如,是否有可以與C-unit一起使用的預構建框架?有沒有一個運行Apache C模塊單元測試的框架?

感謝

彼得

回答

7

我一直在想回答這一段時間,但揣摩別人可能會拿出一個更好的答案,因爲我的是相當令人不滿意:不,我不是意識到任何這樣的單元測試框架。

我認爲你最好的選擇是嘗試和重構你的C模塊,使得它對httpd代碼庫的依賴包含在非常薄的粘合層中。我不會過分擔心APR的依賴關係,它可以很容易地鏈接到你的單元測試代碼中。就像使用請求記錄一樣,你應該試着抽出一點點。

我會走得很遠,並建議這樣的重構是一個好主意,如果代碼懷疑包含安全漏洞和不好的做法。這通常只是一個很大的工作。

您可能還會考慮的是運行集成測試而不是單元測試(理想情況下是兩者),即提出一組來自服務器的請求和預期響應,並運行程序以比較實際響應和預期響應。

所以,不是你一直在尋找的答案,你可能想到了你自己沿着這條線。但至少我可以從經驗告訴你,如果模塊由於商業原因而不能用新的東西替換,那麼爲了可測試性而重構模塊可能會在更長的時間內得到回報。

1

花了一些時間來看看周圍的interwebs爲你的一個問題,我很好奇自己。跨wiki文章指出

http://cutest.sourceforge.net/

用於Apache可移植的C運行時檢測出來。可能值得檢查一下。