qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

          軟件測(cè)試過程中對(duì)bug的處理流程

           又屬于一篇普及文,希望自己在被各種技術(shù)吸引的同時(shí),能時(shí)常來整理和總結(jié)軟件測(cè)試最基本的知識(shí)。

            從剛工作時(shí)接觸的第一個(gè)缺陷管理工具禪道,到redmine、JIRA、bugzilla ,再到現(xiàn)在的QC,當(dāng)然還有其它種的開源的或商業(yè)的缺陷管理工具,它們的本質(zhì)是一樣的,就是來管理缺陷的生命周期。

            其實(shí),你理解任意的一款工具,其它的工具也一定能無師自通。這不談某款工具,單把它本質(zhì)的一些東西抽離出來與大家分享。

            Bug的屬性

            Bug重現(xiàn)環(huán)境

            這個(gè)應(yīng)該是我們重現(xiàn)bug的一個(gè)前提,如果沒有這個(gè)前提,我們可能會(huì)無法重現(xiàn)問題,或者跟本就無從下手。

            操作系統(tǒng)

            這個(gè)是一般軟件運(yùn)行的一大前提,基本上所有的軟件都依賴于操作系統(tǒng)之上的,對(duì)于一個(gè)軟件來說,要想在某個(gè)操作系統(tǒng)上運(yùn)行,必須要對(duì)這個(gè)操作系統(tǒng)支持,這就需要有真對(duì)性的設(shè)計(jì)與開發(fā)。對(duì)于不同的操作系統(tǒng),其可能存在差異(如:win xp 與 win 7)或本質(zhì)的區(qū)別(如 win 7 與 CentOS linux ),所以,操作系統(tǒng)環(huán)境是重現(xiàn)問題的一個(gè)重要前提。

            瀏覽器

            對(duì)于B/S系統(tǒng),或面向大眾的互聯(lián)網(wǎng)產(chǎn)品(網(wǎng)站,郵箱等),瀏覽器的兼容性也是必須測(cè)試的一個(gè)重點(diǎn),對(duì)于現(xiàn)在的瀏覽器市場(chǎng),各式的瀏覽器都有其用戶群,要想使產(chǎn)品大眾化,必須考慮這些產(chǎn)品的兼容性問題。

            不同的瀏覽器之間(IE、 firefox、chrome、opera 等),甚至同一系列不同版本(ie6/ie7/ie8/ie9等)都可能存在兼容性問題,所以,對(duì)于這類應(yīng)用,瀏覽器環(huán)境重現(xiàn)bug前提條件之一。

            其它(這個(gè)“其它”非常重要)

            對(duì)于不同的系統(tǒng)發(fā)現(xiàn)重現(xiàn)問題,都會(huì)有其特定的前提,拿我測(cè)試的郵箱來說,必須要描述其是在測(cè)試線還是現(xiàn)網(wǎng)環(huán)境,而且還要附帶一重現(xiàn)問題的帳號(hào)等。

            對(duì)于c/s軟件,可能還要考慮與其它常用軟的兼容等,例如,是在安裝的某款軟件后,對(duì)本軟件的安裝和使用造成影響。這些都是重現(xiàn)問題的必須描述的環(huán)境。

            問題類型

            根據(jù)JIRA的管理系統(tǒng)的劃分,bug 只是問題的一種,它可以用于跟蹤多種不同類型的問題(其實(shí),他只是將bug做為一子類而已)。

            JIRA系統(tǒng)缺省提供的問題類型(大部分的系統(tǒng)都可以自定義類型的,這樣就增加了靈活性。)

            ● Bug : 測(cè)試過程、維護(hù)過程發(fā)現(xiàn)影響系統(tǒng)運(yùn)行的缺陷。(這就是一般測(cè)試人員所提交的bug)

            ● New Feature :  對(duì)系統(tǒng)提出的新功能。(單個(gè)的小需求可以,如果大的話,就相當(dāng)于一個(gè)需求,放到這里是不合理的。)

            ● Task : 需要完成的一任務(wù)。(開發(fā)或測(cè)試任務(wù)指派。)

            ● Improvement : 對(duì)現(xiàn)有系統(tǒng)功能的改進(jìn)。(一般產(chǎn)品經(jīng)理或產(chǎn)品體驗(yàn)師做的事)

            當(dāng)然,不同的公司,他們的人員定位與職責(zé)是不太相同的,按照上面的分類,JIRA就不是簡(jiǎn)單的缺陷管理系統(tǒng)了,它涵蓋一項(xiàng)目(或產(chǎn)品)所需要處理的任務(wù)、需求與缺陷。

           Bug 類型:

            這里縮小范圍,單指我們測(cè)試人員在測(cè)試過程中發(fā)現(xiàn)的缺陷,發(fā)現(xiàn)產(chǎn)品缺陷其實(shí)就是測(cè)試人員工作的主要目的。當(dāng)然,你要確定一個(gè)問題的類型,也需要對(duì)項(xiàng)目(或產(chǎn)品)有比較深的理解。是代碼缺陷還是設(shè)計(jì)缺陷有時(shí)候就不太容易區(qū)分,當(dāng)然,這個(gè)劃分,對(duì)于開發(fā)定位問題影響很小,但對(duì)于問題類型的統(tǒng)計(jì)就比較重要了。

            下面看一些常見的分類:

            劃分方式一:

            代碼錯(cuò)誤

            設(shè)計(jì)缺陷

            界面優(yōu)化

            配置相關(guān)

            安裝部署

            性能問題

            標(biāo)準(zhǔn)規(guī)范

            測(cè)試代碼

            其它

            劃分方式二:

            功能類(function)

            性能類(performance)

            界面類(UI)

            易用性類(usability)

            兼容性類(compatibility)

            其它(else)

            這個(gè)分類當(dāng)然是可以自定義的,具我接觸的缺陷管理都是可以自定義的,既然是對(duì)問題的管理,那么你當(dāng)然可以拿來做特定環(huán)境下的系統(tǒng)來使用,或我就想用這個(gè)系統(tǒng)來指派任務(wù),那么我的自定義類型為前端任務(wù)、后端任務(wù)、測(cè)試任務(wù)、配置部署...

            缺陷等級(jí)

            缺陷等級(jí),這個(gè)劃分也比較靈活,有分三級(jí)或四級(jí),也有分五級(jí)的。

            致命

            一招斃命的缺陷,使你的系統(tǒng)無法運(yùn)行,有造成數(shù)據(jù)泄漏的安全性問題。

            嚴(yán)重

            可以引起易于糾正的異常情況、可能引起易于修復(fù)的故障或?qū)Ξa(chǎn)品外觀難以接受的缺陷。

            一般

            指不影響產(chǎn)品的運(yùn)轉(zhuǎn)和運(yùn)行、不會(huì)成為故障起因,但對(duì)產(chǎn)品外觀和下道工序影響較大的缺陷

            輕微

            輕微缺陷是指對(duì)產(chǎn)品外觀和下道工序可能會(huì)有輕微影響的缺陷

            建議

            增加用戶使用體驗(yàn)的建議性問題。(一般情況下,建議也為做為缺陷的一種。這個(gè)跟系統(tǒng)的類型與需求有關(guān))

            缺陷優(yōu)先級(jí)(priority)

            當(dāng)問題處理人員在面對(duì)許多問題需要處理進(jìn),就需要問題進(jìn)行優(yōu)先級(jí)排序。我們做事情的安排,操作系統(tǒng)有處理進(jìn)程等都在使用著優(yōu)先級(jí)。

            優(yōu)先級(jí)的劃分:

            低——>中——>高——>緊急

            延遲處理——>正常排隊(duì)——>優(yōu)先處理——>緊急處理

            Bug 的嚴(yán)重程度和優(yōu)先級(jí)是含義不同但相互聯(lián)系密切的兩個(gè)概念,它們從不同的側(cè)面描述了軟件缺陷對(duì)軟件質(zhì)量和最終用戶的影響程序和處理方式。

            一般地,嚴(yán)重程序高的軟件缺陷具有較高的優(yōu)先級(jí)。嚴(yán)重程度高說明缺陷對(duì)軟件造成的危害性大,需要優(yōu)先處理,而來嚴(yán)重程序低的缺陷可能只是軟件不太盡善盡美,可以稍后處理。

            嚴(yán)重程度高優(yōu)先級(jí)不一定高:

            如果某個(gè)嚴(yán)重的軟件缺陷只在非常極端的條件下產(chǎn)生,則沒有必要馬上處理。

            如果某一個(gè)軟件缺陷,需要重新修改軟件的整體架構(gòu),可能會(huì)產(chǎn)生更多的潛在缺陷,而且軟件由于市場(chǎng)的壓力必須盡快發(fā)布,此時(shí)即使缺陷的嚴(yán)重性很高,是否需要修正,需要全盤考慮。

            嚴(yán)重程度優(yōu)先級(jí)不一定低

            如果是軟件名稱或公司名稱的拼寫錯(cuò)誤,雖然說其屬于界面錯(cuò)誤,嚴(yán)重程度不高,但其關(guān)系到軟件和公司的市場(chǎng)開解,必須盡快修正。

            缺陷狀態(tài)

            對(duì)于一個(gè)問題,其處理過程是一個(gè)周期,周期的不同階段,其所處的狀態(tài)也是不一樣的。不同狀態(tài)所對(duì)應(yīng)的處理人也是不一樣的。

            打開:表示問題被提交等待有人處理。

            重新指派:?jiǎn)栴}被重新指派給某人處理。

            處理:?jiǎn)栴}在處理中,尚未完成。

            固定:確認(rèn)此問題存在,但暫時(shí)不進(jìn)行處理。

            回歸:對(duì)已經(jīng)修復(fù)的問題進(jìn)行回歸確認(rèn)。Reopened :

            關(guān)閉:?jiǎn)栴}的最后一個(gè)狀態(tài)。

            Bug處理流程

            下面通過一個(gè)比較完整的bug的處理流程圖,更深刻的理解bug的狀態(tài)以一個(gè)bug的生命周期。

            提交(打開)缺陷

            在提交一個(gè)缺陷的缺陷,首先盡量描述這個(gè)缺陷的屬性。Bug重現(xiàn)環(huán)境,bug類型,bug等級(jí),bug的優(yōu)先級(jí)以及詳細(xì)的重現(xiàn)步驟,結(jié)果與期望等。

            當(dāng)然,我們?cè)谔峤灰粋€(gè)問題之前首先應(yīng)該保證,這個(gè)缺陷是沒有被提過的,以免造成重復(fù)缺陷單。

            如果是回歸不通過的缺陷,其狀態(tài)又會(huì)變?yōu)榇蜷_狀態(tài)。

           分配(轉(zhuǎn)交)缺陷

            這一步不是必須的,跟項(xiàng)目模式有關(guān),有些公司測(cè)試部門與開發(fā)部門獨(dú)立,那么測(cè)試人員就不確定自己測(cè)試的模塊是由哪位開發(fā)人員負(fù)責(zé)的,在這種情況下,測(cè)試人員統(tǒng)一把問題指派給項(xiàng)目組長(zhǎng)或經(jīng)理,由項(xiàng)目組長(zhǎng)(或經(jīng)理)對(duì)問題進(jìn)行確認(rèn)后再次分配給相應(yīng)的開發(fā)人員。

            有些測(cè)試人員是穿插到不同研發(fā)團(tuán)隊(duì)中的,所以對(duì)不同的開人發(fā)員負(fù)責(zé)的開發(fā)模塊非常清楚,這個(gè)時(shí)候就可以將問題直接指派給相應(yīng)的開發(fā)人員。

            也有一種情況,本來此問題應(yīng)該由A開發(fā)人員負(fù)責(zé),但由于A開發(fā)人員的調(diào)離或辭職,些問題為轉(zhuǎn)交給其它人員處理。“分配”強(qiáng)調(diào)是上級(jí)對(duì)下級(jí);“轉(zhuǎn)交”強(qiáng)調(diào)的是平級(jí)之間。

            確認(rèn)缺陷

            當(dāng)開發(fā)人員接到一個(gè)缺陷時(shí),首先是對(duì)其進(jìn)行分析與重現(xiàn),如果對(duì)其進(jìn)行分析發(fā)現(xiàn)不是缺陷(可能由于測(cè)試人員不了解需求)或無法對(duì)此問題進(jìn)行重現(xiàn),那么就需要將此問題反回給測(cè)試人員,并注明原因。如果確認(rèn)為缺陷則需要對(duì)其進(jìn)行處理。

            推遲處理

            在處理問題之后,還需要進(jìn)行一次判斷,是否需要推遲處理,有些需求已經(jīng)確認(rèn)了是問題,由于其可能在極端情況下才會(huì)出現(xiàn),或需要對(duì)系統(tǒng)架構(gòu)進(jìn)行改動(dòng),或其優(yōu)先級(jí)非常低,所以暫時(shí)不需要對(duì)此問題進(jìn)行處理(或到下個(gè)版本進(jìn)再進(jìn)行修復(fù))。

            固定

            對(duì)于推遲處理的問題可以暫時(shí)進(jìn)行固定(“固定”為QC中的叫法。)一般固定的問題需要經(jīng)過項(xiàng)目經(jīng)理與測(cè)試經(jīng)理協(xié)商后才能固定。

            處理缺陷

            開發(fā)人員在確認(rèn)完一個(gè)問題需要處理時(shí),那么就對(duì)其進(jìn)行處理工作。(例如,redmine 是支持處理人時(shí)時(shí)更新問題處理進(jìn)度的,如 已處理30% ,已處理80% 等,當(dāng)然,對(duì)于短時(shí)間內(nèi)可以修復(fù)的問題就沒必要時(shí)時(shí)的去更新處理進(jìn)度。)

            回歸缺陷

            回歸缺陷對(duì)于測(cè)試人員來說是非常重要的工作,其有三個(gè)入口兩個(gè)出口。

            確認(rèn)非缺陷問題:對(duì)于提交的一個(gè)缺陷,開人員處理為非問題或無法重現(xiàn),然后直接轉(zhuǎn)交給測(cè)試人員回歸。測(cè)試人員再次確認(rèn),如果真如開發(fā)人員所說,則將問題關(guān)閉。如果非開發(fā)人員所說,是由于問題描述模糊或其它原因喂重現(xiàn)問題,則再次注明原因轉(zhuǎn)給開發(fā)人員。

            確認(rèn)修復(fù)問題:對(duì)開發(fā)人員修復(fù)的問題再次進(jìn)行確認(rèn),確認(rèn)能過,則關(guān)閉問題。確認(rèn)不通過,將問題再次打開并轉(zhuǎn)給開發(fā)人員。

            確認(rèn)固定問題:有計(jì)劃的對(duì)固定問題進(jìn)行確認(rèn),有些固定問題隨著時(shí)間的推移,版本的更新或已經(jīng)不存在了,對(duì)這類問題應(yīng)該及時(shí)關(guān)閉。有些固定問題依然存在且變得緊急,對(duì)于這類問題應(yīng)該及時(shí)打開交給開發(fā)人員處理。

            關(guān)閉缺陷

            對(duì)于已經(jīng)修復(fù)的缺陷進(jìn)行關(guān)閉,這也是一個(gè)缺陷的最后一個(gè)狀態(tài)。

            --------------------------------------------------------------------------------

            注1:文中提到了產(chǎn)品與項(xiàng)目,好多人分不清項(xiàng)目與產(chǎn)品,各自有各自的理解。我個(gè)人從用戶群上來劃分。如果面向的是特定客戶的需求,那么稱其為項(xiàng)目,如某醫(yī)院的醫(yī)療系統(tǒng),某公司的管理系統(tǒng)。面向大眾用戶且長(zhǎng)期運(yùn)營(yíng)的需求,稱為產(chǎn)品,如,某網(wǎng)站,某網(wǎng)絡(luò)游戲。

            如果小A讓我給他做一個(gè)網(wǎng)站呢?對(duì)于我來說,小A是我的客戶,這個(gè)網(wǎng)站對(duì)我來說就是一個(gè)項(xiàng)目,對(duì)于小A來說,他的網(wǎng)站是面向大眾用戶的,那么對(duì)于小A來說,網(wǎng)站就是自己的產(chǎn)品。

            富士康帶工蘋果手機(jī)是一樣的道理,富士康接到蘋果的訂單,那么對(duì)富士康來說是個(gè)項(xiàng)目,完成項(xiàng)目,拿到錢就算項(xiàng)目結(jié)束。蘋果手機(jī)對(duì)蘋果公司來說是一個(gè)產(chǎn)品,它長(zhǎng)期持有這個(gè)產(chǎn)品的所有權(quán),并且不段的更新自己的產(chǎn)品。

            注2:本文中用到了 bug、缺陷、問題等三個(gè)詞語,用詞比較模糊,本文中表示為一個(gè)事物。

           分配(轉(zhuǎn)交)缺陷

            這一步不是必須的,跟項(xiàng)目模式有關(guān),有些公司測(cè)試部門與開發(fā)部門獨(dú)立,那么測(cè)試人員就不確定自己測(cè)試的模塊是由哪位開發(fā)人員負(fù)責(zé)的,在這種情況下,測(cè)試人員統(tǒng)一把問題指派給項(xiàng)目組長(zhǎng)或經(jīng)理,由項(xiàng)目組長(zhǎng)(或經(jīng)理)對(duì)問題進(jìn)行確認(rèn)后再次分配給相應(yīng)的開發(fā)人員。

            有些測(cè)試人員是穿插到不同研發(fā)團(tuán)隊(duì)中的,所以對(duì)不同的開人發(fā)員負(fù)責(zé)的開發(fā)模塊非常清楚,這個(gè)時(shí)候就可以將問題直接指派給相應(yīng)的開發(fā)人員。

            也有一種情況,本來此問題應(yīng)該由A開發(fā)人員負(fù)責(zé),但由于A開發(fā)人員的調(diào)離或辭職,些問題為轉(zhuǎn)交給其它人員處理。“分配”強(qiáng)調(diào)是上級(jí)對(duì)下級(jí);“轉(zhuǎn)交”強(qiáng)調(diào)的是平級(jí)之間。

            確認(rèn)缺陷

            當(dāng)開發(fā)人員接到一個(gè)缺陷時(shí),首先是對(duì)其進(jìn)行分析與重現(xiàn),如果對(duì)其進(jìn)行分析發(fā)現(xiàn)不是缺陷(可能由于測(cè)試人員不了解需求)或無法對(duì)此問題進(jìn)行重現(xiàn),那么就需要將此問題反回給測(cè)試人員,并注明原因。如果確認(rèn)為缺陷則需要對(duì)其進(jìn)行處理。

            推遲處理

            在處理問題之后,還需要進(jìn)行一次判斷,是否需要推遲處理,有些需求已經(jīng)確認(rèn)了是問題,由于其可能在極端情況下才會(huì)出現(xiàn),或需要對(duì)系統(tǒng)架構(gòu)進(jìn)行改動(dòng),或其優(yōu)先級(jí)非常低,所以暫時(shí)不需要對(duì)此問題進(jìn)行處理(或到下個(gè)版本進(jìn)再進(jìn)行修復(fù))。

            固定

            對(duì)于推遲處理的問題可以暫時(shí)進(jìn)行固定(“固定”為QC中的叫法。)一般固定的問題需要經(jīng)過項(xiàng)目經(jīng)理與測(cè)試經(jīng)理協(xié)商后才能固定。

            處理缺陷

            開發(fā)人員在確認(rèn)完一個(gè)問題需要處理時(shí),那么就對(duì)其進(jìn)行處理工作。(例如,redmine 是支持處理人時(shí)時(shí)更新問題處理進(jìn)度的,如 已處理30% ,已處理80% 等,當(dāng)然,對(duì)于短時(shí)間內(nèi)可以修復(fù)的問題就沒必要時(shí)時(shí)的去更新處理進(jìn)度。)

            回歸缺陷

            回歸缺陷對(duì)于測(cè)試人員來說是非常重要的工作,其有三個(gè)入口兩個(gè)出口。

            確認(rèn)非缺陷問題:對(duì)于提交的一個(gè)缺陷,開人員處理為非問題或無法重現(xiàn),然后直接轉(zhuǎn)交給測(cè)試人員回歸。測(cè)試人員再次確認(rèn),如果真如開發(fā)人員所說,則將問題關(guān)閉。如果非開發(fā)人員所說,是由于問題描述模糊或其它原因喂重現(xiàn)問題,則再次注明原因轉(zhuǎn)給開發(fā)人員。

            確認(rèn)修復(fù)問題:對(duì)開發(fā)人員修復(fù)的問題再次進(jìn)行確認(rèn),確認(rèn)能過,則關(guān)閉問題。確認(rèn)不通過,將問題再次打開并轉(zhuǎn)給開發(fā)人員。

            確認(rèn)固定問題:有計(jì)劃的對(duì)固定問題進(jìn)行確認(rèn),有些固定問題隨著時(shí)間的推移,版本的更新或已經(jīng)不存在了,對(duì)這類問題應(yīng)該及時(shí)關(guān)閉。有些固定問題依然存在且變得緊急,對(duì)于這類問題應(yīng)該及時(shí)打開交給開發(fā)人員處理。

            關(guān)閉缺陷

            對(duì)于已經(jīng)修復(fù)的缺陷進(jìn)行關(guān)閉,這也是一個(gè)缺陷的最后一個(gè)狀態(tài)。

            --------------------------------------------------------------------------------

            注1:文中提到了產(chǎn)品與項(xiàng)目,好多人分不清項(xiàng)目與產(chǎn)品,各自有各自的理解。我個(gè)人從用戶群上來劃分。如果面向的是特定客戶的需求,那么稱其為項(xiàng)目,如某醫(yī)院的醫(yī)療系統(tǒng),某公司的管理系統(tǒng)。面向大眾用戶且長(zhǎng)期運(yùn)營(yíng)的需求,稱為產(chǎn)品,如,某網(wǎng)站,某網(wǎng)絡(luò)游戲。

            如果小A讓我給他做一個(gè)網(wǎng)站呢?對(duì)于我來說,小A是我的客戶,這個(gè)網(wǎng)站對(duì)我來說就是一個(gè)項(xiàng)目,對(duì)于小A來說,他的網(wǎng)站是面向大眾用戶的,那么對(duì)于小A來說,網(wǎng)站就是自己的產(chǎn)品。

            富士康帶工蘋果手機(jī)是一樣的道理,富士康接到蘋果的訂單,那么對(duì)富士康來說是個(gè)項(xiàng)目,完成項(xiàng)目,拿到錢就算項(xiàng)目結(jié)束。蘋果手機(jī)對(duì)蘋果公司來說是一個(gè)產(chǎn)品,它長(zhǎng)期持有這個(gè)產(chǎn)品的所有權(quán),并且不段的更新自己的產(chǎn)品。

            注2:本文中用到了 bug、缺陷、問題等三個(gè)詞語,用詞比較模糊,本文中表示為一個(gè)事物。

          posted on 2012-12-07 10:30 順其自然EVO 閱讀(2130) 評(píng)論(0)  編輯  收藏 所屬分類: 管理方向

          <2012年12月>
          2526272829301
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 翁牛特旗| 德江县| 南阳市| 十堰市| 富源县| 兴文县| 阿克| 洞头县| 清苑县| 十堰市| 山东省| 临江市| 繁昌县| 海阳市| 吴忠市| 东丰县| 上虞市| 乌拉特前旗| 永修县| 鹤壁市| 蓬莱市| 特克斯县| 贵德县| 临江市| 来宾市| 从江县| 福鼎市| 昌宁县| 屯留县| 静海县| 营山县| 宁武县| 海盐县| 夹江县| 运城市| 伊金霍洛旗| 三亚市| 渭源县| 宝山区| 九江县| 东辽县|