1. 程式人生 > >測試-專案流程

測試-專案流程

認知

剛到公司的時候,看著專案流程,感覺為啥要這麼麻煩。專案流程中要關注的點太多了,能記下這麼多環節就已經不錯了,還要按照這個流程執行,著實有些困難。

但是當你工作一段時間後,你就會發現專案流程的重要性,因為專案流程就是你的套路,沒有套路是工作中很可怕的一件事情;有了套路你可以避免很多共性的錯誤。套路即是你工作經驗的總結。

在你缺少經驗的時候專案流程可以使你避免犯錯,在你經驗豐富的時候還要通過你的經驗去完善你的專案流程,更多地去避免犯錯。專案流程不是一成不變的,是根據工作情況逐漸完善的。

以上說的總結兩點,一是專案流程的意義,二是專案流程是需要不斷完善的。

幾個階段

流程中到底要分幾個階段,這個不是我們靠腦子憑空想的,回到第一節講的,是我們工作中根據實際情況逐漸完善的。那麼我們就要想一下,我們在工作中都有哪些階段。

首先我們要有一個需求,有了需求我們就要把它變成程式,並且驗證它是我們想要的,最後給使用者去使用,釋出後我們還要一個反饋。這就是一個完整的需求上線流程。我們將上面的流程抽象為幾個大的流程。

  1. 需求階段
  2. 設計開發
  3. 測試
  4. 釋出
  5. 釋出後

需求階段

一個需求也有它自己的生命週期,從產生到決定開發,這個階段就是我們在需求階段所要關注的東西。除此之外我們需要圍繞需求做一些輔助效率的事情,例如講一個群溝通,確認一下上下游業務,確認一下系統結構

需求階段主要有以下幾個關注點

  1. 需求評審
  2. 業務確認
  3. 溝通群
  4. 系統結構確認
  5. 許可權確認

需求產生的幾個途徑

首先一個需求又會由哪些方式產生呢?對於我所在的機票行業來說,主要有航司的規定、運營流程的改進、運營資料的支撐和由bug帶來的業務認知。對於其他行業來說,更多的是產品們的頭腦風暴產生的。

  1. 航司的規定:這個是行業的標準。
  2. 運營流程的改進:根據現有流程分析,提高效率的需求。
  3. 運營資料的支撐:根據自己的推測,上線部分功能,產品逐步迭代。
  4. 由bug帶來的業務認知:因為許多行業標準我們不瞭解,bad case就是我們最好的老師。

需求review與finally review

當一個需求由產品提出,我們就要對這個需求進行評估,評估它的價值。沒有價值的需求我們沒有必要去做它。由於Qunar給了每個人許多權力,需求是否通過是參與需求評審三方(PM、DEV、QA,主要是各組的負責人)共同決定的,任何一方提出異議,需求都不會通過。當我們需求評審通過後,老大們會進行一個最終評審,決定是否去做這個需求。在需求階段就要有需求review和需求finally review。

業務確認

在做一個需求的同時我們要考慮的不僅僅要關注當前需求,在整個業務線,你的需求處於哪個環節?是否與現有業務具有衝突?你評審需求的根據也是從已有業務觸發。所有你要兩部分,即當前需求和上下游業務。

當前需求你要關注:業務是什麼?要解決什麼問題?
上下游業務你要關注:整體業務是什麼?你的業務處於哪一環節?

系統結構確認

對於Qunar的QA來說,我們在測試中要關注程式碼,進行code diff,在確認業務之後,我們要了解相關的系統結構,與業務結合起來,瞭解功能與程式碼的對應關係,測試中可以方便查詢關鍵日誌、快速定位問題。

溝通群

當我們計劃開始做這個需求了,我們要開始召集人馬了,就要使用溝通工具,去幫助我們溝通,Qunar內部使用的是qtalk,也可以用QQ、微信等。這個階段我們就要拉個群,三方及其TL,還有各位大佬們。出現問題,儘量在群裡溝通,讓關注此專案的人都可以第一時間瞭解專案的進度。

許可權確認

開發的程式碼、測試環境、是否有釋出許可權(Qunar是QA釋出,需要申請每個工程的許可權),這些許可權最好提前確認好,避免在用的時候,才發現沒有許可權,這樣會浪費許多時間。

設計開發

為什麼這個階段叫設計開發,不是單純的開發階段?

因為這個階段除了我們的DEV在瘋狂的編碼中,QA也在發揮自己的價值,提供一些測試點,PM也沒有閒著,在Qunar case是由產品寫的,這一點是網際網路公司中獨一無二的。

那麼這個階段,我們的流程就要分開去說明,按照每個職責劃分。

QA

瞭解設計

QA需要提前瞭解開發是如何設計的,因為不同的技術方案對我們的測試影響很大,不同的技術方案可能會有不同的測試方案。

checklist

checklist作為評估需求測試點的工具,是評判一個QA水平最基本的技能,QA需要將需求的所有測試點都列出來,作為本次測試工作的指導依據。在這個階段QA需要提供本次需求的checklist,並且儘量要早地提供出來。

進度把控

QA是對質量負責,專案是否能如期上線,也是QA的主要職責,在這裡我們需要每天關注需求的進度,是否有提測delay風險。一般以早晨站會的形式,關注所有對應開發組的專案進度。

DEV

code

編碼是開發的主要職責,在開始前,需要與需求review的同學或者Tl進行技術方案的確認,這個一定要做,不要到了code review階段才發現與最初的設想不同,可能導致需求delay。

code review

為了在開發階段就發現設計的問題,避免到了測試階段才發現,所有code review要儘早,並且更多地指出設計模式等問題。

提交測試申請

開發在code及code review後就會移交給QA,進入到測試階段。這個階段我們還要做一些事情,那就是要滿足我們的提測標準,這個標準對需求質量控制的重要手段。

PM

case

即測試用例,Qunar的產品要根據checklist寫case,case會作為我們提測驗收的標準。

專案進度郵件

專案從開始到結束,產品都應該每天傳送專案進度郵件,講進度及時周知出來。

三方共同

checklist review

checklist需要進行三方review,檢驗我們的checklist是否有遺漏。這裡一定要三方進行,避免資訊不對等。

case review

case同樣需要進行三方review,並且case在review後作為我們的要收標準,在提測質量保證中起到重要作用。一旦case被開發執行且通過,在測試階段出現過多,可以根據標準進行質量通報。

checklist&case在review中經常因為時間等原因,合併為一次進行,對於小的專案來說,這是可以的,但是對於比較的專案,還是建議分開進行。

checklist&case在review後我們還要根據review的結果修改或者補充。

需求變更

在開發中發現需求本身存在缺陷,三方均可提出,並且評估風險,是否需要進行需求變更,DEV和QA需要給出需求變更所帶來的工時變化,由產品同學以郵件的形式周知出來。