发信人: frenger(frenger)
整理人: xiange(2004-03-09 17:28:15), 站内信件
|
從小喜歡看偵探小説、電影,也幻想過自己做了偵探去破案。最近更喜歡上看CSI,看他們現場取證,抽絲剝繭找到真兇。
我們的測試已經如火如荼,從中也發現不少問題,一些新的程序員第一次參與這樣大規模嚴謹的測試,遇到問題不是太懂得去查錯,於是特別寫了一些粗淺的經驗和他們分享。一些簡單錯誤的查錯就不記載了,對一些複雜的系統批量處理錯誤的差錯方法覺得有必要寫到日記中,下個項目遇到同樣的情況就不必再寫了。
節選如下:
4、系統批量處理複雜的錯誤(例如:數據關係錯誤、複雜的計息處理、複雜報表數據錯誤、BACK DAY複雜處理、複雜的邏輯處理等等)
這一類錯誤是最頭疼的,主要原因是:
- 在開發環境不能模擬,不能找到足夠的信息進行查錯
- 与聯機數據的產生有複雜關係,需要追查多個交易產生的數據
- 特殊會計日期或者多個步驟累積產生了錯誤,查錯無從入手
對付這些問題,我一般採取以下的方法:
• 盡量收集錯誤的信息,收到PROBLEM LOG,馬上聯係測試人員了解錯誤的具體細節(相當於查案時候找到目擊證人了解情況)
• 盡快把當天系統批量運行的OUTPUT QUEUE整理,COPY到自己的機器,進行詳細的分析(相當於現場取證、還有回去之後化驗,注意:現場和我們的OUTPUT QUEUE一樣,不盡快取證,就會定期被刪除)
• 接下來就是對得到的信息進行分析,從結果往前推,不能放過任意的疑點,哪怕是寫程序時自己很肯定的地方(相當於警探根據化驗結果進行推論、驗證)
• 有可能的話,自己在開發環境模擬數據進行測試(相當於案例重演)
• 不能模擬數據的時候,對特殊的程序可以採用重新讀程序的方法,從輸入的數據開始,自己模擬電腦走一遍程序的分支(相當於犯罪心理學家的犯罪分析)
• 最後還不能定位的時候,就要在程序的關鍵地方留下一些DEBUG的處理,可以下次出錯的時候生成一些希望得到的信息;同時,要重新設定一些一樣或者類似的CASE,以便錯誤再次發生(相當於派臥底切查) |
|