Defect,中文翻譯為缺點;不足之處。是指在項目開發過程中隱藏著的一些未被發現的缺陷或問題,又名Bug。Defect存在於軟體整個生命過程中,從軟體建立開始,到軟體生命週期結束,Defect會一直存在。我們平時所說的沒有Defect,是指消除了已經發現的Defect。
Defect的數量會隨著軟體開發過程,由少到多,再由多到少。軟體建立初期,各個功能模組主要搭建架構,重點在於流程的可行性,此時Defect粒度較大,數量較少。在軟體建立中期,各個模組主體流程基本開發完畢,開發重點由架構轉移到資料準確性上,開發工作單位細化到需求跟蹤矩陣上,此時Defect粒度最細,從而發現的數量也最大。在軟體開發末期,軟體開發基本進入尾聲,隨著開發人員不斷修複Defect,Defect的數量越來越少。直至已測試出的Defect全部消滅掉。
在軟體開發初期,軟體的開發重點在於架構的搭建,以及流程的可行性,此時Defect的粒度最大,主要針對1級功能點。軟體測試人員主要根據各個模組的流程是否可正常運行,來開相應的Defect。此時的Defect數量較少,但是工作量都較大,開發的Defect通常都是由需求不明確而引起的。
在軟體開發前期,軟體的開發主要在於各功能菜單的實現,這裡不單單指菜單的實現,而是指各功能模組包含的一系列的菜單的功能的集合。此時的開發工作單位較明確,軟體開發人員主要工作任務在於流程的細化,主要是對流程進行詳細的控制,用福士化的語言來講,就是為流程添加限制條件。此時的Defect相對於前期粒度較細,數量更多,主要針對對象是二級功能點。修複這些Defect的工作量通常要比軟體開發初期少一些,但是比軟體中期要多些。
在軟體開發中期,軟體開發除了要流程上可行,功能上可用之外,還要確保資料的正確性。此時軟體開發工作單位的詳細程度都是根據需求跟蹤矩陣進行的,某個功能點是否開發,限制條件有哪些,都要嚴格按照需求跟蹤矩陣來進行。這時的開發粒度最細,從而提出的Defect粒度也最細,主要針對三級功能點。因為尺規的衡量粒度細,所以網出的Defect也最多。但是這些Defect的修複速度卻是最快的,每天修複20~30個Defect,是輕而易舉事情。
在軟體開發末期,軟體的測試由測試人員轉移到客戶手中,這時候才是衡量一個功能點是否真的可用的時候。有些功能我們覺得細化了好,但是客戶不喜歡用,只好將原來修複的Defect再轉換為“Defect”,以供客戶使用,誰讓客戶是上帝呢!
在軟體開發整個過程中,Defect的提出以需求測試為主,因為軟體開發人員發現了Defect就直接處理掉了,不會留給需求測試人員來抓小鞭子的。但是通常一組功能在軟體開發人員未完全開發完畢,需求測試組就介入其中,一是防止開發人員走偏;二是抓緊項目的上線。所以,Defect在軟體開發過程中,會經常高頻率的出現在軟體開發人員手中。