軟體缺陷管理

軟體缺陷管理

軟體測試的工作就是查找軟體中存在的缺陷,回饋給開發人員使之修改,從而確保軟體的品質,因此軟體測試要求測試人員對軟體有一個深入理解。

1、軟體缺陷產生的原因
軟體缺陷就是通常所說的Bug,它是指軟體中(包括程式和文檔)存在的影響軟體正常運行的問題。IEEE(Institute of Electrical and Electronics Engineers,電子電子工程師協會)729-1983標準對軟體缺陷有一個標準的定義:從產品內部看,缺陷是產品開發或維護過程中存在的錯誤、毛病等各種問題;從產品外部看,缺陷是系統運行過程中某種功能的失效或違背。
軟體缺陷的產生主要是由軟體產品的特點和開發過程決定的,比如需求不清晰、需求頻繁變更、開發人員水平有限等。歸結起來,缺陷產生的原因主要有以下幾點。
(1)需求不明確。軟體需求不清晰或者開發人員對需求理解不明確,導致軟體在設計時偏離客戶的需求目標,造成軟體功能或特徵上的缺陷。此外,在開發過程中,客戶頻繁變更需求也會影響軟體最終的品質。
(2)軟體結構複雜。如果軟體系統結構比較複雜,很難設計出一個具有很好層次結構或組件結構的框架,這就會導致軟體在開發、擴充、系統維護上的困難。即使能夠設計出一個很好的架構,複雜的系統在實現時也會隱藏著相互作用的難題,而導致隱藏的軟體缺陷。
(3)編碼問題。在軟體開發過程中,程式設計師水平參差補齊,再加上開發過程中缺乏有效的溝通和監督,問題累積越來越多,如果不能逐一解決這些問題,會導致最終軟體中存在很多缺陷。
(4)項目期限短。現在大部分軟體產品開發周期都很短,開發團隊要在有限的時間內完成軟體產品的開發,壓力非常大,因此開發人員往往是在疲勞、壓力大、受到干擾的狀態下開發軟體,這樣的狀態下,開發人員對待軟體問題的態度是【不嚴重就不解決】。
(5)使用新技術。現代社會,每種技術發展都日新月異。使用新技術進行然間開發時,如果新技術本身存在不足或開發人員對新技術掌握不精,也會影響軟體產品的開發過程,導致軟體存在缺陷。

2、軟體缺陷的分類
軟體缺陷有很多,從不同的角度可以講缺陷分為不同的種類。
按照測試種類可以講軟體缺陷分為介面類、功能類、性能類、安全性類、兼容性類等。
按照缺陷的嚴重程度可以講缺陷劃分為嚴重、一般、次要、建議。
按照缺陷的優先順序不同可以講缺陷劃分為立即解決、高優先順序、正確排隊、低優先順序。
按照缺陷發生的階段不同可以講缺陷劃分為需求階段缺陷、架構階段缺陷、設計階段缺陷、編碼階段缺陷、測試階段缺陷。

按照不同標準講軟體缺陷劃分成不同的種類,具體如表1-1所示。

3、軟體缺陷的處理流程
軟體測試過程中,每個公司都制定了軟體的缺陷處理流程,每個公司的軟體處理流程不盡相同,但是它們遵循的最基本流程是一樣的,都要經過提交,分配,確認,處理,複測,關閉等環節,如圖所示

關於上圖所示的軟體缺陷處理環節的具體講解如下所示:
(1)提交:測試人員發現缺陷之後,將缺陷提交給測試組長
(2)分配:測試組長接收到測試人員提交的缺陷之後,將其移交給開發人員。
(3)確認:開發人員接收到移交的缺陷之後,會與團隊甚至測試人員一起商議,確定該缺陷是否是ig缺陷。
(4)拒絕/延期:如果經過商之後,缺陷不是一個真正的缺陷則拒絕處理,關閉缺陷;
經過商議之後,確定其是一個真正的缺陷,則可以根據缺陷的嚴重程度或優先順序等選擇利己處理或延期處理。
(5)處理:開發人員修改缺陷。
(6)複測:開發人員修改好缺陷之後,測試人員重新進行測試(複測),檢測缺陷是否確實已經修改。如果未被正確修改,則重新提交缺陷。
(7)關閉:測試人員重新測試之後,如果缺陷已經被正確修改,則將缺陷關閉,整個缺陷處理完成。

4、常見的軟體缺陷管理工具
軟體缺陷管理是軟體開發項目中一個很重要的環節,選擇一個好的缺陷管理工具可以有效的提高軟體項目的進展。軟體缺陷管理工具有很多,免費的,收費的應有盡有,可以介紹幾個比較常用的軟體缺陷管理工具。

1、Bugzilla
Bugzilla是Mozilla公司提供的一款免費的軟體缺陷管理工具。
Bugzilla能夠建立一個完整的缺陷跟蹤體系,包括缺陷跟蹤、記錄、缺陷報告、處理解決情況等。
使用Bugzilla管理軟體缺陷時,測試人員可以在Bugzilla上提交缺陷報告,Bugzilla會將缺陷轉給相應的開發者,開發者可以使用Bugzilla做一個工作表,表明要做的事情的優先順序、時間安排和跟蹤記錄。
2、禪道
禪道是一款優秀的國產項目管理軟體,它集產品管理、項目管理、品質管理、缺陷管理、文檔管理、組織管理和事務管理於一體,是一款功能完備的項目管理軟體,完美地覆蓋了項目管理的核心流程。
禪道分為專業和開源兩個版本,專業版是收費軟體,開源版是免費軟體,對於日常的項目管理,開源版本已經足夠使用。
3、Jira
Jira是Atlassina公司開發的項目於實務跟蹤工具,被廣泛用於缺陷跟蹤、客戶實務、需求收集、流程審批、任務跟蹤、項目跟蹤和敏捷管理等工作領域。Jira配置靈活、功能全面、部署簡單、擴展豐富、易用性好,是目前比較流行的基於Java架構的管理工具。
Jira軟體有兩個認可度很高的特色:第1個是Atlassian公司對該開源項目免費提供缺陷跟蹤服務;第2個是用戶在購買Jira軟體時源程式碼也會被購置進來,方便做二次開發。