如何進行單元測試(5)

發表于:2015-07-31來源:uml.org.cn作者:葛志春點擊數: 標簽:
4.3 跟蹤調試 跟蹤調試不但是深入測試代碼的最佳方法,而且也是程序調試發現錯誤根源的有利工具。 測試類設計完成后,最好能借助代碼排錯工具來跟蹤

  4.3 跟蹤調試

  跟蹤調試不但是深入測試代碼的最佳方法,而且也是程序調試發現錯誤根源的有利工具。

  測試類設計完成后,最好能借助代碼排錯工具來跟蹤調試待測代碼段以深入的檢查代碼的邏輯錯誤?,F有的代碼開發工具(如:JBuilder)一般都集成了這類排錯工具。排錯工具一般由執行控制程序、執行狀態查詢程序、跟蹤程序組成。執行控制程序包括斷點定義、斷點撤銷、單步執行、斷點執行、條件執行等功能。執行狀態查詢程序包括寄存器、堆棧狀態、變量、代碼等與程序相關的各種狀態信息的查詢。跟蹤程序用以跟蹤程序執行過程中所經歷的事件序列(如:分支、子程序調用等)。程序員可通過對程序執行過程中各種狀態的判別進行程序錯誤的識別、定位及改正。

  對于模塊的單元跟蹤調試,最好能夠做到對被測模塊的每次修改,都對每個測試用例進行跟蹤執行一遍以排除所有可能出現或引進的錯誤。在時間有限的情況下也必須調用驅動模塊對所有的測試用例執行一次,并對出現錯誤或異常的測試用例跟蹤執行一次,以發現問題的根源。

  排錯過程往往是一個艱苦的過程,特別是那種算法復雜、調用子模塊較多的模塊,對于錯誤的定位來說并不是一件容易的事情。盡管排錯不是一門好學的技術(有時人們更愿意稱之為藝術),但還是有若干行之有效的方法和策略,下面介紹幾種排錯時應該采用的方法策略。

  1. 斷點設置,設置斷點對源程序實行斷點跟蹤將能夠大大提高排錯的效率。通常斷點的設置除了根據經驗與錯誤信息來設置外,還應重點考慮以下幾種類行的語句。

  1) 函數調用語句。子函數的調用語句是測試的重點,一方面由于在調用子函數時可能引起接口引用錯誤,另一方面可能是子函數本身的錯誤。

  2) 判定轉移/循環語句。判定語句常常會由于邊界值與比較優先級等問題引起錯誤或失效而作出錯誤的轉移。因此,對于判定轉移/循環語句也是一個重要的測試點。

  3) SQL語句。對于數據庫的應用程序來說,SQL語句常常會在模塊中占比較重要的業務邏輯,而且比較復雜。因此,它也屬于比較容易出現錯誤的語句。

  4) 復雜算法段。出錯的概率常與算法的復雜度成正比。所以越復雜的算法越需要作重點跟蹤,如遞歸、回朔等算法。

  2. 可疑變量查看,在跟蹤執行狀態下當程序停止在某條語句時可以查看變量的當前值和對象的當前屬性。通過對比這些變量當前值與預期值可以輕松的定位程序問題根源。

  3. SQL語句執行檢查,在跟蹤執行或運行狀態下將疑似錯誤的SQL語句打印出來,重新在數據庫SQL查詢分析器(如:Oracle SQL Plus)中跟蹤執行可以較高效的檢查糾正SQL語句錯誤。

  4. 注意群集現象,經驗表明測試后程序中殘存的錯誤數目與該程序中已發現的錯誤數目或檢錯率成正比。根據這個規律,應當對錯誤群集的程序段進行重點測試,以提高測試投資的效益。如果發現某一代碼段似乎比其他程序模塊更多的錯誤傾向時,則應當花費較多的時間和代價測試這個程序模塊。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97