導航:首頁 > 軟體問題 > 什麼是軟體缺陷

什麼是軟體缺陷

發布時間:2022-01-21 03:31:56

1. 軟體缺陷有哪些表現

常見的軟體缺陷有以下四種:
第一,棧溢出。就是在棧中申請一段內存,一般是數組或字元串,在對這段內存做操作的時候,錯誤的寫操作可能導致棧中也特殊意義的地址被用戶的輸入內容所控制。最早發現是一些字元串操作的函數中,比如strcat,後來又發現在Strncpy如果不正常操作的話也會出現這個問題。最後有一個Windows UNicode處理的函數如果不正常使用也會出現這樣的問題。下面介紹的是整數溢出的問題。
整數溢出是多發於的情況,特別是一些加、乘的操作出現在內存前面就要特別注意了。加或者乘出來的數不一定比原先兩個數大。還有一個正負數比較的問題,或者是符號擴展的問題。即使現在這個問題仍存在於很多軟體中。但是在很多流行軟體中已經很少出現了,比如微軟的軟體、國外大公司的軟體。但是在國內軟體這個問題依然是很多的。這個問題在JAVA軟體中也經常存在。例如銀行系統,系統錯誤處理,把別人帳號上扣掉的金額,一個正的金額加到你的帳號上。

第二, heap overflow。這是現代程序C語言主要申請分配方法,所以他比棧溢出比例大的多。微軟做了很多防護措施,所以它利用起來是非常復雜的。尤其是 WindowsXP2之後的版本,比如vista。堆管理主要利用兩張表,freelist、lookaside,freelist[0]代表著一些不規則的可以利用的chunk,尤其是比較大的chunk。freelist[1] - freelist[n]代表2的整數次方可以利用的堆中的chunk。利用這樣堆溢出的問題,你需要對Windows堆管理非常熟悉。比如有人通過 freelist[0]這個鏈表成功利用。目前有一個immdbg的程序對這種研究利用是很有幫助的。因為他把堆分配的內容都可以顯示出來。對vista 軟體的攻擊,理論上應該是不存在的。因為vista對堆管理有嚴格控制,但是有很多軟體使用自己的內存管理方法,比如OFFICE,他們自己堆管理方法和內存方法是和vista不一樣的,這些方法往往採用教科書的方法或者以前系統的方法,所以他們這些方法是有可能被利用起來。

第三,未初始化的問題。棧上的問題由德國人在06年詳細討論過。頭一次壓棧的時候,在棧上寫需要內容,然後函數退出,導致棧頂上移,有問題的函數壓棧時正好利用這段棧空間,如果函數中發現了未初始化問題,比如數組,那麼其內容剛好是我們剛寫入的內容的棧空間,就可能被利用。先把堆里的大部分內容寫成自己需要的內容,未初始問題發生時,比如堆里指針的內容就可能指向我們需要的內容。目前這個問題是大量存在的,OFFICE存在了很多。比如這個月微軟補丁,excel那一個補丁里就包括很多這樣的問題。你可以對比新舊的OFFICE軟體,你發現 OFFICE2007有一些新加的代碼就是做初始化工作的。

第四,二次釋放或者叫double free問題。內存泄露是現代軟體大敵,特別是伺服器軟體。有很多程序員害怕發生這樣的問題,申請內存時總是想釋放它,結果釋放多了幾次,這樣也會有安全問題。曾經在linux上的方法很巧妙、經典,但是在目前Windows上比較難以利用。很多軟體採用自己管理內存方法,那麼就很可能被利用到。

2. 什麼是軟體缺陷為何軟體缺陷難以避免

廣聯達其缺點你開發人員都不知道那裡怎麼扣除或則數據連接,毛病很大,一直更新不斷,雖說是推廣做的好,但是真正用的時候麻煩很多,魯班鋼筋稍微好點,其他方面不太人性化,沒有廣聯達做的好,我作為中間人說的,都可以,廣聯達、魯班復制狗專營。

3. 軟體缺陷的狀態有哪些

bug提交到缺陷庫中會自動的被設置成New狀態 Assigned(已指派): 當一個bug被認為New之後,將其分配開發人員,開發人員將確認這是否是一個bug,如果是,開發組的負責人就將這個bug指定給某位開發人員處理,並將bug的狀態設定為「Assigned」 Open(已打開): 開發人員開始處理bug時,他將這個bug的狀態設置為「Open」,表示開發人員正在處理這個「bug」 Fixed(已修復): 當開發人員進行處理(並認為已經解決)之後,他(她)就可以將這個bug的狀態設置為「Fixed」並將其提交給開發組的負責人,然後開發組的負責人將這個bug返還給測試組 Rejected(被拒絕): 測試組的負責人接到上述bug的時候,如果他(她)發現這是產品說明書中定義的正常行為或者經過與開發人員的討論之後認為這並不能算作bug的時候,開發組負責人就將這個bug的狀態設置為「Rejected」 Postponed(延期): 有些時候,對於一些特殊的bug的測試需要擱置一段時間,事實上有很多原因可能導致這種情況的發生,比如無效的測試數據,一些特殊的無效的功能等等,在這種情況下,bug的狀態就被設置為「Postponed」 Closed(已關閉): 測試人員經過再次測試後確認bug已經被解決,將bug的狀態設置為「Closed」 如經過再次測試發現bug仍然存在,測試人員將bug再次開發組,將bug的狀態設置為「Reopen」

4. 軟體缺陷的五種特徵

簡單說下軟體缺陷的最明顯的特徵吧
集結(二八定理)
缺陷往往喜歡扎堆,一個模塊已經發現的缺陷比別的模塊多,
通常不是代表這個模塊已經把缺陷暴露完了,而是意味著這
個模塊還存在有同樣多的缺陷尚未被發現。這就是著名的二
八定理:80%的缺陷出現在 20%的模塊。
缺陷抗葯性
測試進行得越多,新缺陷就越難被發現
1. 因為之前一直使用同樣的測試思路,同樣的一套測試用
例,沒有新的突破。
2. 某些缺陷天然地只有在很特殊或者很極端的情況下才會
被觸發
並非所有缺陷都要修改
p有一些原因,使得有些缺陷我們不修復
1. 修復的風險太大
2. 沒有足夠的時間
3. 下一版本修復
p 所有未修復的bug都處於「掛起」狀態

5. 軟體缺陷的定義是什麼

軟體錯誤:軟體生存期內的人為錯誤,導致軟體缺陷產生。
是人為過程,相對於軟體本身是外部行為。
軟體缺陷:存在於軟體(文檔、數據、程序)中的偏差,導致軟體在某個特定條件下出現故障,這時稱軟體缺陷被激活。
軟體故障:軟體運行過程中出現的不希望或不可接收的內部狀態。是動態行為。
軟體失效:軟體運行時產生的不希望或不可接受的外部行為結果。
綜上:軟體錯誤是一種人為錯誤。一個軟體錯誤必定產生一個或多個軟體缺陷。當一個軟體缺陷被激活時,便產生一個軟體故障;同一個軟體缺陷在不同條件下被激活,可能產生不同的軟體故障。軟體故障如果沒有集市的容錯措施加以處理,便不可避免地導致軟體失效;同一個軟體故障在不同條件下可能產生不同的軟體失效。

6. 判斷一個軟體缺陷的依據是什麼

當然是漏洞了(BUG),還有就是用戶體驗,如果軟體大方向錯的話,用戶不喜歡就徹底完了,如果是方向對,就要強調軟體的使用體驗,不斷優化,如果使用不便或者出錯等不良體驗就被稱作為缺陷

7. 軟體缺陷是什麼

一般我們都認為測出一個問題就是一個bug,其實這是不對的,假設測試10個問題就10個bug,而修改一出就全解決了,程序員肯定認為冤枉自己。
所有軟體是文檔,代碼等組成的,最初的錯誤是來自於這些軟體錯誤(software error),如代碼中加法寫成減法。軟體錯誤導致軟體缺陷(software defect),如設計缺陷,代碼缺陷等,可用靜態測試,如走查,靜態檢查,測試床(軍事軟體用的技術)等,軟體的缺陷導致一個或多個軟體故障 (software fault),故障有內部故障,外部故障,也就是我們所說的bug,軟體故障導致了軟體在功能操作等方面的失效(software failure)。
我們平時測的bug實際上是軟體故障於失效的體現。一旦軟體錯誤得到修改,相應的故障與失效也就解除了。這樣分有助於我們定位問題,找到問題。
詳見《軟體可靠性工程》

8. 生活中什麼是軟體缺陷

所謂生活中的「軟體」是一種形象比喻,即將人的四肢健全、體力等客觀外在比喻成「硬體」,那麼,人的各種生活技能和應變能力可以被比喻為「軟體」。則「生活軟體缺陷」就是指生活技能和應變能力方面不足。

9. 1.軟體缺陷和故障是什麼,舉例說明。 2.軟體測試的概念,其處理的基本問題有哪些

軟體缺陷和故障,常常又被叫做Bug。所謂軟體缺陷,即為計算機軟體或程序中存在的某種破壞正常運行能力的問題、錯誤,或者隱藏的功能缺陷。缺陷的存在會導致軟體產品在某種程度上不能滿足用戶的需要。比如一個登陸界面,沒有密碼驗證直接回車進入了,這就是大大的bug。

軟體測試就是在軟體投入運行前,對軟體需求分析、設計規格說明和編碼實現的最終審查,它是軟體質量保證的關鍵步驟。通常對軟體測試的定義有兩種描述:

定義1:軟體測試是為了發現錯誤而執行程序的過程。

定義2:軟體測試是根據軟體開發各階段的規格說明和程序的內部結構而精心設計的一-批測試用例,並利用這些測試用例運行程序以及發現錯誤的過程,即執行測試步驟。

處理的基本問題:

(1)測試是為了發現程序中的錯誤而執行程序的過程。

(2)好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案。

(3)成功的測試是發現了至今為止尚未發現的錯誤的測試。

(9)什麼是軟體缺陷擴展閱讀:

軟體測試原則:

對計算機軟體進行測試前,首先需遵循軟體測試原則,即不完全原則的遵守。不完全原則即為若測試不完全、測試過程中涉及免疫性原則的部分較多,可對軟體測試起到一定幫助。

因軟體測試因此類因素具有一定程度的免疫性,測試人員能夠完成的測試內容與其免疫性成正比,若想使軟體測試更為流暢、測試效果更為有效,首先需遵循此類原則,將此類原則貫穿整個開發流程,不斷進行測試,而並非一次性全程測試。

閱讀全文

與什麼是軟體缺陷相關的資料

熱點內容
電腦上怎麼下載班智達的軟體 瀏覽:1111
無痕跡消除圖片軟體 瀏覽:681
免費小票軟體 瀏覽:915
華為在哪裡設置軟體停止運行 瀏覽:927
用電腦鍵盤調節聲音大小 瀏覽:1226
自動刷軟體賺錢 瀏覽:1227
古裝連續劇免費版 瀏覽:1380
工免費漫畫 瀏覽:1120
手機軟體專門儲存文件 瀏覽:1476
uos如何用命令安裝軟體 瀏覽:1270
有線耳機插電腦麥克風 瀏覽:624
侏羅紀世界3在線觀看完整免費 瀏覽:963
單個軟體怎麼設置名稱 瀏覽:687
鳳凰網電腦版下載視頻怎麼下載視頻怎麼下載 瀏覽:1349
明白之後如何免費獲得無人機 瀏覽:799
如何解禁軟體菜單 瀏覽:806
副路由器連接電腦視頻 瀏覽:1321
內置wifi電視如何裝軟體 瀏覽:1060
手機換零免費雪碧 瀏覽:1556
國行蘋果如何下載美版軟體 瀏覽:1169