1. 程式人生 > >從0到1的專案測試實踐(二)bug那些事

從0到1的專案測試實踐(二)bug那些事

一、前沿

           之前寫過部落格從0到1的專案測試實踐(一)介紹了從0到1專案從巨集觀上需要考慮的幾大方面。面對瘋狂增長式的專案迭代需求時,除了巨集觀上的幾大方向外,還需要考慮具體測試實施時,bug處理需要的策略與技巧。

二、從0到1的bug情況

         下面是立項半年左右的專案,每月累計bug的趨勢圖:

            與平穩發展、接近發展瓶頸的業務相比,一個月產生的bug數量(100+)或許比前者一年產生的bug還要多。這bug背後,反應了幾個方面的資訊:

  • 業務迭代速度十分瘋狂;
  • 業務迭代規模十分巨大;這包括業務新增的功能、受影響的業務
  • 開發人員/測試人員需要花較多時間來對接bug的修復/迴歸;
  • 測試難度相對較大。相比比較成熟的業務測試而言,此類專案除了需要關注原有功能100%正常外,還要確保新增功能100%正常,因而工作量幾乎是成熟業務工作量的2倍以上;
  • 自動化測試覆蓋廣度有限。 由於頻繁的業務變動,自動化的新建成本、維護成本加起來,很可能還不如手工來的高效和有效;
  • 由於無“前人”經驗可借鑑,為了維護業務的迭代速度和迭代質量,需要精準的抓住專案最核心的痛點。

         總體來說,由於新業務的快速增長、大規模迭代需要,以及無太多的前人經驗和成果可借鑑(ps:這也是成熟業務相對比較易掌控的原因之一了),因而,產生的bug也會伴隨著如下特點:

  • bug數量“空前”巨大;
  • bug的嚴重級別佔比較大;
  • bug的溝通難度相對較大;這裡的溝通難度是指,bug的復現可能需要較多的資訊,甚至需要多個開發共同來修復,因而需要詳細描述bug出現的整個路徑,甚至需要當面給開發們做演示;
  • bug修復需要多個開發人員共同修復的情況較多;
  • 需求類bug相對較多。這一方面源自新業務,可能需求規模/迭代速度導致需求本身考慮不太成熟和完善;另一方面,可能源自測試人員的產品思維積累了。實際專案中,需求類bug佔比15%+

三、bug的高效應對策略淺談

            應對bug的整個過程中,大致分為幾個階段:

  • bug的產生階段
  • bug的暴露階段
  • bug的修復階段

1、bug的產生階段

          此階段的主要目標是儘可能減少需求類問題、實現類問題。決定該階段的主要因素來自:

  • 整個團隊人員的專案經驗;
  • 需求層面對使用者真實需求、使用者體驗的準確把握;
  • 技術人員在實現需求時的經驗短板

         從QA人員的角度來說,可以從以下幾個方面著手:

  • 需求評審階段,弄清楚需求點的期望目標,與具體的功能點是否匹配;
  • 瞭解使用者需求,心理,使用者體驗需要;
  • 熟悉團隊其他成員的工作特點,找到彼此接收的合作模式

2、bug的暴露階段

     此階段的主要目標是儘可能採用多種手段,來充分的暴露bug,發現bug。除了大家都瞭解的需要QA人員的超強測試能力外,開發人員的專案經驗等,這裡由於應對的是新業務的測試需求,因而這裡想著重強調一下技術評審對bug暴露的重要性。

        技術評審,是指開發人員為了實現產品需求,將實現技術、邏輯考慮、異常考慮等方面資訊同步給團隊成員,特別是QA人員。此階段一方面開發人員之間可以互通有無,提前發現實現邏輯問題,另一方面測試人員可以針對性的涉及實現層面的測試場景。

         為了充分暴露需要測試的場景,QA人員可以從以下幾個方面著手:

  • 技術評審的形式。為了讓QA人員充分了解技術實現、原有功能受影響程度和範圍,建議和開發人員確認雙方時間、形式都接受的技術評審。切記:評審的目的是為了充分暴露需要測試的場景,而不是走形式,走過場
  • 技術評審的內容。具體內容建議從兩個方面進行:1)新增需求的實現邏輯;2)原有功能的受影響點
  • 給所有參與技術評審人員以效果資訊。 比如,通過技術評審,多得出了哪些測試場景,進而發現了多少bug, 提前規避了多少線上問題,甚至線上故障

3、bug的修復階段

         此階段的最主要目標是讓發現的bug及時通知到技術人員,並讓其快速修復。但面對眾多bug,到底該如何確定修復的先後順序呢?這裡從實際專案中,總結了以下幾點經驗:

  • bug的流轉模式。 這裡是說,有了bug後,特別是需要多個人員共同修復的bug,應該如何合作修復
  • bug的通知。這裡是說,嚴重級別、甚至阻塞測試的bug如何讓開發人員第一時間修復
  • bug的解決方案。 這裡是說,需求類、體驗類、互動類bug往往需要回溯到需求階段,來重新確定如何實現問題。這時,如何及時讓產品人員參與到問題修復中來

四、總結

          bug的意義在新業務的專案中,起到了舉足輕重的作用。或許在相對成熟、發展平穩的業務中,bug的修復意味著產品本身的完善,商業利益損失的避免,但在新業務中,bug的作用除此之外,更是推動了產品質量的提高。在新業務迭代前期,通過bug的不斷髮現、不斷修復,進一步確認了需求,推動了產品實現。

           因而,在整個產品質量控制中,質量的提高下降都可以通過bug來體現。那麼,具體應該從哪些方面來考慮測試場景,發現bug呢? 請移步下期部落格:從0到1的專案測試實踐(三)測試場景哪些事