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

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

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

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

  1.排錯(cuò)過(guò)程

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

軟件測(cè)試中面臨的問(wèn)題

 

  排錯(cuò)是一個(gè)相當(dāng)艱苦的過(guò)程,究其原因除了開(kāi)發(fā)人員心理方面的障礙外,還因?yàn)殡[藏在程序中的錯(cuò)誤具有下列特殊的性質(zhì):

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

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

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

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

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

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

  (7)錯(cuò)誤征兆時(shí)有時(shí)無(wú),此現(xiàn)象對(duì)嵌入式系統(tǒng)尤其普遍;

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

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

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

  2.排錯(cuò)方法

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

  常用的排錯(cuò)策略分為三類:

  ① 原始類(brute force)

  ② 回溯類(backtracking)

  ③ 排除類(cause eliminations)

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

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

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

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

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

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

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

  ③ 上次遇到的類似問(wèn)題是如何排除的?



  相關(guān)推薦:

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

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

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

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

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