天天看點

軟體缺陷的種類劃分

  按照軟體缺陷的産生原因,可以将其劃分為不同的缺陷類别:

  1、功能不正常

  簡單地說就是所應提供的功能,在使用上并不符合産品設計規格說明書中規定的要求,或是根本無法使用。這個錯誤常常會發生在測試過程的初期和中期,有許多在設計規格說明書中規定的功能無法運作,或是運作結果達不到預期設計。最明顯的例子就是在使用者接口上所提供的選項及動作,使用者操作後毫無反應。

  2、軟體在使用上感覺不友善

  隻要是不知如何使用或難以使用的軟體,在産品設計上一定是出了問題。所謂好用的軟體,就是使用上盡量友善,使使用者易于操作。如微軟推出的軟體,在使用者接口及使用操作上确實是下了一番功夫。有許多軟體公司推出的軟體産品,在彼此的接口上完全不同,這樣其實隻會增加使用者的學習難度,另一方面也凸顯了這些軟體公司的內建能力不足。

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

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

  4、提供的功能不充分

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

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

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

  

軟體缺陷的種類劃分

  6、使用性能不佳

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

  7、為做好錯誤處理

  軟體除了避免出錯之外,還要做好錯誤處理,許多軟體之是以會産生錯誤,就是因為程式本身對于錯誤和異常處理的缺失。例如被測軟體讀取外部的資訊檔案并已做了一些分類整理,但剛好所讀取的外部資訊檔案内容已被損毀。當程式讀取這個損毀的資訊檔案時,程式發現問題,此時作業系統不知該如何處理這個情況,為保護系統自身隻好中斷程式。由此可見設立錯誤和異常處理機制的重要性!

  8、邊界錯誤

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

  9、計算錯誤

  隻要是計算機程式,就必定包括數學計算。軟體之是以會出現計算錯誤,大部分出錯的原因是由于采用了錯誤的數學運算工時或未将累加器初始化為0.

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

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

  11、控制流程的錯誤

  控制流程的好壞,在于開發人員對軟體開發的态度及程式設計是否嚴謹。軟體在狀态間的轉變是否合理,要依據業務流程進行控制。例如,用軟體安裝程式解釋這類問題最友善直覺。使用者在進行軟體安裝時,輸入使用者名和一些資訊後,軟體就直接進行了安裝,未提示使用者變更安裝路徑、目的地等。這就是軟體控制流程不完整導緻的錯誤問題。

  12、在大資料量壓力下所産生的錯誤

  程式在處于大資料量狀态下運作出現問題,就屬于這類軟體錯誤。大資料量壓力測試對于Server級的軟體是必須進行的一項測試,因為伺服器級的軟體對穩定性的要求遠比其它軟體要高。通常連續的大資料量壓力測試是必須實施的,如讓程式處理超過10萬筆資料資訊,再來觀察程式運作的結果。

  13、在不同硬體環境下産生的錯誤

  這類問題的産生與硬體環境的不同相關。如果軟體與硬體裝置有直接關系,這樣的問題就是數量相當多。例如有些軟體在特殊品牌的伺服器上運作就會出錯,這是由于不同的Server内部硬體了不同的處理機制。

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

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

繼續閱讀