首頁考試吧論壇Exam8視線考試商城網(wǎng)絡(luò)課程模擬考試考友錄實(shí)用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓(xùn) 自學(xué)考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點(diǎn)日語
職稱英語
口譯筆譯
申碩英語
零起點(diǎn)韓語
商務(wù)英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點(diǎn)英語
托?荚
托業(yè)考試
零起點(diǎn)法語
雅思考試
成人英語三級
零起點(diǎn)德語
等級考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱計算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報 關(guān) 員
外 銷 員
價格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報檢員
法律顧問
管理咨詢
企業(yè)培訓(xùn)
社會工作者
銀行從業(yè)
教師資格
營養(yǎng)師
保險從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國際商務(wù)
心理咨詢
營 銷 師
司法考試
國際貨運(yùn)代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護(hù)士
會計從業(yè)資格
基金從業(yè)資格
統(tǒng)計從業(yè)資格
經(jīng)濟(jì)師
精算師
統(tǒng)計師
會計職稱
法律顧問
ACCA考試
注冊會計師
資產(chǎn)評估師
審計師考試
高級會計師
注冊稅務(wù)師
國際內(nèi)審師
理財規(guī)劃師
美國注冊會計師
一級建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價師
二級建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價工程師
注冊測繪師
質(zhì)量工程師
巖土工程師
造價員考試
注冊計量師
環(huán)保工程師
化工工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
監(jiān)理工程師
房地產(chǎn)估價
土地估價師
安全評價師
房地產(chǎn)經(jīng)紀(jì)人
投資項目管理師
環(huán)境影響評價師
土地登記代理人
繽紛校園 實(shí)用文檔 英語學(xué)習(xí) 作文大全 求職招聘 論文下載 訪談|游戲
軟件水平考試
軟件水平考試資訊
軟件水平考試試題
軟件水平考試專項輔導(dǎo)
軟件水平考試交流互動
軟件水平考試交流互動
您現(xiàn)在的位置: 考試吧 > 軟件水平考試 > 復(fù)習(xí)資料 > 軟件設(shè)計師 > 正文

2011下半年《軟件設(shè)計師》考點(diǎn):排錯的基本方法

考試吧整理“2011下半年《軟件設(shè)計師》考點(diǎn)”系列,供大家復(fù)習(xí)備考。

  排錯(即調(diào)試)與成功的測試形影相隨。測試成功的標(biāo)志是發(fā)現(xiàn)了錯誤。根據(jù)錯誤跡象確定錯誤的原因和準(zhǔn)確位置,并加以改正的主要依靠排錯技術(shù)。

  1.排錯過程

  如下圖所示,排錯過程開始于一個測試用例的執(zhí)行,若測試結(jié)果與期望結(jié)果有出入,即出現(xiàn)了錯誤征兆,排錯過程首先要找出錯誤原因,然后對錯誤進(jìn)行修正。因此排錯過程有兩種可能,一是找到了錯誤原因并糾正了錯誤,另一種可能是錯誤原因不明,排錯人員只得做某種推測,然后再設(shè)計測試用例證實(shí)這種推測,若一次推測失敗,再做第二次推測,直到發(fā)現(xiàn)并糾正了錯誤。

軟件測試中面臨的問題

 

  排錯是一個相當(dāng)艱苦的過程,究其原因除了開發(fā)人員心理方面的障礙外,還因為隱藏在程序中的錯誤具有下列特殊的性質(zhì):

  (1)錯誤的外部征兆遠(yuǎn)離引起錯誤的內(nèi)部原因,對于高度耦合的程序結(jié)構(gòu)此類現(xiàn)象更為嚴(yán)重;

  (2)糾正一個錯誤造成了另一錯誤現(xiàn)象(暫時)的消失;

  (3)某些錯誤征兆只是假象;

  (4)因操作人員一時疏忽造成的某些錯誤征兆不易追蹤;

  (5)錯誤是由于風(fēng)時而不是程序引起的;

  (6)輸入條件難以精確地再構(gòu)造(例如,某些實(shí)時應(yīng)用的輸入次序不確定);

  (7)錯誤征兆時有時無,此現(xiàn)象對嵌入式系統(tǒng)尤其普遍;

  (8)錯誤是由于把任務(wù)分布在若干臺不同處理機(jī)上運(yùn)行而造成的。

  在軟件排錯過程中,可能遇到大大小小、形形色色的問題,隨著問題的增多,排錯人員的壓力也隨之增大,過分地緊張致使開發(fā)人員在排除一個問題的同時又引入更多的新問題。

  盡管排錯不是一門好學(xué)的技術(shù)(有時人們更愿意稱之為藝術(shù)),但還是有若干行之有效的方法和策略,下面介紹幾種排錯方法。

  2.排錯方法

  無論采用哪種排錯方法,目標(biāo)只有一個,即發(fā)現(xiàn)并排除引起錯誤的原因,這要求排錯人員能把直觀想象與系統(tǒng)評估很好的結(jié)合起來。

  常用的排錯策略分為三類:

 、 原始類(brute force)

  ② 回溯類(backtracking)

 、 排除類(cause eliminations)

  原始類排錯方法是最常用也是最低效的方法,只有在萬般無奈的情況下才使用它,主要思想是“通過計算機(jī)找錯”。例如輸出存儲器、寄存器的內(nèi)容,在程序安排若干輸出語句等,憑借大量的現(xiàn)場信息,從中找到出錯的線索,雖然最終也能成功,但難免要耗費(fèi)大量的時間和精力。

  回溯法能成功地用于程序的排錯。方法是從出現(xiàn)錯誤征兆處開始,人工地沿控制流程往回追蹤,直至發(fā)現(xiàn)出錯的根源,不幸的是程序變大后,可能的回溯路線顯著增加,以致人工進(jìn)行完全回溯到望而不可及。

  排除法基于歸納和演繹原理,采用“分治”的概念,首先懼與錯誤出現(xiàn)有關(guān)有所有數(shù)據(jù),假想一個錯誤原因,用這些數(shù)據(jù)證明或反駁它;或者一次列出所有可能的原因,通過測試一一排除。只要某次測試結(jié)果說明某種假設(shè)已呈現(xiàn)倪端,則立即精化數(shù)據(jù),乘勝追擊。

  上述每一類方法均可輔以排錯工具。目前,調(diào)試編譯器、動態(tài)調(diào)試器(“追蹤器”)、測試用例自動生成器、存儲器映象及交叉訪問示圖等到一系列工具已廣為使用。然而,無論什么工具也替代不了一個開發(fā)人員在對完整的設(shè)計文檔和清晰的源代碼進(jìn)行認(rèn)真審閱和推敲之后所起的作用。此外,不應(yīng)荒廢排錯過程中最有價值的一個資源,那就是開發(fā)小組中其他成員的評價和忠告,正所謂“當(dāng)事者迷,旁觀者清”。

  前面多次提到,修改一處老問題可能引入幾處新問題,有時程序越改越亂,但若能做到每次糾錯前都捫心自問三個問題,情況將大為改觀:

 、 導(dǎo)致這個錯誤的原因在程序其他部分還可能存在嗎?

  ② 本次修改可能對程序中相關(guān)的邏輯和數(shù)據(jù)造成什么影響?引起什么問題?

 、 上次遇到的類似問題是如何排除的?



  相關(guān)推薦:

  計算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試官網(wǎng)匯總

  2011年計算機(jī)軟件專業(yè)技術(shù)考試考場規(guī)則(筆試)

  2011年下半年軟件水平考試考前必讀:軟考應(yīng)試錦囊

  2011年下半年軟件水平考試各科目全真模擬及詳解

文章搜索
軟件水平考試欄目導(dǎo)航
版權(quán)聲明:如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系800@exam8.com,我們將會及時處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請注明出處。