分析了 3000 份 Bug 記錄,可以發現什麼?
- 2019 年 12 月 19 日
- 筆記

作者 | Dan Makarov
譯者 | 彎月,責編 | 郭芮
出品 | CSDN(ID:CSDNnews)
為了進一步了解軟體開發團隊處理bug的流程,我們隨機抽取了過去的兩個月中上傳到我們資料庫中的3000個bug記錄......
以下為譯文:
人們會在哪些時段報告bug?你可能從未認真想過這個問題,這就是我們想要探索這個問題的原因之一。第二個原因是我們手頭有合適的數據,因為我們的工具可以幫助團隊報告和修復bug。簡而言之,我們希望進一步了解軟體開發團隊處理bug的流程。為此,我們隨機抽取了過去的兩個月中上傳到我們的資料庫中的3000個bug記錄。
以下是我們的發現。
01
下午兩點是報告bug的黃金時段

看來,下午2點是報告bug的黃金時段。有趣的是,從早上9點開始,陸陸續續出現bug報告,一直到下午2點的時候達到最高峰。5點鐘的時候也有一個小高潮。很難確定為什麼會這樣。可能是因為有些人在一天的工作結束之前進行了一系列測試。那麼問題就來了:人們的工作時間是從幾點到幾點?
我曾經懷疑北美的軟體開發界甚至都沒有標準的工作時間。然而,事實證明並非如此。我們比較了常規時間段(早9點-晚5點)內上傳的bug記錄,以及其他時間段內上傳的bug記錄。

兩個時間段的比例幾乎相等,起初我們有些驚訝。從上一張圖(各個時段報告的bug數)看來,似乎常規工作時間內人們的活動更多。因此,我們完全沒想到會出現幾乎完美的50/50分布。然而,原因很簡單:因為早9點-晚5點僅為一天的1/3。因此,剩餘時間是常規時間段的兩倍,但是報告bug的速度卻僅為1/2。那麼問題來了:現如今產品團隊工作人員的工作時間是否更加靈活?還是說如今我們的工作時間更長,而且我們應該反省我們的工作習慣?
02
四分之一的bug報告發生在周二

我們以為周五和周末提交的bug報告會的於其他時間段。事實證明,我們的猜測是正確的。但我們沒想到的是,每周開頭兩天的活動量很高。而我們以為周一、周二、周三和周四之間沒有太大差異。
03
2/3的bug都是在預生產環境中報告的

根據Capers Jones在2009年進行的一項研究,85%的bug都已經在程式碼進入生產環境之前被發現了。如今也是這樣嗎?
在我們的樣本中,2/3的bug報告來自預生產環境(本地和暫存環境)。這個數字遠低於Capers Jones最初的研究。
其中一個原因可能是因為用戶組不同。Capers Jones主要關心軟體開發團隊,但我們的產品用戶不僅限於工程師、測試人員、項目經理和設計師。例如,我們發現客服團隊的活動有所增加。這意味著兩件事。首先,通常業務和運營崗位上的人不會使用暫存環境,所以他們只能報告生產環境中的bug。其次,他們報告的有些bug實際上並不是bug。即便是一個完全通曉產品的人也無法立即判斷出某個問題是否真的是bug。某些行為的起因可能是隱藏得很深的設置,也可能是由於廣告攔截器導致的,或者是連接問題等。
我們無法斷定,這種假設是否足以解釋預生產環境報告的bug數高出20%的現象。因為其中的因素有很多:公司規模、開發方法論(敏捷/瀑布)、品質保證流程、業務邏輯的複雜性,甚至公司如何定義bug等。
04
「Bug」是bug報告中最常見的詞

在此次的分析中,我們利用bug報告的標題創建了詞雲,並發現了最常見的主題。
這個結果與我們的預想非常接近。Bug、Error、Page、Test等都是最常見的詞。坦白說,我們沒想到"Collection"和"Date"會如此醒目,可能是由於我們的樣本數據所致。

接下來,我們刪除了頻率最高的7個單詞,以更好地理解其他詞語。如上所示,很明顯形容詞和動詞也顯現了出來。儘管如此,大多數單詞還是名詞。
我們發現了一件最有趣也最令人欣慰的事情:有些詞沒有在榜單上名列前茅。根據個人經驗,我們知道有時人們會以非常籠統的術語來描述bug,比如「根本跑不通」、「某某功能出了問題」等。為了避免這種現象,我們還特意建立了一個bug報告模板,幫助非技術人員更好地報告bug。然而,在我們的樣本中,這種行為很少見。
05
大多數bug報告都來自macOS

儘管macOS僅占普通市場的17%,但它仍然在bug報告中居榜首,這個作業系統下報告的bug甚至超過了Windows和Linux的總和。難道是因為macOS可以提高工作效率嗎?

最近兩個月里的使用大部分都來自舊版本的macOS(Mojave)。最近我們還看到Catalina上的活動增加了。
我們在Windows上看到的數據沒有那麼詳細。我們只能說,幾乎所有的bug記錄都來自Windows 10用戶。
06
Google可以向Chrome用戶提供最新的軟體

目前,我們的產品官方只支援Chrome,這就是為什麼我們沒有統計有關其他瀏覽器資訊的原因。但是,我們知道Chrome約佔我們網站流量的80%,其次是Firefox和Safari。
在我們的資料庫中,最早的bug報告來自兩個月前。同時,只有極少量的bug報告來自4個月前發布的Chrome版本。Google在確保用戶升級到最新版本方面的表現非常出色。
這種策略我們只能作為最佳實踐來推薦,因為這樣可以讓我們的調試工作更容易。此外,還可以確保我們的用戶基礎更為統一,這不僅對軟體開發團隊有積極的影響,而且對技術支援也有益。
07
最常見bug的bug報告
最後,我們決定利用手中的數據,建立一份最常見bug的bug報告。為此,我們結合了本文的資訊以及上圖中未包含的數字。
下面是今年秋季「最常見bug」的bug報告:
- 標題:Bug error. Test collection date issue。(註:來自文中詞雲圖的條目)
- 時間:星期二下午2點
- 環境:暫存
- 作業系統:macOS 10.14.6
- 設備供應商:Apple
- 瀏覽器:Chrome 77
- 螢幕尺寸:1920x1080
- 視窗尺寸:1920x798
- 語言環境:en-US
原文:
https://hackernoon.com/what-weve-learnt-from-3000-bug-reports-nxp3ohv
本文轉自 CSDN(ID:CSDNnews)

