當前位置:首頁 » 軟體設計 » 軟體調試

軟體調試

發布時間: 2020-12-11 23:51:00

軟體調試技術包括

軟體調試技術包括:

1、分析和推理;

設計人員和開發人員根據軟體缺陷問題的信息,分析和推理調試軟體。

根據軟體程序架構自頂向下縮小定位范圍,確定可能發生問題的軟體組件。

根據軟體功能,軟體運行時序定位軟體問題。

根據演算法原理,分析和確定缺陷問題發生的根源。

2、歸納類比法;

歸納法是一種從特殊推斷一般的系統化思考方法,歸納法調試的基本思想是:從一些線索(錯誤徵兆)著手,通過分析它們之間的關系來找出錯誤。該方法主要是根據積累的工作經驗和案例處理調試工作。

根據工作經驗和比對程序設計中類似問題的處理方式進行調試工作。

咨詢相關部門和有經驗的相關人員。

查找相關文檔和案例,為處理問題提供思路和方法。在軟體開發過程中,通常對每個缺陷問題進行跟蹤管理,將解決問題的方案和過程詳細記錄。

收集出錯的信息,列出數據,包括輸入,輸出,歸納整理,發現規律,從線索除法,尋找線索之間的聯系。也就意味著:從特殊到一般。

3、跟蹤回朔;

在小程序中常用的一種有效的調試方法,一旦發現了錯誤,人們先分析錯誤的徵兆,確定最先發現「症狀「的位置然後,人工沿程序的控制流程,向回追蹤源程序代碼,直到找到錯誤根源或確定錯誤產生的范圍。

例如,程序中發現錯誤處是某個列印語句,通過輸出值可推斷程序在這一點上變數的值,再從這一點出發,回溯程序的執行過程,反復思考:「如果程序在這一點上的狀態(變數的值)是這樣,那麼程序在上一點的狀態一定是這樣···「直到找到錯誤所在。

在軟體開發通常採用基線與版本管理。基線為程序代碼開發提供統一的開發基點,基線的建立有助於分清楚各個階段存在的問題,便於對缺陷問題定位。軟體版本在軟體產品的開發過程中生成了一個版本樹。軟體產品實際上是某個軟體版本,新產品的開發通常是在某個軟體版本的基礎上進行開發。

開發過程中發現有問題,可以回退至版本樹上的穩定版本,查找問題根源。

通過基線版本序列可以追蹤產品的各種問題,可以重新建立基於某個版本的配置,可以重現軟體開發過程中的軟體缺陷和各種問題,進行定位並查找問題根源。

4、增量調試;

軟體開發大多採用軟體配置管理和持續集成技術。開發人員每天將評代碼提交到版本庫。持續集成人員完成集成構建工作。

可以通過控制持續集成的粒度(構建時間間隔),控制開發人員提交到版本庫的程序代碼量,從而便於對缺陷問題定位。

通常每天晚上進行持續集成工作,發現問題時,開發人員實際上只需要調試處理當天編寫的代碼。

5、寫出能重現問題的最短代碼;

採用程序切片和插樁技術寫出能重現問題的最短代碼調試軟體模塊。

程序切片程序切片是通過在特定位置消除那些不影響表達式計算的所有語句,把程序減少到最小化形式,並仍能產生給定的行為。

使用切片技術,可以把一個規模較大並且較復雜的軟體模塊轉換成多個切片程序。這些切片程序相對原來的程序,簡單並且易於調試和測試。

程序插樁程序插樁方法是在被測程序中插入某些語句或者程序段來獲取各種信息。通過這些信息進一步了解執行過程中程序的一些動態特性。一個軟體組件的獨立調試和測試需要採用插樁技術,該組件調用或運行需要樁模塊。在軟體模塊的調試過程中程序切片和程序插樁可以結合起來使用。

6、日誌追蹤技術;

日誌是一種記錄機制,軟體模塊持續集成構建過程中,日誌文件記錄了有用信息。若構建失敗,通過查看日誌文件,將信息反饋給相關人員進行軟體調試。

7、調試和測試融合的技術;

測試驅動開發。

測試驅動開發是一種不同於傳統軟體開發流程的開發方法。在編寫某個功能的代碼之前先編寫測試代碼,然後編寫測試通過的功能代碼,這有助於編寫簡潔可用和高質量的代碼。

開發與測試融合。

程序開發人員除了進行程序代碼的編寫,白盒測試,也要完成基本的功能測試設計和執行。這樣有助於程序開發人員更好地開展調試工作。

程序開發人員可以通過交叉測試來解決測試心理學的問題(不能自己測試自己)。採用這種模式測試人員的數量會減少,專業的測試人員去做其他復雜的測試工作。

研發中的很多低級缺陷會盡早在開發過程中被發現,從而減少缺陷後期發現的成本。

8、強行排錯;

這種調試方法目前使用較多,效率較低,它不需要過多的思考,比較省腦筋。例如:

通過內存全部列印來調試,在這大量的數據中尋找出錯的位置。

在程序特定位置設置列印語句,把列印語句插在出錯的源程序的各個關鍵變數改變部位,重要分支部位,子程序調用部位,跟蹤程序的執行,監視重要變數的變化

自動調用工具,利用某些程序語言的調試功能或專門的互動式調試工具,分析程序的動態過程,而不必修改程序。

應用以上任一種方法之前,都應當對錯誤的徵兆進行全面徹底的分析,得出對出錯位置及錯誤性質的推測,再使用一種適當的調試方法來檢驗推測的正確性。

9、演繹法調試;

演繹法是一種從一般原理或前提出發,經過排除和精華的過程來推導出結論的思考方法,演繹法排錯是測試人員首先根據已有的測試用例,設想及枚舉出所有可能出錯的原因作為假設,然後再用原始測試數據或新的測試,從中逐個排除不可能正確的假設,最後,再用測試數據驗證餘下的假設確是出錯的原因。

列舉所有可能出錯原因的假設,把所有可能的錯誤原因列成表,通過它們,可以組織,分析現有數據。

利用已有的測試數據,排除不正確的假設。

仔細分析已有的數據,尋找矛盾,力求排除前一步列出所有原因,如果所有原因都被排除了,則需要補充一些數據(測試用例),以建立新的假設。

改進餘下的假設;

利用已知的線索,進一步改進餘下的假設,使之更具體化,以便可以精確地確定出錯位置;

證明餘下的假設。

(1)軟體調試擴展閱讀:

軟體調試技術的內容:

CPU的調試支持,包括異常、斷點、單步執行、分支監視、JTAG、MCE等。

Windows操作系統中的調試設施,包括內核調試引擎、用戶態調試予系統、驗證器、Dr.Watson、WER、ETW、故障轉儲、WHEA等。

VisualC/C++編譯器的調試支持,包括編譯期檢查、運行期檢查,以及調試符號。

WinDBG調試器的發展歷史、模塊結構、工作模型、使用方法、主要調試功能的實現細節,以及遍布全書的應用實例。

內核調試、用戶態調試、JIT調試、遠程調試的原理、實現和用法。異常的概念、分發方法、處理方法(SEH、VEH、CppEH),未處理異常,以及編譯器編譯異常處理代碼的方法。

調試符號的作用、產生過程、存儲格式和使用方法。棧和堆的結構布局、工作原理和有關的軟體問題,包括棧的自動增長和溢出,緩;中區溢出,溢出攻擊,內存泄漏,堆崩潰等。

⑵ 單片機軟體調試方法,請問單片機程序調試都有什麼方法

用keil調試,主要是設置斷點,單步執行,運行到游標處,查看運行時間,監視變數和表達式的值,這些都是常用的手段,你仔細看看工具欄就知道了

⑶ 什麼是軟體調試

軟體測試是為來了發現錯誤而執行程源序的過程。或者說,軟體測試是根據軟體開發各階段的規格說明和程序的內部結構而精心設計一批測試用例(即輸入數據及其預期的輸出結果),並利用這些測試用例去運行程序,以發現程序錯誤的過程。
(1)測試是為了發現軟體中存在的錯誤;調試是為了證明軟體開發的正確性。
(2)測試以已知條件開始,使用預先定義的程序,且有預知的結果,不可預見的僅是程序是否通過測試;調試一般是以不可知的內部條件開始,除統計性調試外,結果是不可預見的。
(3)測試是有計劃的,需要進行測試設計;調試是不受時間約束的。
(4)測試經歷發現錯誤、改正錯誤、重新測試的過程;調試是一個推理的過程,並且在開發的整個過程中都必須進行調試。
(5)測試的執行是有規程的;調試的執行往往要求開發人員進行必要推理以至知覺的"飛躍"。
(6)測試經常是由獨立的測試組在不了解軟體設計的條件下完成的;調試必須由了解詳細設計的開發人員完成。
(7)大多數測試的執行和設計可以由工具支持;調式時,開發人員能利用的工具主要是調試器。

⑷ 軟體測試和軟體調試的關系是什麼(不是區別)

軟體測試是軟體測試人員和程序員都參與的一項工作,是貫穿整個生命周期的,
只需要發現軟體的錯誤,而軟體調試主要是程序員自己參與,對程序(設計、編
碼)進行修改、排除錯誤,主要是在開發階段。

⑸ 怎麼將驅動軟體調試到最好

是什麼設備的驅動軟體呢,
下載一個驅動精專靈來管屬理吧
http://drivers.mydrivers.com/drivers/258-103539-Mydrivers-2009-B1-For-Win2000-XP-2003-Vista-Win7/

⑹ LonWorks軟體調試方法

Nico LonWorks™調試手冊
一、調試前抄准備
1、安裝襲LonWorks™的調試軟體LonMaker for Windows

2、1隻用來下載程序的USB編程介面U10

3、整理出現場「迴路表」和「場景表」

二、開始編程

⑺ 幾個主要軟體調試方法及調試原則

這個跟抄你用什麼調試器有一定襲關系
如果你用VC6.0的調試器,那麼可能你的調試手段就會受一定限制,VC下主要就是
單步,步入,堆棧和寄存器的查看,變數的查看,普通斷點,條件斷點,內存訪問斷點;
如果你用OllyDbg,那麼除了上述手段外,還有硬斷點,內存讀/寫斷點等
如果你用windbg的話,手段也很豐富,就是命令多了點,可能需要你去記;
大多數調試器的常用手段就是我上面說的那些了

⑻ 一個vs軟體調試問題

大括弧外的那個是變數的值,放在這里就是指針的值,大括弧里的是指針指向的值,就是我們內通常用*p這樣的形式容獲得的值。如this指向自身類對象,所以大括弧里會把這個類的結構顯示出來,顯得比較復雜。看下面的例子更清楚

⑼ 軟體(程序)調試的任務是什麼

A,肯定的告訴你。選C,如真是所有,那軟體就不存在BUG,這個可能么

熱點內容
美發店認證 發布:2021-03-16 21:43:38 瀏覽:443
物業糾紛原因 發布:2021-03-16 21:42:46 瀏覽:474
全國著名不孕不育醫院 發布:2021-03-16 21:42:24 瀏覽:679
知名明星確診 發布:2021-03-16 21:42:04 瀏覽:14
ipad大專有用嗎 發布:2021-03-16 21:40:58 瀏覽:670
公務員協議班值得嗎 發布:2021-03-16 21:40:00 瀏覽:21
知名書店品牌 發布:2021-03-16 21:39:09 瀏覽:949
q雷授權碼在哪裡買 發布:2021-03-16 21:38:44 瀏覽:852
圖書天貓轉讓 發布:2021-03-16 21:38:26 瀏覽:707
寶寶水杯品牌 發布:2021-03-16 21:35:56 瀏覽:837