一、軟件缺陷的定義及主要類型
我們對軟件缺陷分析一下,所謂"軟件缺陷(bug)",即為計算機軟件或程序中存在的某種破壞正常運行能力的問題、錯誤,或者隱藏的功能缺陷。一般來說,軟件缺陷的屬性包括缺陷標識、缺陷類型、缺陷嚴重程度、缺陷優先級、缺陷來源、缺陷原因等。
進行軟件缺陷分析后,軟件缺陷的主要可以分為以下幾種類型:
(1)設計不合理;
2)功能、特性沒有實現或部分實現;
3)運行出錯,包括運行中斷、系統崩潰、界面混亂等;
4)與需求不一致,在執行TestCase時則為實際結果和預期結果不一致;
(5)用戶不能接受的其他問題,如存取時間過長、界面不美觀;
(6)軟件實現了需求未提到的功能。
二、軟件缺陷的級別、優先級及狀態
軟件缺陷有四種級別,分別為:致命的(Fatal),嚴重的(Critical),一般的(Major),微小的(Minor)。
A類—致命的軟件缺陷(Fatal): 造成系統或應用程序崩潰、死機、系統掛起,或造成數據丟失,主要功能完全喪失,導致本模塊以及相關模塊異常等問題。如代碼錯誤,死循環,數據庫發生死鎖、與數據庫連接錯誤或數據通訊錯誤,未考慮異常操作,功能錯誤等
B類—嚴重錯誤的軟件缺陷(critical):系統的主要功能部分喪失、數據不能保存,系統的次要功能完全喪失。問題局限在本模塊,導致模塊功能失效或異常退出。如致命的錯誤聲明,程序接口錯誤,數據庫的表、業務規則、缺省值未加完整性等約束條件
C類—一般錯誤的軟件缺陷(major):次要功能沒有完全實現但不影響使用。如提示信息不太準確,或用戶界面差,操作時間長,模塊功能部分失效等,打印內容、格式錯誤,刪除操作未給出提示,數據庫表中有過多的空字段等
D類—較小錯誤的軟件缺陷(Minor),使操作者不方便或遇到麻煩,但它不影響功能過的操作和執行,如錯別字、界面不規范(字體大小不統一,文字排列不整齊,可輸入區域和只讀區域沒有明顯的區分標志),輔助說明描述不清楚
E類- 建議問題的軟件缺陷(Enhancemental):由問題提出人對測試對象的改進意見或測試人員提出的建議、質疑。
常用的軟件缺陷的優先級表示方法可分為:立即解決P1、高優先級P2、正常排隊P3、低優先級P4。立即解決是指缺陷導致系統幾乎不能使用或者測試不能繼續,需立即修復;高優先級是指缺陷嚴重影響測試,需要優先考慮;正常排隊是指缺陷需要正常排隊等待修復;而低優先級是指缺陷可以在開發人員有時間的時候再被糾正。
正確評估和區分軟件缺陷的嚴重性和優先級,是測試人員和開發人員以及全體項目組人員的一件大事。這既是確保測試順利進行的要求,也是保證軟件質量的重要環節,應該要引起足夠的重視。這里介紹三種常用的技術工具供大家參考。
(1)20/80原則
管理學大師彼得杜拉克說過:做事情必須分清輕重緩急。最糟糕的是什么事都做,這必將一事無成。而意大利經濟學家柏拉圖則更明確提出:重要的少數與瑣碎的多數或稱20/80的定律。就是80%的有效工作往往是在20%的時間內完成的,而20%的工作是在80%的時間內完成的。因此,為了提高測試質量,必須清晰的認識到哪些軟件缺陷是最重要的,哪些軟件缺陷是最關鍵的。不要揀了芝麻,卻丟了西瓜。所以,只有抓住了重要的關鍵缺陷,測試效果才能產生最大的效益,這也是第一個原則---分清輕重緩急,把測試活動用在最有生產力的事情上。
(2)ABC法則
古人云:事有先后,用有緩急。測試工作其實也是如此,分清軟件缺陷的輕重緩急,不但做處理軟件缺陷來井井有條,完成后的效果也是不同凡響。因此,我們在測試工作中要時時記住一點,手邊的軟件缺陷并不一定就具有第一優先處理的重要性。只有正確的判斷,才可將測試活動效率增加數倍。
ABC法則是設定軟件缺陷優先順序重要工具之一。這ABC工具的關鍵點在于根據軟件缺陷的重要程度決定優先順序,按需求目標進行量化規劃。把A類軟件缺陷作為測試最重要的最有價值的最關鍵的缺陷,并保證首先把A類軟件缺陷先處理。其次是B類軟件缺陷,然后是C類軟件缺陷,然后是其它的,還有一些不緊急不重要的軟件缺陷根本沒有必要去做。
(3)四象限原則,把軟件缺陷進行分類
在處理測試軟件缺陷中,常會遇到千頭萬緒、問題繁多的情況,有些測試人員會被測試出來眾多的軟件缺陷所壓垮,有些人則是悠然自得、高效完成。到底是什么原因造成這種區別呢?原因在于對軟件缺陷分類是否合理。
那么,我們該如何對軟件缺陷進行合理的分類呢?其實很簡單,在一張坐標紙上,先劃分好四個象限,然后只需記住四個字就行,那就是"輕重緩急"。"輕",指的是相對重要但不緊急的軟件缺陷;"重",是指最重要也是最緊急的軟件缺陷;"緩",指的是不重要也不緊急的軟件缺陷;"急",則是指不是最重要但卻最為緊急的軟件缺陷。理清這種關系之后,就算同時測試許多不同類型的軟件缺陷,也會很快清楚哪些軟件缺陷是必須馬上完成,哪些缺陷是可以暫時緩一緩,這樣也就不會被堆積如山的軟件缺陷所壓垮,測試效率自然也會得到很大的提高。
軟件缺陷的三種基本狀態:
(1)激活狀態(Active或Open)。
(2)已修正狀態(Fixed或Resolved)。
(3)關閉或非激活狀態(Close或Inactive)。
三、軟件缺陷分析產生原因及分類
軟件缺陷分析產生原因主要有三方面:技術問題,團隊合作,軟件本身。
從測試觀點我們將軟件缺陷分為五類,分別為:功能缺陷,系統缺陷,加工缺陷,數據缺陷,代碼缺陷。
四、軟件測試心理學問題
(1)程序測試的過程具有破壞性。
(2)程序員應避免測試自己的程序。
(3)程序設計組織不應測試自己的程序。
原文轉自:http://www.anti-gravitydesign.com