我們需要測試人員嗎?
先說一個故事。
接手一個小項目,是因為之前的項目經理被調走了。當時跟我介紹項目情況的時候,這牛人項目經理說,項目完全沒問題,功能就那么一點點,很容易搞定的。我隨口問了一句,有測試人員嗎?答曰,這么簡單的小項目,還需要測試人員嗎?我茫然。
這牛人于是就介紹完了,把這個當時運行很流暢的項目組交給我。每個人都把客戶需要的功能做出來了,也已經拼接好了,好像我接手就是來拿做好的成果一樣。
忘了介紹這牛人了。這牛人為什么叫牛人,是因為特能加班。每每在項目交貨的時候,跟客戶耗上那么幾個通宵。并且,還帶著整個項目組去耗。我自認沒有他那么牛。
接手項目,并不是馬上就插手亂指揮,這是我的原則。但是還有2周就要交付了,我也沒有太多時間去慢慢了解項目。于是,在項目的第二天,我就去找部門要測試人員了。問我理由,答曰,沒有理由,就是要2個測試人員。
很容易的就要到了兩個PLMM??粗鳰M我就心里舒坦。而且兩個MM之前還沒測過手機項目。沒關系,有測試就行。
熟悉了一天之后,PLMM們第二天就發現了一個很簡單的BUG。簡單的說,就是ListView的數據,在一些操作之后,就亂套了。本以為很簡單的BUG,也就沒多問了。
第三天,項目組成員們很緊張的忙著。第四天,還在忙。我有點坐不住了,去看了一圈代碼,感覺有點暈乎。再看,猛然發現,這些代碼的數據結構就不對,需要重做!
我的乖乖啊。這是神馬啊。如果我放任這情況下去,在項目交貨的時候,我也要被逼做牛人了啊!
還好測試人員進入的早,這BUG帶來的影響,在重構代碼后,終于平息下來。我們在交付的時候,沒有為業務邏輯而通宵。當然,客戶的硬件和框架著實讓我們牛了一回。我們只是晚上在等客戶解決問題的時候,打打牌而已,沒有被客戶追著改BUG。
故事說完了。“故”表示已經發生,“事”表示有這么一個經過。
我不禁要問,難道有那么多人,認為手機項目,就真的不要測試了嗎?
傳統業務領域,測試人員的重要性已經被大家所接受。我在做項目經理的時候,一般是偏袒測試的,因為我對他們的支持,他們才可以放心的發表不同的意見,才能把問題盡早的暴露出來。當然,也因為我的支持,測試人員經常犯錯,把一些正確的當作不對的。不過,我寧愿測試人員犯錯,也不希望BUG和問題隱藏到最后,到最后客戶發現了,那就非要“牛”不可了。
測試人員 ,在傳統業務領域,做的幾個驗證工作,可以用一個V字模型來說明。
1, 單元測試,是對編碼的驗證,保證編碼無誤,也就是保證某個單元(可以是頁面,可以是某個流程等等)被正確的編碼。
2, 結合測試,是對詳細設計的驗證,保證各個單元串起來之后,能夠完成基本的業務流轉。
3, 功能測試,是對功能設計的驗證,保證系統的各個大功能得以正常流轉。
4, 用戶體驗,是對需求分析的驗證,保證系統就是用戶想要的東西。
左邊的開發流程,在手機項目中,因為項目的短平快,導致了很多缺失。簡單的和客戶溝通之后,客戶可能只是給了一個大致的描述,幾張效果圖。開發組立即就對這些客戶給的資料進行設計,這個設計就把功能設計、框架設計、詳細設計、程序設計等等都包括了進去。以至于,只有開發人員才知道客戶的需求。
在這種情況下,整個項目組對測試人員是排斥的。而且測試人員對項目組也是排斥的。測試人員拿不到測試的依據和準繩,對測試無從下手。開發人員不愿意再去復述客戶的需求,也不愿意再去整理各種設計,因為他們覺得代碼就是一切,設計都是為了代碼而做的?,F在代碼已經有了,還要再去整理設計干什么。
因為手機不如PC的屏幕大,所以很多人認為手機操作比PC程序簡單,邏輯也相對簡單,所以沒必要加入測試人員。開發人員自己跑跑就行了。
以上的各種理由,都造成了短平快的Android項目排斥測試人員。甚至大型的Android項目也對測試不重視,認為有就行了,比沒有好。
我在項目做完之后,認真的思考了測試人員在Android項目中,可以并且應該起到的作用。
1. 用戶需求的理解
現在講究的是用戶體驗。對于開發人員來說,天生的自信往往讓他們以技術的角度去想問題。技術越牛,往往越會有這種傾向:這個技術多先進啊,用上去之后肯定是好東西。慢著,技術先進就是用戶的需求嗎?所以,我們需要測試人員去理解用戶需求,真正把握用戶希望要的東西。因為測試人員的獨立性,他們不會被技術細節所蒙蔽。
2. 系統的整理操作流程
手機因為屏幕小,操作少,所以操作流程往往被忽視。其實,手機程序一點不比PC程序簡單。大量的關聯操作,將極大的考驗我們程序的健壯性??梢赃@么說,相對PC程序,手機程序的大段的邏輯不多,但是邏輯分支卻比PC程序更多。也就是說,手機程序有更多的路徑需要覆蓋。
這些操作流程,在缺少設計的情況下,由測試人員來整理,肯定比開發人員整理要專業。測試人員可以只憑用戶的一些簡單信息,例如客戶給的效果圖、客戶口述等,就把一份大而全的Case分支給整理出來。當然有些是無法走到的,那個不會有太多影響,最多浪費點驗證和思考的時間,但是不會把一些細小的分支給漏了。
手機程序必須比PC程序健壯。手機程序會經受用戶的各種操作,正常的和異常的。畢竟手里拿著手機,很可能突然朋友嚇一跳,就不小心按到了某個鍵。所以說,縝密的操作流程,需要測試人員來整理。
3. 細致的回歸測試
為什么我跳過測試,直接就說回歸測試呢?因為測試工作本身,不值得一提。那是測試人員的基本工作,就像開發人員寫if - else 一樣。而且,很多人都認為,手機測試,開發人員互相測試也是可以的。但是回歸測試不同。開發人員沒有大量的時間去做測試。哪怕有這個時間,開發人員也不會有足夠的耐心去走回頭路。放心,我們的測試人員有,他們耐心細致的工作,會告訴那些不小心犯錯的開發人員,你們要當心了……