9.1軟件錯(cuò)誤及分類_第1頁(yè)
9.1軟件錯(cuò)誤及分類_第2頁(yè)
9.1軟件錯(cuò)誤及分類_第3頁(yè)
9.1軟件錯(cuò)誤及分類_第4頁(yè)
9.1軟件錯(cuò)誤及分類_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

軟件質(zhì)量保證與測(cè)試第9章軟件質(zhì)量與軟件質(zhì)量管理SoftwareQualityAssuranceandTesting9.1軟件缺陷及分類

各種軟件缺陷

軟件當(dāng)中可能會(huì)出現(xiàn)的缺陷,可以說(shuō)是各式各樣,首先讓我們通過(guò)一些因缺陷引發(fā)的事故,來(lái)直觀的體驗(yàn)一下軟件缺陷的外在表現(xiàn)和不良后果。

ATM機(jī)“紅包”2009年元旦剛過(guò),在英國(guó)的曼徹斯特郡,有一臺(tái)ATM機(jī),人們?nèi)″X的時(shí)候發(fā)現(xiàn),實(shí)際出款額是取款額的2倍。許多人聞?dòng)嵹s來(lái)排隊(duì)取款。6小時(shí)內(nèi)被取走了1萬(wàn)英鎊。人們戲稱這是ATM機(jī)在發(fā)“新年紅包”

后經(jīng)查明,故障原因是ATM機(jī)程序缺陷。

各種軟件缺陷全球“千年蟲”問(wèn)題

“千年蟲”可以說(shuō)是計(jì)算機(jī)發(fā)展史上的一個(gè)經(jīng)典案例,這里呢我們多花點(diǎn)時(shí)間,來(lái)搞清楚“千年蟲”的前世今生,以及將來(lái)可能的“魅影重現(xiàn)”。

各種軟件缺陷全球“千年蟲”問(wèn)題“千年蟲”問(wèn)題是指在某些使用了計(jì)算機(jī)程序的智能系統(tǒng)(包括計(jì)算機(jī)系統(tǒng)、自動(dòng)控制芯片等)當(dāng)中,由于只使用兩位十進(jìn)制數(shù)來(lái)表示年份,因此當(dāng)系統(tǒng)涉及到跨世紀(jì)的日期處理運(yùn)算時(shí)就會(huì)出現(xiàn)缺陷的結(jié)果,進(jìn)而引發(fā)各種各樣的系統(tǒng)功能紊亂甚至崩潰。世界上第一臺(tái)電子計(jì)算機(jī)“ENIAC”1946年誕生于美國(guó)賓夕法尼亞大學(xué),計(jì)算機(jī)系統(tǒng)中用兩位數(shù)表示年份時(shí),實(shí)際上就是默認(rèn)年份的前兩位為“19”,例如,“05”年,表達(dá)的就是1905年。

各種軟件缺陷全球“千年蟲”問(wèn)題但是當(dāng)時(shí)間跨越百年,到了2000年以后,那么“05”到底是“1905”年,還是“2005”年呢?此時(shí)含義就會(huì)出現(xiàn)混淆,而與之相關(guān)的計(jì)算就會(huì)出現(xiàn)缺陷。例如,一個(gè)人的出生年份在計(jì)算機(jī)系統(tǒng)中登記的是80年,現(xiàn)在是00年的,他現(xiàn)在的年齡應(yīng)該是多大呢?如果沒(méi)有預(yù)防措施,而是按照年份相減的方式簡(jiǎn)單計(jì)算的話,那么他的年齡就是-80歲,類似的還有,98年存錢,2000取錢,結(jié)果算出來(lái)的利息是負(fù)數(shù)等等。

各種軟件缺陷全球“千年蟲”問(wèn)題簡(jiǎn)單的說(shuō),千年蟲是計(jì)算機(jī)系統(tǒng)在日期處理上的一個(gè)缺陷,原因是僅采用2位數(shù)表示年份,當(dāng)進(jìn)入新的世紀(jì)時(shí),就無(wú)法有效區(qū)分年份,而與之相關(guān)的計(jì)算就會(huì)出現(xiàn)紊亂和缺陷。

各種軟件缺陷00年=全球“千年蟲”問(wèn)題廣泛地講,“千年蟲”還包括以下兩個(gè)方面的問(wèn)題:一是在一些計(jì)算機(jī)系統(tǒng)中,對(duì)于閏年的計(jì)算和識(shí)別會(huì)出現(xiàn)問(wèn)題,不能把2000年識(shí)別為閏年,即在該計(jì)算機(jī)系統(tǒng)的日歷中沒(méi)有2000年2月29日這一天,而是直接由2000年2月28日過(guò)渡到了2000年3月1日;還有就是在一些比較老的計(jì)算機(jī)系統(tǒng)中,在程序中使用了數(shù)字串99(或99/99等)來(lái)表示文件結(jié)束、永久性過(guò)期、刪除等一些特殊意義的自動(dòng)操作,這樣當(dāng)1999年9月9日(或1999年4月9日即1999年的第99天)來(lái)臨時(shí),計(jì)算機(jī)系統(tǒng)在處理到內(nèi)容中有日期的文件時(shí),就會(huì)遇到99或99/99等數(shù)字串,從而出現(xiàn)將文件誤認(rèn)為已經(jīng)過(guò)期或者將文件刪除等錯(cuò)操作,引發(fā)系統(tǒng)混亂甚至崩潰。

各種軟件缺陷全球“千年蟲”問(wèn)題

據(jù)美國(guó)一家顧問(wèn)公司估計(jì),全球花在防備千年蟲發(fā)作上的費(fèi)用高達(dá)6000億美元。

各種軟件缺陷

這一估算數(shù)字是否準(zhǔn)確有待考證,但全球?yàn)榇舜筚M(fèi)周章,花費(fèi)巨額成本,卻是不爭(zhēng)的事實(shí)。下圖為當(dāng)時(shí)的一些新聞報(bào)道。

全球“千年蟲”問(wèn)題

各種軟件缺陷全球“千年蟲”問(wèn)題

各種軟件缺陷

看到“千年蟲”的嚴(yán)重后果,我們不禁要問(wèn),一開始發(fā)明和使用計(jì)算機(jī)的專家學(xué)者為什么要設(shè)定成用兩位數(shù)來(lái)表示年份呢?原因很簡(jiǎn)單,早期計(jì)算機(jī)存儲(chǔ)器的成本很高,如果用四位數(shù)字表示年份,就要多占用存儲(chǔ)器空間,就會(huì)使成本增加,因此為了節(jié)省存儲(chǔ)空間,計(jì)算機(jī)系統(tǒng)的編程人員采用兩位數(shù)字表示年份。全球“千年蟲”問(wèn)題

各種軟件缺陷

隨著計(jì)算機(jī)技術(shù)的迅猛發(fā)展,雖然后來(lái)存儲(chǔ)器的價(jià)格降低了,但在計(jì)算機(jī)系統(tǒng)中使用兩位數(shù)字來(lái)表示年份的做法卻由于慣性而被沿襲下來(lái),年復(fù)一年,直到新世紀(jì)即將來(lái)臨之際,大家才突然意識(shí)到用兩位數(shù)字表示年份將無(wú)法正確辨識(shí)公元2000年及其以后的年份。1997年,信息界開始拉起了“千年蟲”警鐘,并很快引起了全球關(guān)注。全球“千年蟲”問(wèn)題

各種軟件缺陷

費(fèi)盡周折,雖然有不少“千年蟲”發(fā)作的案例,但總體而言,全球還是平穩(wěn)度過(guò)了2000年。

然而時(shí)間永是流逝,用4位數(shù)表示年份,也不是一勞永逸的,類似的“萬(wàn)年蟲”問(wèn)題就在未來(lái)等著我們,因?yàn)楫?dāng)人類跨越10000萬(wàn)年時(shí),年份混淆就會(huì)“魅影重現(xiàn)”!我們?cè)賮?lái)看一下其他幾個(gè)軟件缺陷案例。美國(guó)火星氣候軌道探測(cè)器墜毀1998年12月11日,美國(guó)發(fā)射火星氣候軌道探測(cè)器。參與這個(gè)項(xiàng)目的一個(gè)NASA的工程小組使用的是英制單位,而沒(méi)有采用預(yù)定的公制單位,這造成探測(cè)器的推進(jìn)裝置無(wú)法正常運(yùn)作。正是因?yàn)檫@個(gè)缺陷,1999年探測(cè)器從距離火星表面130英尺的高度垂直墜毀。此項(xiàng)工程成本耗費(fèi)3.27億美元,這還不包括損失的時(shí)間(該探測(cè)器從發(fā)射到抵達(dá)火星將近一年時(shí)間。)

各種軟件缺陷阿麗亞娜5型火箭處女秀發(fā)射悲劇1996年6月4日,阿麗亞娜5型運(yùn)載火箭首次發(fā)射,原計(jì)劃將運(yùn)送4顆太陽(yáng)風(fēng)觀察衛(wèi)星到預(yù)定軌道,但因軟件缺陷引發(fā)的問(wèn)題導(dǎo)致火箭在發(fā)射39秒后偏軌,從而激活了火箭的自我摧毀裝置。阿麗亞娜5型火箭和其搭載的衛(wèi)星在瞬間灰飛煙滅。后來(lái)查明的事故原因是:阿麗亞娜5型的發(fā)射系統(tǒng)代碼直接重用了4型的相應(yīng)代碼,而4型的飛行條件和5型的飛行條件截然不同。此次事故損失3.7億美元。

各種軟件缺陷

有問(wèn)題的軟件、有缺陷的程序可能導(dǎo)致嚴(yán)重的后果,那么什么樣的程序是正確的呢?程序的正確性有不同的標(biāo)準(zhǔn)。按照由弱到強(qiáng),我們可以這樣來(lái)描述程序的正確性

程序正確性程序正確性的不同標(biāo)準(zhǔn)程序編寫得無(wú)語(yǔ)法缺陷程序執(zhí)行中未發(fā)現(xiàn)明顯的運(yùn)行缺陷程序中無(wú)不適當(dāng)?shù)恼Z(yǔ)句程序運(yùn)行時(shí)能通過(guò)典型的有效測(cè)試數(shù)據(jù),而得到正確的預(yù)期結(jié)果程序運(yùn)行時(shí)能通過(guò)典型的無(wú)效測(cè)試數(shù)據(jù),而得到正確的結(jié)果程序運(yùn)行時(shí)能通過(guò)任何可能的數(shù)據(jù),并給出正確結(jié)果弱強(qiáng)程序正確性的標(biāo)準(zhǔn)不同,那么對(duì)應(yīng)的要求就不同,例如程序編寫得無(wú)語(yǔ)法缺陷

——程序通過(guò)編譯即可達(dá)到

............程序運(yùn)行時(shí)能通過(guò)任何可能的數(shù)據(jù),并給出正確結(jié)果

——這樣的要求要達(dá)到很不容易!甚至可以說(shuō)是無(wú)法保證到達(dá)!程序正確性的不同標(biāo)準(zhǔn)軟件缺陷的分類軟件中的缺陷,按照來(lái)源可以作如下分類:軟件需求缺陷功能和性能缺陷軟件結(jié)構(gòu)缺陷數(shù)據(jù)缺陷軟件實(shí)現(xiàn)和編碼缺陷軟件集成缺陷軟件系統(tǒng)結(jié)構(gòu)缺陷測(cè)試定義與測(cè)試執(zhí)行缺陷

為了分析軟件缺陷的來(lái)源,有人做了大量的統(tǒng)計(jì)工作。例如,對(duì)某一個(gè)包含有687,7000行代碼的軟件,在進(jìn)行完單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試之后,經(jīng)統(tǒng)計(jì)共發(fā)現(xiàn)缺陷1,6209個(gè),平均每千行代碼有缺陷2.36個(gè),將發(fā)現(xiàn)的缺陷進(jìn)行分類,具體情況如下表。軟件缺陷的分類缺陷分類缺陷數(shù)百分比軟件需求缺陷13178.1功能和性能缺陷262416.2軟件結(jié)構(gòu)缺陷408225.2數(shù)據(jù)缺陷363822.4軟件實(shí)現(xiàn)和編碼缺陷16019.9軟件集成缺陷14559.0軟件系統(tǒng)結(jié)構(gòu)缺陷2821.7測(cè)試定義與測(cè)試執(zhí)行缺陷4472.8其他類型缺陷7634.7按照缺陷后果的嚴(yán)重程度:較小缺陷中等缺陷較嚴(yán)重缺陷嚴(yán)重缺陷非常嚴(yán)重缺陷最嚴(yán)重缺陷輕重軟件缺陷的分類注意:缺陷本身的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論