糾正軟件中錯誤的方法

發表于:2010-10-18來源:作者:點擊數: 標簽:軟件
糾正軟件中錯誤的方法 軟件測試 1、跟蹤法 跟蹤執行可疑的程序段,是對小型程序糾錯又一種常用的策略。它的要求是,就是讓帶錯的程序“分步執行”,即每執行完一條語句(或指令),就暫時停下檢查執行的結果,確認正常后再繼續進行。許多高級語言都設有專用于

  糾正軟件中錯誤的方法   軟件測試

  1、跟蹤法

  跟蹤執行可疑的程序段,是對小型程序糾錯又一種常用的策略。它的要求是,就是讓帶錯的程序“分步執行”,即每執行完一條語句(或指令),就暫時停下檢查執行的結果,確認正常后再繼續進行。許多高級語言都設有專用于跟蹤糾錯的語句或命令。他們都具有讓程序分步執行的功能。

  對于較小的程序,用跟蹤執行來確定錯誤部位是相當有效的。例如:倘若再某一PASCAL程序中把語句

  FOR I:=1 to 10 中的10 誤寫為-10,則程序執行到語句就會直接跳過循環體中的語句,轉到for循環之后的語句去執行。

  但有些時候,發現程序出錯的語句其本身并無錯誤,問題倒出在位于它前面的一些語句上。例如,當某FORTRAN程序執行到語句ix=iy/(k/n)時發生了運行出錯,屏幕上顯示“整數上溢”。順著這條語句返回尋找,在它的前數行找到了給k,n賦值的語句:

  k=5

  n=6

  則不難想到,由于k/n整除所得結果為0,才導致iy被0除后發生上溢。像這樣從出錯處逐句返回探尋錯誤的根由,一般稱為回溯(back tracking)或反向跟蹤。而通常高級語言所設置的跟蹤命令都只提供正向跟蹤,反向跟蹤只能人工進行。

  當程序較長,包含的分支與嵌套又相當多時,跟蹤尤其是反向跟蹤的路徑變得多而且復雜。這是使用跟蹤法糾錯不僅效率不高,而且會變得難于執行,最好改用推理法進行糾錯。

  2、推理法

  推理法來源于定理證明,又可區分為歸納法和演繹法兩大類。

  歸納法是從個別到整體的推理過程。它從收集個別的故障癥狀開始,分析各種癥狀的相互關系后,就有可能將它們歸納為某一些假想的錯誤。如果這一些假想能被證實,就找到了真實的病根。

  演繹法是從一般到特殊的推理過程。根據測試獲得的錯誤癥狀,可以先列出一批可能的病因。接著在這一大范圍的設想中,逐一的排除根據不足或與其他測試結果有明顯矛盾的病因,然后對余下的一種或數種病因作詳細的鑒別,確定真正的病因。由于真正的病因是從大量可能病因中篩選得來的,所以此法有時也稱為“病因排除法(Cause Elimination)”

  3、試湊法

  這是一種不甚嚴格的糾錯策略。根據測試中暴露達到錯誤征兆,首先可設定一個可疑區。然后采用一些簡單的糾錯手段(例如在程序中插入打印語句),進一步獲取與可疑區有關的信息,借以肯定或修改原來的設想。如果可疑區沒有找準,便再來一遍,重置新的可疑區。這種“邊試邊瞧”的做法,糾錯的效率一般較低(這也是試湊(trial and error)一名的由來),故僅適用于結構比較簡單的小程序。

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

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