一個缺陷的生命周期是怎么樣的?
面試官想了解:
是否了解缺陷測試
技術(shù)點
涉及的技術(shù)點:
缺陷測試
回答
在回答缺陷的生命周期的時候,我們首先要知道對應(yīng)的軟件缺陷是什么?以及缺陷的處理流程是什么?
缺陷
那么什么是軟件缺陷?其實,軟件缺陷一般被我們叫做Bug。對應(yīng)的軟件缺陷,就是我們所測試的程序中存在的無法正常運行或功能有相關(guān)缺陷。
那為什么會關(guān)注軟件缺陷呢?其實是因為Bug的存在導(dǎo)致被測產(chǎn)品在某種場景下不能滿足用戶的需求。
IEEE729-1983對缺陷的標準定義:
從產(chǎn)品內(nèi)部看,缺陷是軟件產(chǎn)品開發(fā)或維護過程中存在的錯誤、毛病等各種問題;
從產(chǎn)品外部看,缺陷是系統(tǒng)所需要實現(xiàn)的某種功能的失效或違背。
缺陷的生命周期
其實缺陷的處理過程和缺陷的生命周期是同一個含義。
生命周期就是它的一個整體的處理過程,即一個缺陷從創(chuàng)建到關(guān)閉的全過程。
一個缺陷可能會經(jīng)歷幾種不同的處理流程,根據(jù)它的不同處理方式分為以下幾種:
最短的第一種處理流程
當測試人員發(fā)現(xiàn)Bug后,提交相關(guān)的缺陷場景描述及現(xiàn)象,即 缺陷的狀態(tài)為New。
測試人員在創(chuàng)建缺陷之前首先應(yīng)該保證,這個缺陷是沒有被提過的,以免造成有重復(fù)的缺陷。
創(chuàng)建時會指定給開發(fā),缺陷創(chuàng)建成功后,對應(yīng)的開發(fā)確認缺陷,即 缺陷的狀態(tài)為Open。
開發(fā)接收到一個缺陷時,首先是根據(jù)測試人員的描述對缺陷進行分析及重現(xiàn),如果發(fā)現(xiàn)不是缺陷或缺陷對應(yīng)的場景無法復(fù)現(xiàn),則需要將缺陷直接重新指派給測試人員,并注明原因。
當開發(fā)確認缺陷并解決完后,此時 缺陷的狀態(tài)為Fixed,并當前缺陷被重新指派給測試人員。
測試發(fā)現(xiàn)缺陷的指派更改后,進行當前缺陷的回歸測試,若通過,則關(guān)閉缺陷,即 缺陷的狀態(tài)為Close。
以上,為最短的一個流程缺陷的處理方式,即確認缺陷并及時解決。
第二種處理流程
當測試人員發(fā)現(xiàn)Bug后,提交相關(guān)的缺陷內(nèi)容,即 缺陷的狀態(tài)為New。
創(chuàng)建時會指定給開發(fā),缺陷創(chuàng)建成功后,對應(yīng)的開發(fā)確認缺陷,即 缺陷的狀態(tài)為Open。
當開發(fā)確認缺陷并解決完后,此時 缺陷的狀態(tài)為Fixed,并當前缺陷被重新指派給測試人員。
測試發(fā)現(xiàn)缺陷的指派更改后,進行當前缺陷的回歸測試,測試未通過,重新添加對應(yīng)描述并指派給開發(fā)繼續(xù)解決,此時 缺陷的狀態(tài)為ReOpen。
以上,為缺陷的一個二次處理方式,即缺陷雖然確認但是解決后的二次驗證未通過。
第三種處理流程
當缺陷關(guān)閉后,由于某些原因,導(dǎo)致該缺陷場景再次復(fù)現(xiàn),則測試人員把已關(guān)閉的缺陷需要重新打開并再次指派給相關(guān)研發(fā),此時 缺陷的狀態(tài)為ReOpen。
該處理流程為缺陷的重新打開。
第四種處理流程
當測試人員提交缺陷,對應(yīng)的開發(fā)人員也確認缺陷。但是由于該缺陷的觸發(fā)場景為某些外在的極端條件,或者該缺陷的更改需要對架構(gòu)進行調(diào)整,以至于該缺陷的解決優(yōu)先級比較低,則對于開發(fā)而言可以暫時對該缺陷不進行處理,先掛起狀態(tài),等下個大版本發(fā)版時修復(fù)即可。則此時 缺陷的狀態(tài)為 推遲Postponed或 掛起Hang
第五種處理流程
當測試人員提交缺陷,對應(yīng)的開發(fā)人員也確認缺陷,但是缺陷是由于對需求文檔理解有偏差誤解導(dǎo)致,那么研發(fā)人員可以將這些缺陷標為拒絕修復(fù),則此時 缺陷的狀態(tài)為拒絕修復(fù)。
總結(jié)
以下為缺陷生命周期對應(yīng)場景的流程示意圖:
