2008-10-03 39 views
2

對「性能斷言檢查」系統的設計有什麼意見?性能斷言檢查系統的設計

的想法是,開發人員提出了一些斷言他/她的代碼,並使用這些測試代碼的表現演變。這種系統的經驗是什麼?

我的當前塊是「什麼是將指定語言(用來檢查指定的日誌或運行時間檢測)寫入的CLR或程序集或字節碼轉換成更好的方法? ?」

當前我寫了一個解析器,解析規範並將其保存在數據結構中。

回答

3

我們是否在我們的應用程序中嵌入了性能檢查?不是。原因是性能檢查本身需要時間,我們的應用程序對性能非常敏感。

取而代之,我們使我們的性能檢查測試。爲此,我們使用NUnit。對於我們每晚的構建,我們運行測試,我們生成一個具有詳細計時數據的日誌以及給定我們的要求的合格/不合格指示。由於我們保留了一段時間的日誌 - 永遠爲測試版和產品發佈 - 我們也可以跟蹤性能隨着時間的推移。

+0

這就是我們在參與過的項目中所做的。爲測試設置最大執行時間,並記錄實際時間。 – 2008-10-03 06:10:33

1

與Kevin類似,我在自動化迴歸測試中加入了性能日誌,這樣我就可以有效迴歸測試性能和功能。我們使用TestComplete進行自動迴歸,並且它自動完成了大量工作。手動添加它的主要原因是在每個檢查點比較此運行與上次運行的結果。這工作有點像

StartTest 
InitialiseCounter 
' 
' 
Do some testing 
' 
' 
CheckPoint 
GetElapsedTime 
Compare ElapsedTime with stored elapsed time from last run 
If difference is outside tolerence log an error 

(請原諒我的僞躲閃高亮)

0

許多語言現在有assert語句。他們可以被用來驗證你生成的斷言嗎?它們易於編寫,易於查找。問題是斷言失敗意味着程序停止。

如果您想要提供警告或日誌條目,斷言在運行時失敗,您可以嘗試if語句。

對於這種類型的代碼生成,人們通常使用簡單的模板工具來生成可以插入到應用程序中的適當源代碼。你可以看看Java的Velocity或Python的Mako來爲斷言條件生成源代碼。