在經歷過的創業公司中,我經常看到下面這些情況:
何為事多?就是有一些產品和開發看來沒必要提的bug,但仍然被測試提了。
什麼樣的bug是沒必要提的bug,這裡面恐怕頗多爭議,我們來舉幾個例子:
bug1:如果老師沒有使用授課系統上課,但是布置了作業,進入到檢視作業頁面時,就會報錯「出錯了,查詢作業失敗」(產品的設計是學生只能看到最後一次上課時間至7天後布置的作業,如果老師沒有使用授課系統上課,就不會產生上課記錄,會導致介面在獲取上課時間時出現異常)
產品的解釋是,不是bug,設計如此,會告知老師必須用授課系統上課,不會出現沒有用系統上課,卻在系統內布置作業的情況
bug2:介面在缺少任意乙個必要引數時,仍返回200,但是響應內空為空(期望返回400或在響應體中包含報錯資訊)
bug3:線上預覽ppt時,偶爾會出現「唉呀,系統崩潰了」
原因:三方原因,呼叫三方介面超時或正好三方系統公升級時,會出現這種情況
這些都是我在工作過程中接觸到的真實案例,總結下來就是這幾種型別的bug容易引起爭議:
設計如此(by design)
不予修復(won't fix)
推遲處理(postpone)
外部原因(external)
那麼這些bug究竟有沒有必要提呢?肯定是仁者見仁,智者見智。我的意見是,有必要提,應該提。說一下我的見解:
首先不予修復和推遲處理要分區別下,不予修復,意思是大家都承認是bug,但是不用修復,和推遲處理的區別是,這種bug被認為影響輕微,現在不修,將來也不會修,而推遲處理的意思是雖然本版中不修,但將來還是要拿出來修的。這兩種我認為都是需要提的,雖然都不會在本版中修復,但他們確實是bug,是可以反映產品質量的資料。
再說外部原因造成的bug,開發也許會說,三方的bug,提了我們也沒法處理,提給我們沒有用,要提應該提給三方。我的理解是,這仍然是我們產品潛在的薄弱點,既然被測試發現了,就代表使用者也有可能遇到,首先,有bug記錄代表我們知道這種情況可能會發生,然後我們可以針對這種情況採取一些防禦措施,這類bug的解決方案不一定非得是持續跟進直到三方將其修復才算解決,提出並實施應對方案,也是解決方案之一,如與三方協商不要在使用者使用高峰時段公升級系統,一旦遇到時採取更友好的提示等。
最後說一下「設計如此」,資深一點的測試也許會說,定義為「設計如此」的bug明顯是無效bug了,為什麼還有必要提呢?我在長時間內也認為設計如此的bug是無效bug,代表測試沒有認真閱讀並理解需求,或者說沒有參與到對需求的測試中去。但是在經歷了數家小公司之後,我改變了這種想法,我不能再以微軟這樣大公司的規章制度,來衡量和應對小公司,因為小公司往往沒有完善的需求評審制度和流程,所以需求本身往往是有問題的,如果你認為產品經理都這麼說了,就不再提出來的話,那麼你就放棄了代表使用者說話機會,而這些遲早會從使用者會從嘴裡說出來的,到那個時候...上面第乙個例子的結果就是很好的說明,後來產品上線後,果真有學生反饋說收不到老師布置的作業,產品各種著急的催促,開發各種檢查**,檢視系統日誌,各種原因都排查過了,結果就是因為老師是第一次用,沒有在系統上上課,直接布置的作業。雖然最終原因找到了,但是這次事故給客戶造成的影響卻無法評估。記住,永遠站在使用者的角度,而不是產品經理的角度去考慮問題,這也是我們做為測試的價值。說到這裡,出現設計如此的bug,其實有兩種原因,一種是測試沒有仔細閱讀需求,一種是產品沒有設計好,那麼記錄這此bug的價值就是可以反應需求的狀態,然後據些做出一些改善,如果大都是測試未理解需求導致的,那就要加強對測試的培訓,並針對性的改進流程,如需求評審是否讓測試也參與其中的了?如果大都是產品設計有問題,那麼就要加強對產品經理的培訓,送產品到一線去體驗使用者真實使用場景,增加需求評審環節等措施。
總結一下,明知bug不會被修復,還是要提原因:
為什麼開發和產品經理會不耐煩?覺得沒必要提呢?這裡我也分析下
關於bug的狀態以及該如何處理,請參考我的另一篇博文:
引申思考:為什麼測試可有可無?
最開始的研發團隊,是沒有測試的,嚴格意義上來說,是沒有專職的測試的。隨著團隊的成長,軟體複雜度的提公升,當他們覺得產品問題太多的時候,或者投入一部分研發的精力去做測試不划算時,他們覺得需要乙個測試。而在當產品沒什麼問題的時間裡,相當一部分人,甚至測試自己,也會懷疑自己的價值,測試就變成了那個多餘的,事多的人了。
在國內的創業公司中,普遍存在著對測試的不重視,甚至是不尊重。原因就是他們這種可有可無的地位。
一聲唉嘆,在小公司測試確實是可有可無。
sys exit 也可能不會退出程式
程式設計就是折騰,這兩天把我折騰壞了。原以為 sys.exit 函式只要執行一定會退出整個程式的,卻發現 sys.exit 並不保證一定退出程式。大概是乙個這樣的程式 原本的意圖是發生了預定的狀態則退出程式,但是程式執行了 sys.exit 後卻沒有正常退出,而是僅退出了 t.run,卻繼續執行 m...
那些你可能不會注意的C 細節
2.c 中更強調語言的 靈活性 變數什麼時候需要什麼時候定義。1.register關鍵字,請求編譯器讓變數a直接放在暫存器裡面,速度快。2.c 可以取暫存器變數的位址,而c不能。3.register 關鍵字請求 編譯器 將區域性變數儲存於暫存器中。4.c 編譯器發現程式需要取暫存器變數位址時,reg...
梅耶爾稱公司可能不會再裁員了 至少暫時不會
雅虎剛剛公布了其員工資料,現在雅虎員工總數為8800人,與去年同期相比減少了2100人。這跟雅虎在2月份宣布的裁員計畫有很大關係。此次裁員的規模定在1600人左右,佔員工總數的15 裁員計畫預計在年底前完成。梅耶爾周一稱,目前這項裁員計畫尚未完成,但是等裁員計畫完成的時候,公司的員工規模將與當前的業...