更新時(shí)間:2022-08-03 來源:黑馬程序員 瀏覽量:
軟件缺陷就是通常所說的Bug,它是指軟件中(包括程序和文檔)存在的影響軟件正常運(yùn)行的問題。IEEE(Institute of Electrical and Electronics Engineers,電氣電子工程師協(xié)會(huì))729-1983標(biāo)準(zhǔn)對(duì)軟件缺陷有一個(gè)標(biāo)準(zhǔn)的定義:從產(chǎn)品內(nèi)部看,缺陷是產(chǎn)品開發(fā)或維護(hù)過程中存在的錯(cuò)誤、毛病等各種問題;從產(chǎn)品外部看,缺陷是系統(tǒng)運(yùn)行過程中某種功能的失效或者違背。
軟件缺陷的產(chǎn)生主要是由軟件產(chǎn)品的特點(diǎn)和開發(fā)過程決定的,比如需求不清晰、需求頻繁變更、開發(fā)人員水平有限等。歸結(jié)起來,軟件缺陷產(chǎn)生的原因主要有以下幾點(diǎn)。
(1)需求不明確。軟件需求不清晰或者開發(fā)人員對(duì)需求理解不明確,導(dǎo)致軟件在設(shè)計(jì)時(shí)偏離客戶的需求目標(biāo),造成軟件功能或者特征上的缺陷。此外,在開發(fā)過程中,客戶頻繁變更需求也會(huì)影響最終的質(zhì)量。
(2)軟件結(jié)構(gòu)復(fù)雜。如果軟件系統(tǒng)結(jié)構(gòu)比較復(fù)雜,很難設(shè)計(jì)出一個(gè)具有很好層次結(jié)構(gòu)或組件結(jié)構(gòu)的框架,這就會(huì)導(dǎo)致軟件在開發(fā)、擴(kuò)充、系統(tǒng)維護(hù)上的困難。即使能夠設(shè)計(jì)出一個(gè)很好的架構(gòu),復(fù)雜的系統(tǒng)在實(shí)現(xiàn)時(shí)也會(huì)隱藏著相互作用的難題,從而導(dǎo)致隱藏的軟件缺陷。
(3)編碼問題。在軟件開發(fā)過程中,程序員水平參差不齊,再加上開發(fā)過程中缺乏有效的溝通和監(jiān)督,問題積累越來越多,如果不能逐一解決這些問題,會(huì)導(dǎo)致最終軟件中存在很多缺陷。
(4)項(xiàng)目期限短?,F(xiàn)在大部分軟件產(chǎn)品開發(fā)周期都很短,開發(fā)團(tuán)隊(duì)要在有限的時(shí)間內(nèi)完成軟件產(chǎn)品的開發(fā),壓力非常大,因此開發(fā)人員往往是在疲勞、壓力大、受到干擾的狀態(tài)下開發(fā)軟件,這樣的狀態(tài)下,開發(fā)人員對(duì)待軟件問題的態(tài)度是“不嚴(yán)重就不解決”。
(5)使用新技術(shù)?,F(xiàn)代社會(huì),每種技術(shù)發(fā)展都日新月異。使用新技術(shù)進(jìn)行軟件開發(fā)的時(shí)候,如果新技術(shù)本身存在不足或開發(fā)人員對(duì)新技術(shù)掌握不精,也會(huì)影響軟件產(chǎn)品的開發(fā)過程,導(dǎo)致軟件存在缺陷。