軟體缺陷修復流程初探

2021-04-19 23:05:38 字數 1965 閱讀 4702

在介紹軟體缺陷修復流程之前,首先需要了解軟體生命週期中發現的缺陷數量的變化趨勢。如下圖所示,在軟體生命週期中,所發現的軟體缺陷數量呈現週期性變化的規律。在乙個週期內,由於進行軟體開發活動(需求分析、設計和編碼)引入了缺陷,導致在軟體測試和使用中發現的缺陷數量大幅增長,再通過缺陷修復活動可以使得發現的缺陷數量降低到乙個可接受的水平。在乙個缺陷增減週期內,發現的缺陷數量可能會出現多次波浪式的反覆,出現這種現象是由於軟體測試活動受到測試資源、測試經驗和測試技能的限制,在一段時間內能夠發現的缺陷數量有限,並且隨著測試時間的增長可以發現更多的缺陷;而同期進行的缺陷修復活動,降低了已發現的缺陷數量。但是由於缺陷修復也是一種開發活動,它也可能引入新的缺陷。

因此,在保證軟體質量的前提下,要想減少]軟體測試和缺陷修復的時間,從而縮短軟體開發周期,降低軟體開發成本,主要從兩個方面著手,乙個方面是通過增加測試資源、積累測試經驗和提公升測試技能來增強軟體測試能力,在有限的時間內發現更多的缺陷,特別是發現嚴重的缺陷;另一方面是增強軟體缺陷的修復能力,提高修復效率,這正是本文要**的內容。

軟體缺陷修復是一種開發活動,因此軟體缺陷修復也應該遵循一定的開發流程,來保證軟體缺陷修復的質量。規範的流程如下:

1)確定缺陷產生的原因。定位缺陷產生的原因,首先要能重現缺陷,這就要求缺陷描述資訊完整準確清晰,以便於重現。對於隨機出現的缺陷,需要耐心細緻的分析蛛絲馬跡,才能抓住缺陷的尾巴。在確定缺陷產生的原因後,還要分析確認軟體中是否存在類似的缺陷,舉一反三,這樣發現了更多的缺陷,提高測試效率。

2)缺陷修復方案設計和評審。依據產生缺陷的原因,結合現有的軟體結構,制定出缺陷修復方案。軟體模組是相互關聯的,甚至會牽一髮而動全身,因此,缺陷方案設計需要通盤全面考慮,要用聯絡的觀點分析問題,要確保修復方案所涉及的模組保持業務邏輯的正確性和一致性,避免出現「按下葫蘆浮起瓢」的情況(這也是軟體缺陷修復活動產生新的缺陷的主要原因)。除了依據需求文件和設計文件進行業務邏輯分析之外,還可以借助工具來分析和驗證**。例如,修改了乙個函式,可以使用源**靜態分析工具檢視對該函式的所有呼叫,確認修改後的函式是否保持了邏輯的完整性。

3)缺陷修復編碼和自測。缺陷修復的自測不僅僅要測試缺陷所在的模組,還應該測試缺陷修復編碼所涉及到的模組及其關聯模組。

4)缺陷修復**自查。缺陷修復**自查是缺陷修復者檢查修復**,以期發現**中的錯誤。經驗表明,缺陷修復**自查發現的錯誤主要是編碼錯誤,特別是隱蔽較深的不易暴露的編碼錯誤,以及一部分的設計錯誤。因此,建議無論缺陷修復的難易度如何,都要進行缺陷修復**自查。缺陷修復**自查需要注意三點:一是**自查要遵循人往往只看到自己希望看到的心理學原理,以盡可能多的發現**錯誤為目的,而不是以證明**正確為目的,避免先入為主的求證心理;二是**自查應該安排在時間充裕和精力充沛的時候,並且**自查的時間點應該與**改造完成間隔一段時間(建議間隔一天),這時可能會有了一些新的思路,從新的角度檢查**就可能發現更多的錯誤;三是**自查的重點應該集中在**改造的地方,因為**修復通常是對已有的**進行改造。可以借助檔案比較工具,對改造前後的**進行比較,標示出修改了的**,進行重點檢查,這樣可以收到事半功倍的效果。

5)缺陷修復**審查。缺陷修復**審查的方式和方法與普通的**審查相同,缺陷修復**審查的注意事項與缺陷修復**自查的相同。

6)缺陷修復驗證測試。缺陷修復驗證測試的範圍至少應該與缺陷修復自測的範圍相同。在目前採用的開發人員參與完成迭代測試和發布測試的模式下,可以由專業的軟體測試工程師確定驗證範圍和驗證方案,由軟體開發工程師交叉驗證修復的缺陷。需要注意的是,驗證測試人員應該以盡可能多的發現缺陷的目的來進行測試,而不是以證明缺陷被正確修復的目的來完成測試,避免先入為主的求證心理,才能盡可能多的發現問題。

軟體缺陷修復作為一種開發活動應該遵循規範的流程。軟體缺陷修復流程可以依據實際情況進行適當裁減,對於簡單的軟體缺陷修復可以考慮省略缺陷修復設計方案評審和缺陷修復**審查步驟,但是對於修復難度大、改動量大和影響範圍廣的軟體缺陷修復,則應該採用規範的流程,確保軟體缺陷修復的質量。

軟體缺陷管理流程

軟體缺陷 bug 能夠引起軟體執行時產生的一種不希望或不可接受的外部行為結果,而 軟體測試缺陷管理流程。一 缺陷產生的原因 通常開發及測試人員所講述的軟體錯誤和軟體缺陷是兩個不同的概念,簡單的來講軟體錯誤是指在軟體宣告週期內不希望或不可見接受的人為錯誤,其結果是導致軟體缺陷的產生。在軟體動態執行過程...

軟體缺陷處理流程

在實際工作中,發現bug 記錄bug 關閉bug是測試工程師的主要工作。四種角色 開發經理 開發人員 測試經理 測試人員。缺陷共六種狀態 新建 new 開放 open 重新開放 reopen 拒絕 rejected 已修正 fixed 已關閉 closed 軟體缺陷處理流程 1.測試人員發現並確認缺...

軟體缺陷管理流程

軟體缺陷 bug 能夠引起軟體執行時產生的一種不希望或不可接受的外部行為結果,而軟體測試的過程簡單來說就是圍繞缺陷進行的。而為了有效的的跟蹤 管理bug的處理情況,指導測試團隊和開發人員有效的處理相關bug,有必要採用一套完整的方法 手段對其進行管理,也就是本文將介紹的缺陷管理流程。一 缺陷產生的原...