2009-11-20 74 views
3

我想在使用其他我沒有代碼的庫時仔細檢查我的代碼是如何操作的。雖然我可以在線執行此操作(即使用SysInternals的FileMon,RegMon和TCPView),但我想知道是否有一個很好的離線方法可以讓我在虛擬機中運行代碼,關閉虛擬機並對整個虛擬機映像?軟件測試時的清潔房間

回答

5

由於對系統的持續修改要麼在註冊表中的文件系統中,您可以使用一個小程序來列出硬盤驅動器上的所有文件並轉儲註冊表。
然後,你也可以在程序運行後做一個簡單的文件比較。 如果您使用的是virtualbox,我認爲您可以脫機掛載磁盤映像(即虛擬機不運行)。然而,從脫機文件轉儲註冊表可能會更困難。 請參閱google上的「Mount vdi」。

+0

我不明白你如何理解你的發現。例如,一個數據庫將您的數據分成多個頁面,更新索引,更新內部統計信息。你區分磁盤內容......這是不同的......這種差異很好嗎?你甚至不能保證兩次運行會產生相同的結果。 – djna 2009-11-21 07:14:18

+0

這是非常真實的。但是,只要你沒有安裝程序的內部知識就可以了。 當然,如果第三方使用加密的數據存儲,例如,你運氣不好。我不確定OP想達到什麼目的。 – slurdge 2009-11-21 09:41:04

5

所有集成測試肯定會使用您沒有源代碼,您的框架庫,數據庫驅動程序,數據庫,通信庫。其中的一些甚至可能不在您的代碼所在的同一臺機器上。我不清楚你希望達到的目標。你打電話給一個排隊系統,它會做各種祕密松鼠的事情。你前後分歧,現在你能說什麼?你知道那裏的數據格式應該代表你的請求嗎?

我看到測試是根據我正在使用的庫和系統的已發佈行爲來定義的。數據庫示例:我執行一些應該創建訂單的業務操作。我知道我定義的訂單,它們是否出現在數據庫中?在定義我的測試時,我可以根據數據庫中的記錄指定顯式預期結果。然後,我甚至可以自動化測試 - 將數據庫中的摘錄與預期結果進行比較。