軟件缺陷和軟件缺陷種類

7.軟件缺陷和軟件缺陷種類
7.1.軟件缺陷的定義
軟件缺陷,常常又被叫做Bug,從產品內部看,缺陷是軟件產品開發或維護過程中存在的錯誤、毛病等各種問題;從產品外部看,缺陷是系統所需要實現的某種功能的失效或違背。

格蕾絲·赫柏(Grace Murray Hopper),是一位爲美國海軍工作的電腦專家,也是最早將人類語言融入到電腦程序的人之一。而代表電腦程序出錯的“bug” 這名字,正是由赫柏所取的。1947年9月9日,赫柏對Harvard Mark II設置好17000個繼電器進行編程後,技術人員正在進行整機運行時,它突然停止了工作。於是他們爬上去找原因,發現這臺巨大的計算機內部一組繼電器的觸點之間有一隻飛蛾,這顯然是由於飛蛾受光和熱的吸引,飛到了觸點上,然後被高電壓擊死。所以在報告中,赫柏用膠條貼上飛蛾,並把“bug”來表示“一個在電腦程序裏的錯誤”,“Bug”這個說法一直沿用到今天。
7.2.軟件缺陷的種類劃分
按照軟件缺陷的產生原因,可以將其劃分爲不同的缺陷類別:
  1、功能不正常
  簡單地說就是所應提供的功能,在使用上並不符合產品設計規格說明書中規定的要求,或是根本無法使用。這個錯誤常常會發生在測試過程的初期和中期,有許多在設計規格說明書中規定的功能無法運行,或是運行結果達不到預期設計。最明顯的例子就是在用戶接口上所提供的選項及動作,使用者操作後毫無反應。

2、軟件在使用上感覺不方便

只要是不知如何使用或難以使用的軟件,在產品設計上一定是出了問題。所謂好用的軟件,就是使用上儘量方便,使用戶易於操作。如微軟推出的軟件,在用戶接口及使用操作上確實是下了一番功夫。有許多軟件公司推出的軟件產品,在彼此的接口上完全不同,這樣其實只會增加使用者的學習難度,另一方面也凸顯了這些軟件公司的集成能力不足。

3、軟件的結構未做良好規劃

這裏主要指軟件是以自頂向下方式開發,還是以自底向上方式開發。如果是以自頂向下的結構或方法開發的軟件,在功能的規劃及組織上比較完整,相反以自底向上的組合式方法開發處的軟件則功能較爲分散,容易出現缺陷。

4、提供的功能不充分

這個問題與功能不正常不同,這裏指的是軟件提供的功能在運作上正常,但對於使用者而言卻不完整。即使軟件的功能運作結果符合設計規格的要求,系統測試人員在測試結果的判斷上,也必須從使用者的角度進行思考,這就是所謂的“從用戶體驗出發”。

5、與軟件操作者的互動不良

一個好的軟件必須與操作者之間可以實現正常互動。在操作者使用軟件的過程中,軟件必須很好地響應。例如在瀏覽網頁時,如果操作者在某一網頁填寫信息,但是輸入的信息不足或有誤。當點擊“確定”按鈕後,網頁此時提示操作者輸入信息有誤,卻並未指出錯誤的哪裏,操作者只好回到上一頁重新填寫,或直接放棄離開。這個問題就是典型的在軟件對操作互動方面未做完整的設計。

6、使用性能不佳

被測軟件功能正常,但使用性能不佳,這也是一個問題。此類缺陷通常是由於開發人員採用了錯誤的解決方案,或使用了不恰當的算法導致的,在實際測試中有很多缺陷都是因爲採用了錯誤的解決方法,需要加以注意!

7、爲做好錯誤處理

軟件除了避免出錯之外,還要做好錯誤處理,許多軟件之所以會產生錯誤,就是因爲程序本身對於錯誤和異常處理的缺失。例如被測軟件讀取外部的信息文件並已做了一些分類整理,但剛好所讀取的外部信息文件內容已被損毀。當程序讀取這個損毀的信息文件時,程序發現問題,此時操作系統不知該如何處理這個情況,爲保護系統自身只好中斷程序。由此可見設立錯誤和異常處理機制的重要性!

8、邊界錯誤

緩衝區溢出問題在這幾年已成爲網絡攻擊的常用方式,而這個缺陷就屬於邊界錯誤的一種。簡單來說,程序本身無法處理超越邊界所導致的錯誤。而這個問題,除了編程語言所提供的函數有問題之外,很多情況下是由於開發人員在聲明變量或使用邊界範圍時不小心引起的。
9、計算錯誤

只要是計算機程序,就必定包括數學計算。軟件之所以會出現計算錯誤,大部分出錯的原因是由於採用了錯誤的數學運算工時或未將累加器初始化爲0.

10、使用一段時間所產生的錯誤

這類問題是程序開始運行正常,但運行一段時間後卻出現了故障。最典型的例子就是數據庫的查找功能。某些軟件在剛開始使用時,所提供的信息查找功能運作良好,但在使用一段時間後發現,進行信息查找所需的時間越來越長。經分析查明,程序採用的信息查找方式是順序查找,隨着數據庫信息的增加,查找時間自然會變長。這就需要改變解決方案了!

11、控制流程的錯誤

控制流程的好壞,在於開發人員對軟件開發的態度及程序設計是否嚴謹。軟件在狀態間的轉變是否合理,要依據業務流程進行控制。例如,用軟件安裝程序解釋這類問題最方便直觀。用戶在進行軟件安裝時,輸入用戶名和一些信息後,軟件就直接進行了安裝,未提示用戶變更安裝路徑、目的地等。這就是軟件控制流程不完整導致的錯誤問題。

12、在大數據量壓力下所產生的錯誤

程序在處於大數據量狀態下運行出現問題,就屬於這類軟件錯誤。大數據量壓力測試對於Server級的軟件是必須進行的一項測試,因爲服務器級的軟件對穩定性的要求遠比其它軟件要高。通常連續的大數據量壓力測試是必須實施的,如讓程序處理超過10萬筆數據信息,再來觀察程序運行的結果。

13、在不同硬件環境下產生的錯誤

這類問題的產生與硬件環境的不同相關。如果軟件與硬件設備有直接關係,這樣的問題就是數量相當多。例如有些軟件在特殊品牌的服務器上運行就會出錯,這是由於不同的Server內部硬件了不同的處理機制。

14、版本控制不良導致的錯誤

出現這樣的問題屬於項目管理的疏忽,當然測試人員未能盡忠職守也是原因之一。例如一個軟件被反映有安全上的漏洞,後來軟件公司也很快將修復版本提供給用戶。但在一年後他們推出新版本時,卻忘記將這個已解決的bug-fix加入到新版本中。所以對用戶來說,原本的問題已經解決了,但想不到新版本升級之後,問題又出現了。這就是由於版本控制問題,導致不同基線的merge出現誤差,使得產品質量也出現了偏差。

15、軟件文檔的錯誤

最後這類缺陷是軟件文檔錯誤。這裏所提及的錯誤,除了軟件所附帶的使用手冊、說明文檔及其它相關的軟件文檔內容錯誤之外,還包括軟件使用接口上的錯誤文字和錯誤用語、產品需求設計PD、UI Spec等的錯誤。錯誤的軟件文檔內容除了降低產品質量外,最主要的問題是會誤導用戶!
7.3.軟件缺陷的屬性
1.1.14.按照嚴重程度分:
一般分爲5個等級:
系統崩潰,嚴重,一般,次要,建議

1.1.15.按優先級分:
修正優先級:高,中,低

1.1.16.Bug定級示例
1級,系統崩潰
定義:嚴重阻礙測試和開發工作
對應優先級:最高
具體可分爲:
1.功能完全沒有實現
2.應用閃退/崩潰無法運行
3.應用必現安全模式,無法運行
4.其他導致功能無法測試的問題
2級,至關重要
定義:非阻礙用例執行的嚴重問題
對應優先級:高
具體可分爲:
1.簡單操作應用閃退/崩潰,卡死
2.數據丟失
3.嚴重影響系統,自身功能無法運行
4.嚴重數值計算錯誤
5.數據庫損壞或無法保存配置
6.安全性問題(包括數據加密等)
3級,主要
定義:功能存在缺陷,但不影響應用和系統的穩定性
對應優先級:中
具體可分爲:
1.內存泄露(長時間不用的對象需要被回收,不被回收佔內存)
2.功能實現邏輯覆蓋不全面
3.非必現,但復現概率超過50%的閃退/崩潰和安全模式
4級,一般
定義:對應用熟悉度高才能感知到的問題,對應用基本功能實現無影響
對應優先級:中
具體可分爲:
1.輕微數值計算錯誤
2.功能實現有誤,與產品文檔不完全貼切
3.用戶簡單操作,即可明顯感知的UI問題
5級,較小
定義:界面,性能缺陷
對應優先級:低
具體可分爲:
1.操作界面錯誤(提示顯示規則,刷新規則是否與文檔一致)
2.邊界條件顯示錯誤      
3.提示信息和界面效果展示錯誤(包括未給出信息、信息提示錯誤等)
4.復現率低於5%的閃退/崩潰和安全模式      
5.插件兼容和性能未優化問題      
6.非正常操作導致UI顯示異常

6級,建議
定義:對於產品的意見或者建議
對應優先級:低
具體可分爲:
1.對於產品設計方面的意見和建議
2.對於產品界面優化方面的意見和建議
3.對於產品需要優化增強用戶體驗方面的意見和建議

1.1.17.按照測試種類分:
邏輯功能類,性能類,界面類,易用性類,安裝,兼容性類

1.1.18.按照功能模塊分:
註冊,登錄,購物車,分類,訂單,個人信息
1.1.19.軟件缺陷類型
缺陷類型 內容說明 備註
系統缺陷 1、程序死循環
2 程序錯誤,不能執行正常工作或重要功能,使系統崩潰或資源不足 不能執行正常工作或重要功能,使系統崩潰或資源不足
數據缺陷 1 數據計算錯誤
2 數據約束錯誤
3 數據輸入、輸出錯誤 嚴重的影響系統要求或基本功能的實現
數據庫缺陷 1 數據庫發生死鎖
2 數據庫的表、缺省值未加約束條件
3 數據庫連接錯誤
4 數據庫的表有過多的空字段
接口缺陷 1 數據通信錯誤
2 程序接口錯誤
功能缺陷 1 功能無法實現
2 功能實現錯誤
安全性缺陷 1 用戶權限無法實現
2 超出限制錯誤
3 訪問控制錯誤
4 加密錯誤
兼容性缺陷 與需求規定配置兼容性不配合
性能缺陷 1 未達到預期的性能目標
2 性能測試中出錯,導致無法進行測試
界面缺陷 1 操作界面錯誤
2 打印內容,格式錯誤
3 刪除操作未給出提示
4 長時間操作未給出提示
5 界面不規範
建議 1 功能建議
2 操作建議 建議性的改進

1.1.20.按照解決方案分

1.1.21.按照Bug生命週期
新建,確認,解決,重新驗證,關閉,重新打開

7.4.缺陷報告(Bug報告,提的Bug)

7.5.Bug的處理
8.測試用例執行和故障管理流程圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章