毛嶺霞
摘要:本文較系統地闡述了作者經過實踐、總結的系統開發所必須經歷的重要階段-調試與測試的步驟和方法,實踐證明了它的實用性和可行性。
關鍵詞:系統設計;調試;系統模型;斷點
系統設計在經過了系統分析、系統設計、系統實施階段后,便有了一個完整的應用系統。但設計一個系統的目的是為了應用,設計過程所做的全部工作都是為了讓系統能夠正常運行,且運行結果正確,滿足用戶的需求。因此,應用程序設計完成后,雖然語法上已無錯誤,但可能在邏輯上存在錯誤,不能實現其設計功能,所以還要進行關鍵的調試運行工作。下面,就本人開發的《企業合同管理系統》的工作實踐,總結其調試步驟及方法如下(以使用PowerBuilder為例)。
一、 系統調試步驟
1. 程序調試
內容包括程序的語法調試和邏輯檢查。在邏輯檢查之前,需要編造測試數據。測試數據除采用正常數據外,還應該編造一些異常數據和錯誤數據,用來考驗程序的正確性和可靠性。
(1)用正常數據調試。程序能否完成系統所要求的各種功能;寫入文件的各項記錄是否正確(包括首/末記錄);輸出的數據是否正確,是否有遺漏;各項檢驗測試是否正確。本系統經過這項工作后,尚難以確定應用程序運行的正確性。
(2)用異常數據調試。例如用空數據文件去進行測試,檢查程序能否正確運行。本系統經過這個階段的測試,進一步驗證程序的運行是否正常。
(3)用錯誤的數據調試。試驗應用程序對錯誤的處理能力,包括顯示出錯信息以及允許修改錯誤的可能等。輸入數據錯誤時能否及時查出或發出出錯信息,并允許修改;操作錯誤時能否及時查出或發出警告信號,并允許修改。經過運行調試,本系統基本具備上述功能。
2. 功能調試
系統的應用軟件是按處理功能劃分成模塊的,一個處理功能模塊由一個或多個程序段組成。所以,在單個程序段調試成功后,還需要對其功能模塊進行調試,即將一個功能模塊包含的所有程序段按邏輯次序串聯起來調試。這種測試的目的主要是保證內部控制關系和數據內容正確,同時測試模塊的運轉效率。
3. 總調
(1)主控制程序和調度程序調試。這部分程序的語句不多,但邏輯控制復雜。調試時將所有的控制程序與各功能模塊相連的接口(界面)用“短路”程序替代原來的功能模塊。所謂“短路”程序,就是直接送出預先安排計算結果的聯系程序。調試目的不是處理結果的正確性,而是控制來往通路和參數傳送的正確性,發現并解決資源調度中的問題。
(2)程序的總調。經過功能模塊和控制與調度程序的調試,即可開始整個系統程序的總調。對系統各種可能的使用形態及其組合在軟件中的流通情況進行可行性測試。這一階段最容易查出系統中屬于相互關系方面的錯誤和缺陷。進行系統程序調試時,通常采用“系統模型”法來解決如何編造最少量輸入數據達到較全面檢查軟件的目的。采用這種方法所輸入的數據是經過精心選擇的。數據量較少,不僅可以使工作量大為減少,而且也更容易發現錯誤和確定錯誤的范圍。但系統中的數據庫或文件是真實的,調試中要嚴格核對計算機和人工兩種處理的結果,通常是先校對最終結果,發現錯誤再返回到相應中間結果部分校對,直到基本上確定錯誤范圍。總調測試通過以后,還需要進行實況測試。實況測試以過去原系統手工操作方式得出正確的數據作為新系統的輸入,由計算機處理后,將所得到的結果與手工作業結果相核對。這一階段,除嚴格校對結果外,主要考察系統的運轉合理性與效率,包括可靠性(作業處理的成功率是否高)。
二、 調試的一般方法
1. 使用斷點
斷點是在程序邏輯中作的標記,設置斷點可使程序在需要的地方自動停止執行。使用斷點要做以下的準備工作:設置并清除斷點、從斷點進入中斷模式。
2. 使用stop語句
PB執行到stop語句會自動暫停程序并切換到中斷模式,插入stop語句就相當于設置斷點。但是,程序中設置的斷點在程序加載時會自動清除,而stop語句卻一直存在。因此,調試完成后要手工清除所有的stop語句。
3. 控制程序的運行
調試的最重要部分就是控制程序的運行。如果程序只運行一條語句,那么要確定哪一部分有問題就相當容易了。為此,我設計了如下響應步驟:逐個語句執行、整個過程執行、從過程中出來、繞過部分代碼、設置下一條執行的語句。
4. 直接查看變量的值
調試程序時,經常要查看某些變量的值。PB提供了一個非常簡單的方法,只要將鼠標停留在要查看的變量上,稍停一會就會彈出一個小方框。通過小方框,就可以了解變量的值。
5. 通過本地窗口查看變量的值
通過本地窗口,可以顯示當前過程中所有變量的值,要打開本地窗口,請選擇“視圖”菜單的“本地窗口”。本地窗口僅顯示當前過程中變量的值,當程序的執行從一個過程切換到另一個過程時,本地窗口上的內容就會發生變化。
(1)監視表達式與監視窗口。監視表達式是一種中斷表達式,當監視表達式的值改變或者等于一個特殊值時,程序的執行就會進入中斷模式。添加監視表達式、監視窗口。
(2)立即窗口。輸出信息到立即窗口、直接從立即窗口打印、從立即窗口設置變量或者屬性的值、從立即窗口測試過程、檢查錯誤號。
按照前面講的調試方法和步驟,對系統進行調試。先采用逐句法進行檢查,然后逐個過程調試。在調試的過程中遇到了不少錯誤,它們或是語法錯誤,或是編譯錯誤,或是執行結果不符合預定的要求,最終系統調試成功,完全正常運行。
參考文獻:
[1]董軍.PowerBuilder案例開發集錦[M].
北京:電子工業出版社,2002.
(新鄉市新鄉職業技術學院)