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