優秀的測試工程師如何進行需求分析?

好的測試工程師,需要有測試的思維方式。

測試分析和設計能力,就是這種思維方式最好的體現。

接觸過測試的人都應該清楚「測試需求分析」的重要性。就好比是建樓的地基,地基不牢,再好、再高的大樓都可能在頃刻間崩塌。

那麼如何科學的進行測試需求分析呢?BAT乃至Facebook等國外的先進互聯網公司的頂尖測試工程師又是如何進行需求分析呢?我們常規的需求分析又有哪些不足呢?今天利用上班時間好好和大家一起聊一聊測試需求分析的那些事兒。

  • 軟體測試的生命周期

在討論測試需求分析之前,我想跟大家明確一下軟體測試的生命周期。很多朋友對整個測試過程的周期不甚了解,導致測試工作混亂不堪,名有明確的思路。這樣是無論如何都不能做好軟體測試工作的。

測試需求分析:從產品需求挖掘出我們需要的測試需求

測試設計:根據測試需求,設計測試方案和測試用例

制定測試計劃:根據項目實際安排人員周期

執行測試:依照測試計劃,執行測試用例

質量評估:提交Bug,提交測試報告

  • 為什麼要做測試需求分析?

舉一個現實生活中大家經常用到的例子。生活中可能經常有人這麼問你:我想買台電腦,有什麼推薦么?那麼我們是不是需要問這麼幾個問題:買來幹嘛的?台式機還是筆記本?你預算多少啊?對系統有啥要求么?

只有這些問題我們都明確了之後,我們才能夠幫忙去推薦。也就是說,通過這些問題,我們才能了解對方的需求。同樣,我們做測試工作,產品需求並不等於測試需求,如果沒有測試需求分析,就會導致我們對產品了解不完整、不準確,對產品的測試也會不透徹。所以,測試需求分析是必不可少的環節。

  • 如何進行測試需求分析呢?

分析任何一個事物,我們都需要一個分析對象,同樣測試需求分析首先要有一個分析對象。作為測試需求分析的對象,一般有這麼幾種形式:產品需求文檔、交互稿、技術文檔、會議紀要等其他參考資料。根據這些資料文檔,我們從測試的角度進行分析。

  • 在測試需求分析的過程中我們需要用到一些思維導圖的工具,幫助我們從廣度和深度更加直觀的去分析需求。他可以把我們整個的思考過程層次化、結構化的表達出來。

思維導圖的工具有很多,在這裡主要跟大家分享、比較下北月用過的幾個,孰優孰劣,大家自己去判斷。

分析結果也有多種的表現形式,以最開始買電腦的故事為例,可以變現為:

將這些確定的條件合起來,我們就可以得到買電腦的需求。

  • 測試需求分析的類型(從廣度上分析)

測試需求分析的類型其實大家也再熟悉不過,大家可以參考清流的文章"這樣考慮測試點,做個合格的測試工程師",在這裡北月不多說。

  • 舉個栗子

接下來我們以「網易雲課堂」的一個小功能為例,從功能、性能、兼容性方面簡單的實現測試需求分析。下圖是網易雲課堂一個功能的交互稿:

那麼測試需求是什麼呢?

首先我們先考慮功能測試測試點:需要分析用戶參加課程的行為,可能會出現哪幾種情況?用戶是否登錄?參加課程是否成功?參加課程失敗的原因可能是什麼?

在這裡需要注意,在需求文檔、交互稿里沒有明確的情況需要我們測試人員發散思維去考慮到而不是因為需求文檔沒有明確而不考慮。

其次我們考慮性能測試需求。一般性能測試的需求不會明確表示在需求文檔和交互稿裡面,需要我們去和產品、開發溝通,依靠我們的經驗去明確。比如說,上萬用戶同時參加某個課程,是不是會出現有人無法參加課程的情況?程序響應速度會不會變慢?會對伺服器產生哪些影響?因此性能測試需求,我們要對大量用戶同時參加課程進行測試;那麼我們想到,參加課程需要用戶提前登陸,因此我們還要對大量用戶同時登陸進行測試。

接下來是兼容性。我們知道目前市面上的手機有很多品牌,但手機系統主要分為Android和IOS,還有少部分的windows;PC系統主要有windows、mac和Linux;瀏覽器主要有火狐、谷歌、IE等。

我們首先要確認,我們的系統目標是要支持那些系統?哪些平台?哪些瀏覽器?然後根據系統目標去考慮兼容性的測試內容。

現在,對於測試需求分析,大家有沒有大概的了解呢?下一篇文章,我會重點分享功能測試需求分析的方法以及功能測試需求分析對測試工作的幫助。如果有疑問的同學,歡迎關注專欄「軟體測試的藝術」,發消息給我或者添加QQ群和大家一起討論(573690045)。斯是陋室,惟吾德馨,我們還不完善,但是我們的內容都是純乾貨,希望大家能夠有所收穫。

最後,如果您覺得我的專欄對您有所幫助,那麼煩請您幫忙關注並分享出去,希望這篇文章實現她的價值~!!!

推薦閱讀:

想轉行軟體測試,在考慮是否報培訓班,聽到有人說HR一看到簡歷上發現有培訓班出來的直接pass?求回答?
一個好的軟體測試工程師到底需要什麼技術?
兩年測試之路,總結自己,認識自己,路在何方呢?
學習軟體測試有哪些推薦的網站,希望各位知友幫助?
轉行做軟體測試前景怎麼樣?

TAG:软件测试工程师 | 测试 | 软件测试 |