成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

從Bug中學習--Bug根因分析法

linkin / 2345人閱讀

摘要:總結(jié)根因分析法是很有價值的,但并不是每一個都需要這樣刨根問底的分析,也沒有這樣的精力和時間允許我們這樣做。所以,在進行根因分析時,要以的價值作為選取標準。

一提起測試,大多數(shù)人很容易就會聯(lián)想到Bug。的確,測試的日常工作離不開Bug,測試工作很重要的一部分就是發(fā)現(xiàn)Bug。但是,發(fā)現(xiàn)Bug、解決Bug,就足夠了嗎?肯定不是的。

Bug是我們測試人員寶貴的財富,通過Bug我們可以獲得經(jīng)驗,這種經(jīng)驗又能用在以后的測試中,幫助我們更早、更快地找到同類的Bug。

Bug最大的價值不在于找到并解決它,而在于通過對Bug的分析,使我們增加一些經(jīng)驗、掌握一些規(guī)律,以便更好地進行測試。

在對Bug進行分析時,一般很容易能想到的問題有:

這個Bug是什么?

為什么會出現(xiàn)這個Bug?

實際上,如果做Bug分析,只做到這個層次,還遠遠不夠,上面只對Bug產(chǎn)生的原因進行分析,除此之外,還要更加注意:

Bug的發(fā)現(xiàn)階段

Bug的產(chǎn)生階段

在這方面,獨立顧問邰曉梅老師總結(jié)了一套方法,即T-RCA缺陷根因分析法(T-RCA,Test Root Cause Analysis),主要目的是基于缺陷的過程改進(開發(fā)的改進、測試的改進、組織的改進),通過問10個問題來對Bug進行根因分析,看似很簡單,實則重在引導(dǎo)和交流。

我在T-RCA的基礎(chǔ)上,結(jié)合自己的理解,認為分析Bug要分為四個步驟:

第一步,認識Bug

Bug是什么?(有什么影響?)

為什么會出現(xiàn)Bug?(什么場景下會出現(xiàn)?)

第二步,Bug的發(fā)現(xiàn)

在哪個階段發(fā)現(xiàn)的?

應(yīng)該在哪個階段發(fā)現(xiàn)?

為什么在這個階段沒有發(fā)現(xiàn)?

如何才能在這個階段發(fā)現(xiàn)?

第三步,Bug的產(chǎn)生

在哪個階段產(chǎn)生的?

為什么會在這個階段產(chǎn)生?

如何避免Bug的產(chǎn)生?

第四步,Bug的改進

如何改進,做到Bug預(yù)防?

下面來詳細說說。

1、認識Bug

在這一步驟中,要清晰全面地認識Bug,包括

通過問“這個Bug是什么”,來清楚描述這個Bug,包括向開發(fā)人員提Bug時也要用到這個描述

通過問“Bug有什么影響”,來判斷這個Bug需要修復(fù)的優(yōu)先級和影響的嚴重程度,對于優(yōu)先級高的Bug要盡快上線,對于嚴重程度高的Bug可通過T-RCA方法進行根因分析

通過問“為什么出現(xiàn)這個Bug”來快速找到原因,一般我們通過詢問開發(fā)人員或自己定位得到這個原因,并且這個原因大多是代碼層面的原因,要知道根因分析,不能止于代碼層面

通過問“什么場景下會出現(xiàn)”來復(fù)現(xiàn)Bug,并且最重要的是,可以反思自己在測試時是否遺漏了測試場景,測試覆蓋是否不夠

這一步可以說是測試人員的基礎(chǔ)能力,遇到Bug后我們自然而然就能想到的問題。對于大多數(shù)的Easy Bug,做到這一步也足夠了,畢竟我們的測試總是要在有限的時間和資源下做平衡,分析Bug也不例外。

Easy Bug,是指不需要精心的測試設(shè)計、不需要復(fù)雜的測試場景,就可以驗證出來,隨便找一個人來點點點,就可以發(fā)現(xiàn)的Bug。注意,驗證和測試是完全不同的兩個概念。但很可惜,大多數(shù)業(yè)務(wù)測試都是在做驗證,而不是在做測試。
2、Bug的發(fā)現(xiàn)

在這一步驟中,要著重對Bug的發(fā)現(xiàn)進行分析,根據(jù)盡早測試原則,Bug發(fā)現(xiàn)越早,修復(fù)的成本也就越低,所以分析Bug的發(fā)現(xiàn)過程,也十分有價值。

“Bug是在哪個階段發(fā)現(xiàn)的”,軟件研發(fā)的階段,不論是瀑布式開發(fā)、迭代式開發(fā),還是敏捷開發(fā),細分下來大體可以是需求定義階段、需求分析階段、開發(fā)設(shè)計/測試設(shè)計階段、開發(fā)編碼階段、聯(lián)調(diào)階段、 測試階段、改Bug回歸階段、預(yù)生產(chǎn)環(huán)境測試階段、部署上線階段、線上釋放階段等等,越晚發(fā)現(xiàn)的Bug,更應(yīng)該去反思為什么沒有更早地發(fā)現(xiàn)它

“Bug應(yīng)該在哪個階段發(fā)現(xiàn)”,較晚階段的Bug應(yīng)該盡早發(fā)現(xiàn),早期階段的Bug也不應(yīng)該遺留到較晚階段才發(fā)現(xiàn),大多數(shù)人會認為Bug就是應(yīng)該測試階段發(fā)現(xiàn)的,但是如果可以做到今早發(fā)現(xiàn),比如在需求分析階段就從測試的角度提出一些風險,那規(guī)避風險的成本就會小得多

“為什么在這個階段沒有發(fā)現(xiàn)”,對于線上Bug很容易理解,為什么這些Bug會被遺漏到線上,而不是在測試階段就發(fā)現(xiàn)呢?通過問這個問題,我們能很好地反思我們的測試,究竟是在測試設(shè)計的時候沒有考慮到這種場景,還是測試的時候巧合地漏掉了Bug,還是修改Bug時影響到了其他的業(yè)務(wù)邏輯而沒有回歸

“如何才能在這個階段發(fā)現(xiàn)?”,針對上面的問題,繼續(xù)刨根問底,我們的測試永遠有可以優(yōu)化的地方

3、Bug的產(chǎn)生

這一步驟中是對Bug的產(chǎn)生進行分析,之所以把產(chǎn)生放到了發(fā)現(xiàn)的后面,是因為我認為Bug的發(fā)現(xiàn)相比于Bug的產(chǎn)生來說更重要。作為測試人員,你對發(fā)現(xiàn)Bug的控制,要更強于產(chǎn)生Bug,也就是說,預(yù)防Bug是很難做到的,而盡早發(fā)現(xiàn)Bug,卻是我們都應(yīng)該做到的。

“在哪個階段產(chǎn)生的”,有人會認為,Bug都是開發(fā)寫出來的呀,自然就是開發(fā)階段產(chǎn)生的,這就陷入了一個誤區(qū),我們做根因分析,就不能這么粗放地想當然,開發(fā)也不是拿到一個需求后上來就寫代碼的,也是需要分析、設(shè)計、code、review等幾個階段的,不同的開發(fā)人員之間還要經(jīng)歷聯(lián)調(diào)階段,所以搞清楚Bug的產(chǎn)生階段,可以幫助我們更有針對性地注意在這個階段做一些事情,來及時發(fā)現(xiàn)Bug

“為什么會在這個階段產(chǎn)生”,如果這個Bug不是代碼Bug,而是開發(fā)從頭就把需求理解錯了,就要反思一下是不是我們需求細審時做得不夠,是產(chǎn)品講得不清楚, 還是測試沒有提出一些有價值的風險?其他階段如是,這也能幫助我們有針對性地改進

“如何避免Bug的產(chǎn)生”,其實有不少的Bug都是可以避免的,比如作為測試在需求階段從測試角度想到一些容易出Bug的風險或場景,作為開發(fā)在編碼之后的自測做得更好等等

4、Bug的改進

在這一步中要考慮的就是通過分析了Bug的根因,認識到了我們測試的不足之后,就要想辦法如何改進我們的測試過程,以幫助我們在以后的測試工作。比如是我們的需求階段沒有真正地理解需求,還是測試設(shè)計階段遺漏了一些測試場景,還是測試階段由于測試環(huán)境、測試數(shù)據(jù)等因素沒有發(fā)現(xiàn)Bug,還是Bug回歸階段沒有回歸其他收到影響的模塊等等。

5、總結(jié)

Bug根因分析法是很有價值的,但并不是每一個Bug都需要這樣刨根問底的分析,也沒有這樣的精力和時間允許我們這樣做。要選取那些有價值的Bug,分析完后真正能幫助我們思考和改進,比如我們公司,就會有分析線上Bug的這一環(huán)節(jié),是因為線上Bug畢竟是遺留到了線上,普遍會具有一些價值。

除了線上Bug,我們在測試中發(fā)現(xiàn)的Bug,如果比較有價值,能帶給我們經(jīng)驗的提升,也是應(yīng)該做根因分析的。所以,在進行Bug根因分析時,要以Bug的價值作為選取標準

作為測試人員,一直是在有限的時間和資源下進行平衡,不存在零Bug的軟件,測試也是無窮無盡的,所以平衡資源一直是測試人員應(yīng)該掌握的技巧,分析Bug也不例外,我們的最終目的不在于把Bug根因分析流程化,比如迭代開發(fā)中每個迭代都做一次,作為工作流程中的一環(huán),而在于從Bug中進行反思、總結(jié)、學習、改進,以便更好地改進我們以后的測試工作。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/8848.html

相關(guān)文章

  • 編程小技巧

    摘要:最近比較忙,總結(jié)了一下,從書上和實際工程中學習到的一些小技巧,或者說是習慣命名規(guī)范命名最好遵循駝峰法和下劃線法,并且要清楚的表達變量的意思。 最近比較忙,總結(jié)了一下,從書上和實際工程中學習到的一些小技巧,或者說是習慣 1 命名規(guī)范 命名最好遵循駝峰法和下劃線法,并且要清楚的表達變量的意思。 相對于駝峰法而言,我更喜歡下劃線法。下劃線法可以更清楚的看出這個變量表示的意思。比如aBigGr...

    tianren124 評論0 收藏0
  • 編程小技巧

    摘要:最近比較忙,總結(jié)了一下,從書上和實際工程中學習到的一些小技巧,或者說是習慣命名規(guī)范命名最好遵循駝峰法和下劃線法,并且要清楚的表達變量的意思。 最近比較忙,總結(jié)了一下,從書上和實際工程中學習到的一些小技巧,或者說是習慣 1 命名規(guī)范 命名最好遵循駝峰法和下劃線法,并且要清楚的表達變量的意思。 相對于駝峰法而言,我更喜歡下劃線法。下劃線法可以更清楚的看出這個變量表示的意思。比如aBigGr...

    Jenny_Tong 評論0 收藏0
  • 一個JAVA開發(fā)一年的總結(jié)

    摘要:前言到今天為止,正好是工作一年了。一年里有過折磨痛苦,有過成就感,一年后很欣慰能看到自己是有所收獲的。自己做出了一件很棒的事情完全可以拿去和別人炫耀,比如你用了一個很好的設(shè)計模式,比如你優(yōu)化了一個功能讓他快了倍,比如你開發(fā)了一個很棒的工具。 前言 到今天為止,正好是工作一年了。一年里有過折磨痛苦,有過成就感,一年后很欣慰能看到自己是有所收獲的。記錄如下,如有不當,還望指點。 技術(shù) 看...

    Reducto 評論0 收藏0
  • 代碼之髓讀后感——如何高效的學語言

    摘要:代碼之髓讀后感如何高效的學習語言技術(shù)讀后感王垠如何掌握程序語言代碼之髓這本書里提出了三種學習語言的方法如何高效的學習語言在比較中學習在歷史中學習在實踐中學習在比較中學習通過比較多種語言,總結(jié)出某種語言的獨有特點,以及多種語言的共有特點。 title: 代碼之髓讀后感——如何高效的學習語言date: 2017-07-08 17:17:00categories: 技術(shù)tags: 讀后感 ...

    ivyzhang 評論0 收藏0
  • Timer中學優(yōu)先隊列的實現(xiàn)

    摘要:從中學習優(yōu)先隊列的實現(xiàn)是定時器的實現(xiàn),用來調(diào)度定時執(zhí)行的任務(wù)和執(zhí)行一次的任務(wù),就像的和的意思,它也可以作為后臺程序運行。通過和的方法可以保證整個優(yōu)先隊列的關(guān)系,保證的是最小的。作用是構(gòu)建堆,可以從的數(shù)組構(gòu)建堆,來表示優(yōu)先隊列。 從Timer中學習優(yōu)先隊列的實現(xiàn) Timer是Java定時器的實現(xiàn),用來調(diào)度定時執(zhí)行的任務(wù)和執(zhí)行一次的任務(wù),就像JavaScript的setInterval和s...

    anquan 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<