歡迎來(lái)到合肥浪訊網(wǎng)絡(luò)科技有限公司官網(wǎng)
  咨詢服務(wù)熱線:400-099-8848

web開(kāi)發(fā)名稱解說(shuō)-關(guān)于過(guò)錯(cuò)

發(fā)布時(shí)間:2020-09-05 文章來(lái)源:本站  瀏覽次數(shù):2552

因?yàn)閷?duì)過(guò)錯(cuò)有不同的了解和知道,所以目前還沒(méi)有一個(gè)一致的過(guò)錯(cuò)分類辦法。過(guò)錯(cuò)難于分類的原因,一方面是因?yàn)橐粋(gè)過(guò)錯(cuò)有許多預(yù)兆,因而它能夠被歸入不同的類。因而DEF檢驗(yàn)中呈現(xiàn)的過(guò)錯(cuò)甲方建議按照(1)分類

(1) 按過(guò)錯(cuò)的影響和后果分類

§ 較小過(guò)錯(cuò):只對(duì)體系輸出有一些非實(shí)質(zhì)性影響。如,輸出的數(shù)據(jù)格局不合要求等。

§ 中等過(guò)錯(cuò):對(duì)體系的運(yùn)轉(zhuǎn)有部分影響。如輸出的某些數(shù)據(jù)有過(guò)錯(cuò)或呈現(xiàn)冗余。

§ 較嚴(yán)峻過(guò)錯(cuò):體系的行為因過(guò)錯(cuò)的干擾而呈現(xiàn)顯著不合情理的現(xiàn)象。比如開(kāi)出了0.00元的支票,體系的輸出徹底不行信賴。

§ 嚴(yán)峻過(guò)錯(cuò):體系運(yùn)轉(zhuǎn)不行跟蹤,一時(shí)不能掌握其規(guī)則,時(shí)好時(shí)壞。

§ 十分嚴(yán)峻的過(guò)錯(cuò):體系運(yùn)轉(zhuǎn)中突然停機(jī),其原因不明,無(wú)法軟發(fā)動(dòng)。

§ 最嚴(yán)峻的過(guò)錯(cuò):體系運(yùn)轉(zhuǎn)導(dǎo)致環(huán)境損壞,或是形成事端,引起生命、產(chǎn)業(yè)的丟失。

(2) 按過(guò)錯(cuò)的性質(zhì)和規(guī)模分類

B.從軟件測(cè)驗(yàn)觀點(diǎn)動(dòng)身,把軟件過(guò)錯(cuò)分為5類。

① 功用過(guò)錯(cuò)

§ 規(guī)范闡明過(guò)錯(cuò):規(guī)范闡明或許不徹底,有二義性或自身對(duì)立。

§ 功用過(guò)錯(cuò):程序?qū)崿F(xiàn)的功用與用戶要求的不一致。這常常是因?yàn)橐?guī)范闡明中包含過(guò)錯(cuò)的功用、多余的功用或遺失的功用所致。

§ 測(cè)驗(yàn)過(guò)錯(cuò):軟件測(cè)驗(yàn)的規(guī)劃與實(shí)施產(chǎn)生過(guò)錯(cuò)。軟件測(cè)驗(yàn)自身也或許產(chǎn)生過(guò)錯(cuò)。

§ 測(cè)驗(yàn)規(guī)范引起的過(guò)錯(cuò):對(duì)軟件測(cè)驗(yàn)的規(guī)范要挑選恰當(dāng),若測(cè)驗(yàn)規(guī)范太雜亂,則導(dǎo)致測(cè)驗(yàn)進(jìn)程犯錯(cuò)的或許就大。

② 體系過(guò)錯(cuò)

§ 外部接口過(guò)錯(cuò):外部接口指如終端、打印機(jī)、通訊線路等體系與外部環(huán)境通訊的手段。所有外部接口之間,人與機(jī)器之間的通訊都運(yùn)用形式的或非形式的專門協(xié)議。假如協(xié)議有錯(cuò),或太雜亂,難以了解,致使在運(yùn)用中犯錯(cuò)。此外還包含對(duì)輸入/輸出格局過(guò)錯(cuò)了解,對(duì)輸入數(shù)據(jù)不合理的容錯(cuò)等等。

§ 內(nèi)部接口過(guò)錯(cuò):內(nèi)部接口指程序之間的聯(lián)絡(luò)。它所產(chǎn)生的過(guò)錯(cuò)與程序內(nèi)實(shí)現(xiàn)的細(xì)節(jié)有關(guān)。例如,規(guī)劃協(xié)議錯(cuò)、輸入/輸出格局錯(cuò)、數(shù)據(jù)保護(hù)不行靠、子程序拜訪錯(cuò)等。

§ 硬件結(jié)構(gòu)過(guò)錯(cuò):這類過(guò)錯(cuò)在于不能正確地了解硬件怎么工作。例如,忽視或過(guò)錯(cuò)地了解分頁(yè)組織、地址生成、通道容量、I/O指令、中斷處理、設(shè)備初始化和發(fā)動(dòng)等而導(dǎo)致的犯錯(cuò)。

§ 操作體系過(guò)錯(cuò):這類過(guò)錯(cuò)首要是因?yàn)椴涣私獠僮黧w系的工作機(jī)制而導(dǎo)致犯錯(cuò)。。當(dāng)然,操作體系自身也有過(guò)錯(cuò),但是一般用戶很難發(fā)現(xiàn)這種過(guò)錯(cuò)。

§ 軟件結(jié)構(gòu)過(guò)錯(cuò):因?yàn)檐浖Y(jié)構(gòu)不合理或不清晰而引起的過(guò)錯(cuò)。這種過(guò)錯(cuò)通常與體系的負(fù)載有關(guān),而且往往在體系滿載時(shí)才呈現(xiàn)。這是最難發(fā)現(xiàn)的一類過(guò)錯(cuò)。例如,過(guò)錯(cuò)地設(shè)置部分參數(shù)或全局參數(shù);過(guò)錯(cuò)地假定寄存器與存儲(chǔ)器單元初始化了;過(guò)錯(cuò)地假定不會(huì)產(chǎn)生中斷而導(dǎo)致不能封鎖或開(kāi)中斷;過(guò)錯(cuò)地假定程序能夠繞過(guò)數(shù)據(jù)的內(nèi)部鎖而導(dǎo)致不能封閉或翻開(kāi)內(nèi)部鎖;過(guò)錯(cuò)地假定被調(diào)用子程序常駐內(nèi)存或十分駐內(nèi)存等等,都將導(dǎo)致軟件犯錯(cuò)。

§ 操控與次序過(guò)錯(cuò):這類過(guò)錯(cuò)包含:忽視了時(shí)刻要素而損壞了事情的次序;猜想事情呈現(xiàn)在指定的序列中;等候一個(gè)不行能產(chǎn)生的條件;漏掉先決條件;規(guī)定過(guò)錯(cuò)的優(yōu)先級(jí)或程序狀態(tài);漏掉處理過(guò)程;存在不正確的處理過(guò)程或多余的處理過(guò)程等。

§ 資源管理過(guò)錯(cuò):這類過(guò)錯(cuò)是因?yàn)椴徽_地運(yùn)用資源而產(chǎn)生的。例如,運(yùn)用未經(jīng)獲準(zhǔn)的資源;運(yùn)用后未釋放資源;資源死鎖;把資源鏈接在過(guò)錯(cuò)的行列中等等。

③ 加工過(guò)錯(cuò)

§ 算術(shù)與操作過(guò)錯(cuò):指在算術(shù)運(yùn)算、函數(shù)求值和一般操作進(jìn)程中產(chǎn)生的過(guò)錯(cuò)。包含:數(shù)據(jù)類型轉(zhuǎn)換錯(cuò);除法溢出;過(guò)錯(cuò)地運(yùn)用關(guān)系比較符;用整數(shù)與浮點(diǎn)數(shù)做比較等。

§ 初始化過(guò)錯(cuò):典型的過(guò)錯(cuò)有:忘掉初始化工作區(qū),忘掉初始化寄存器和數(shù)據(jù)區(qū);過(guò)錯(cuò)地對(duì)循環(huán)操控變量賦初值;用不正確的格局,數(shù)據(jù)或類型進(jìn)行初始化等等。

§ 操控和次序過(guò)錯(cuò):這類過(guò)錯(cuò)與體系級(jí)同名過(guò)錯(cuò)相似,但它是部分過(guò)錯(cuò)。包含:遺失路徑;不行到達(dá)的代碼;不符合語(yǔ)法的循環(huán)嵌套;循環(huán)返回和停止的條件不正確;漏掉處理過(guò)程或處理過(guò)程有錯(cuò)等。

§ 靜態(tài)邏輯過(guò)錯(cuò):這類過(guò)錯(cuò)首要包含:不正確地運(yùn)用CASE語(yǔ)句;在表達(dá)式中運(yùn)用不正確的否定(例如用“>”代替“<”的否定);對(duì)情況不恰當(dāng)?shù)胤纸馀c組合;混雜“或”與“異或”等。

④ 數(shù)據(jù)過(guò)錯(cuò)

§ 動(dòng)態(tài)數(shù)據(jù)過(guò)錯(cuò):動(dòng)態(tài)數(shù)據(jù)是在程序履行進(jìn)程中暫時(shí)存在的數(shù)據(jù)。各種不同類型的動(dòng)態(tài)數(shù)據(jù)在程序履行期間將同享一個(gè)共同的存儲(chǔ)區(qū)域,若程序發(fā)動(dòng)時(shí)對(duì)這個(gè)區(qū)域未初始化,就會(huì)導(dǎo)致數(shù)據(jù)犯錯(cuò)。因?yàn)閯?dòng)態(tài)數(shù)據(jù)被損壞的方位或許與犯錯(cuò)的方位在距離上相差很遠(yuǎn),因而要發(fā)現(xiàn)這類過(guò)錯(cuò)比較困難。

§ 靜態(tài)數(shù)據(jù)過(guò)錯(cuò):靜態(tài)數(shù)據(jù)在內(nèi)容和格局上都是固定的。它們直接或間接地呈現(xiàn)在程序或數(shù)據(jù)庫(kù)中。由編譯程序或其它專門程序?qū)λ鼈冏鲱A(yù)處理。這是在程序履行前防止靜態(tài)過(guò)錯(cuò)的好辦法,但預(yù)處理也會(huì)犯錯(cuò)。

§ 數(shù)據(jù)內(nèi)容過(guò)錯(cuò):數(shù)據(jù)內(nèi)容是指存儲(chǔ)于存儲(chǔ)單元或數(shù)據(jù)結(jié)構(gòu)中的位串、字符串或數(shù)字。數(shù)據(jù)內(nèi)容自身沒(méi)有特定的含義,除非經(jīng)過(guò)硬件或軟件給予解說(shuō)。數(shù)據(jù)內(nèi)容過(guò)錯(cuò)就是因?yàn)閮?nèi)容被損壞或被過(guò)錯(cuò)地解說(shuō)而形成的過(guò)錯(cuò)。

§ 數(shù)據(jù)結(jié)構(gòu)過(guò)錯(cuò):數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)元素的大小和組織形式。在同一存儲(chǔ)區(qū)域中能夠界說(shuō)不同的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)過(guò)錯(cuò)首要包含結(jié)構(gòu)闡明過(guò)錯(cuò)及把一個(gè)數(shù)據(jù)結(jié)構(gòu)誤作為另一類數(shù)據(jù)結(jié)構(gòu)運(yùn)用的過(guò)錯(cuò)。這是更風(fēng)險(xiǎn)的過(guò)錯(cuò)。

§ 數(shù)據(jù)特點(diǎn)過(guò)錯(cuò):數(shù)據(jù)特點(diǎn)是指數(shù)據(jù)內(nèi)容的含義或語(yǔ)義。例如,整數(shù)、字符串、子程序等等。數(shù)據(jù)特點(diǎn)過(guò)錯(cuò)首要包含:對(duì)數(shù)據(jù)特點(diǎn)不正確地解說(shuō),比如錯(cuò)把整數(shù)當(dāng)實(shí)數(shù),答應(yīng)不同類型數(shù)據(jù)混合運(yùn)算而導(dǎo)致的過(guò)錯(cuò)等。

⑤ 代碼過(guò)錯(cuò)

首要包含:語(yǔ)法過(guò)錯(cuò);打字過(guò)錯(cuò);對(duì)語(yǔ)句或指令不正確了解所產(chǎn)生的過(guò)錯(cuò)。

(3) 按軟件生存期階段分類

Good enough-Gerhart分類辦法把軟件的邏輯過(guò)錯(cuò)按生存期不同階段分為4類。

① 問(wèn)題界說(shuō)(需求分析)過(guò)錯(cuò)

它們是在軟件界說(shuō)階段,分析員研討用戶的要求后所編寫的文檔中呈現(xiàn)的過(guò)錯(cuò)。換句話說(shuō),這類過(guò)錯(cuò)是因?yàn)閱?wèn)題界說(shuō)不滿足用戶的要求而導(dǎo)致的過(guò)錯(cuò)。

② 規(guī)范闡明過(guò)錯(cuò)

這類過(guò)錯(cuò)是指規(guī)范闡明與問(wèn)題界說(shuō)不一致所產(chǎn)生的過(guò)錯(cuò)。它們又能夠細(xì)分紅:

§ 不一致性過(guò)錯(cuò):規(guī)范闡明中功用闡明與問(wèn)題界說(shuō)產(chǎn)生對(duì)立。

§ 冗余性過(guò)錯(cuò):規(guī)范闡明中某些功用闡明與問(wèn)題界說(shuō)比較是多余的。

§ 不完整性過(guò)錯(cuò):規(guī)范闡明中缺少某些必要的功用闡明。

§ 不行行過(guò)錯(cuò):規(guī)范闡明中有些功用要求是不行行的。

§ 不行測(cè)驗(yàn)過(guò)錯(cuò):有些功用的測(cè)驗(yàn)要求是不現(xiàn)實(shí)的。

③ 規(guī)劃過(guò)錯(cuò)

這是在規(guī)劃階段產(chǎn)生的過(guò)錯(cuò),它使體系的規(guī)劃與需求規(guī)范闡明中的功用闡明不相符。它們又能夠細(xì)分為:

§ 規(guī)劃不徹底過(guò)錯(cuò):某些功用沒(méi)有被規(guī)劃,或規(guī)劃得不徹底。

§ 算法過(guò)錯(cuò):算法挑選不合適。首要表現(xiàn)為算法的基本功用不滿足功用要求、算法不行行或許算法的功率不符合要求。

§ 模塊接口過(guò)錯(cuò):模塊結(jié)構(gòu)不合理;模塊與外部數(shù)據(jù)庫(kù)的界面不一致,模塊之間的界面不一致。

§ 操控邏輯過(guò)錯(cuò):操控流程與規(guī)范闡明不一致;操控結(jié)構(gòu)不合理。

§ 數(shù)據(jù)結(jié)構(gòu)過(guò)錯(cuò):數(shù)據(jù)規(guī)劃不合理;與算法不匹配;數(shù)據(jù)結(jié)構(gòu)不滿足規(guī)范闡明要求。

④ 編碼過(guò)錯(cuò)

編碼進(jìn)程中的過(guò)錯(cuò)是多種多樣的,大體可歸為以下幾種:數(shù)據(jù)闡明錯(cuò)、數(shù)據(jù)運(yùn)用錯(cuò)、計(jì)算錯(cuò)、比較錯(cuò)、操控流錯(cuò)、界面錯(cuò)、輸入/輸犯錯(cuò),及其它的過(guò)錯(cuò)。

在不同的開(kāi)發(fā)階段,過(guò)錯(cuò)的類型和表現(xiàn)形式是不同的,故應(yīng)當(dāng)采用不同的辦法和策略來(lái)進(jìn)行檢測(cè)。

上一條:網(wǎng)站開(kāi)發(fā)根底知識(shí)AJAX...

下一條:SEO優(yōu)化幾大根本準(zhǔn)則...