按照軟件缺陷的產生原因,可以將其划分為不同的缺陷類別:
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等的錯誤。錯誤的軟件文檔內容除了降低產品質量外,最主要的問題是會誤導用戶!