如何打造一個理想的測試團隊
一、確認好團隊的目標(即該團隊未來2-3年或者更長時間內期望發展成什麼樣)
測試團隊的核心任務應該就是保證自己負責項目的質量,並且通過不斷的改進來縮短項目的周期吧!
我們可以先想像下2-3年後,期望整個團隊的測試模式是怎樣的?(更多精彩內容請戳:如何構建高效軟體開發流程和團隊-上篇)
比如:一個新的版本開始後(這裡指增量版本),我們確認該版本的測試模式是
1、新增模塊在版本前期就開始研究測試方法(比如:單元測試、介面測試、自動化測試等),並且能夠讓開發配合提供一些支持。通過這種方式能夠覆蓋到70%以上的測試點。然後再通過對該模塊以及對整個系統的把握,準確的分析出那些可能還是有風險的,並且進行探索性測試和整體場景的測試
2、關聯模塊的測試點分析出來後能夠很快的實現自動化
3、老模塊已經全部實現自動化了
4、測試人員發現的問題基本上都能夠自己定位,甚至能夠指導研發進行修改。
研發修改後能夠準確的分析出可能有影響的地方,並補充測試
達到這樣的程度(或者達到這樣程度的80%以上),相信對於版本的快速迭代以及質量都是很有幫助的,而且對於測試團隊以及測試人員的成長來說,也是比較好的。
那麼,怎樣才能夠達到這樣的程度呢?(更多精彩內容請戳:如何構建高效軟體開發流程和團隊-下篇)
1、整個團隊自動化的程度非常高,只要是老模塊全部實現自動化了
2、整個團隊對於產品內部業務邏輯非常清楚,甚至達到研發的程度(不用到代碼的每行),能夠對研發的設計提出有效的意見,並能夠指導研發進行設計
3、整個團隊成員的質量意識非常高,會有應該是自己發現的bug結果沒有發現感到羞愧的思想
4、整個團隊具備前期測試和缺陷預防的能力,能夠更開發一起配合在前期就做好相關工作,比如:前期的缺陷預防,測試方法研究等等!
達到這樣的程度後,整個團隊至少有部分人應該具備如下技術能力
1、自動化開發能力:這樣的人員越多越好(至少要有1/3以上),這樣能夠讓自動化成為一種常用的改進技術,讓自動化成為一種習慣
2、業務能力:對於產品的內部實現和整個業務邏輯都非常熟悉,能夠有效的指導該模塊的設計,並且發現該模塊的問題能夠自己定位。至少每個模塊都找得到這樣的人
3、單元測試和介面測試能力:能夠在前期通過對代碼或者借口進行測試,盡量在前期就能夠保證質量(需要學習相關的開發語言)
4、對於產品的理解比較深,能夠有效的指導產品後面的改進方向
5、項目管理能力,對於一個不大的團隊來說有2-3個差不多了
二、挑選合適的人員
理想的測試人員應該具備如下幾個特點:
1、有激情:這是傑克韋爾奇最認可的一點,筆者深有同感,相信對生活有激情的人,對工作也同樣有激情
2、喜歡測試:有探索未知世界的好奇心,能夠在測試中找到成就感。
3、熱愛技術並且有一定的技術能力:老實說,測試入門是技術門檻相對比較淺的,但是真的要做到很好程度確實需要比較好的技術,比如:上面的幾點,都是有一定的技術門檻的,只有熱愛技術的人才會願意去主動去深入學習技術
三、如何實現目標
1、團隊的文化和制度:所謂無規矩不成方圓,如果一個團隊要健康的發展,團隊的文化和制度是非常重要的。當然,我們團隊的文化和制度也是為了更好的實現我們的目標而服務的,比如:我們期望大家主動去學習模塊的原理知識,那麼我們就可以形成這樣的文化和制度。並且有了制度後一定要堅決的去執行(但是可以更加的人性化),然後根據大家的意見去不斷的完善制度和管理。沒有制度的話很難保證團隊的執行力,那樣目標也很難實現,所以,這個非常重要,也是一個初入管理者很容易出現的問題
2、業務熟悉:對於早期來說,我們的直接學習對象肯定是開發,學習的資料大概就是需求文檔和設計文檔,這個時候可以讓測試人員每個人負責一個模塊,先去學習設計文檔,並且要求測試人員自己能夠畫出該模塊的整個業務邏輯圖,並且跟研發確認是ok的(要求內部培訓和講解,並請研發過來旁聽)。然後根據業務邏輯圖分析可能存在問題的地方,並結合代碼進行詳細分析(這個時候可不要求測試人員具備單元測試或介面測試能力),後面測試的過程中發現問題後,自己能夠嘗試的定位問題,並且完成一份模塊的定位問題經驗文檔(後面隨著自己的深入學習來不斷的完善)
3、自動化:自動化的起步確實是很難的,剛開始的成本很高,再加上項目的工作本身也比較緊,這樣很容易讓團隊對自動化望而止步。但是,經驗證明自動化的工作確實是越早開始研究越 好。一個比較好的方法是團隊負責人自己先花時間去分析下,目前哪個功能模塊的測試是重複率最高的,並且實現難度稍微比較小的(模塊的選擇很重要),然後思 考如何去實現自動化(多關注同類產品,看下別人是怎麼做的)。確定好怎麼做後,如果自己技術比較好的話就自己嘗試去實現(推薦方式,當然也會花費自己的一 些額外時間,但是肯定是值得的),如果團隊裡面有更適合的人的話,則可以自己去承擔對方的工作(比如:測試任務),然後讓對方投入時間去做這件事情(當 然,這個人一定要選好)。等到有效果後(這部分的工作能夠節省下來),這個時候就可以利用節省的這部分時間繼續做這個工作了(相信上面看到效果後也會提供 更多的支持),通過這種方式持續改進應該會比較好
4、介面和單元測試:對於整個模塊的業務邏輯比較熟悉後,這裡需要的另外一個能力就是我們對於開發使用的語言本身也比較熟悉,至少靜態走讀開發的代碼沒有太大問題(當然,可能一個團隊這樣的人不會很多,我們可以先培養這樣的人)。並且隨著我們的自動化工作已經有了很大效果後(這個時候大家的代碼開發能力實際上也比較好了),就可以專門投入人員做這些事情了。當然,這個需要跟開發的配合,但是前面2者做好後,後面的改進其實就是水到渠成的事情了。而且也最好是先完成前面的2點,再開始第3點,畢竟步子邁大了容易扯著蛋
將以上幾點的目標進行細化,具體要做到什麼程度?怎麼去一步一步去做?每一步的完成時間點是怎樣的?如何評估是否達成該目標呢?將這些問題搞清楚後就可以開始做了,定期分析和總結,相信應該是能夠達成上面的目標的
PS:一家之言,不一定完全正確,但是目前正在朝這個方向努力。
(作者:pengyongbo 來源:http://www.51testing.com/html/25/181625-845239.html)
推薦閱讀:
※請問有針對桌面程序,開發語言C++的自動化測試工具嗎?有誰用過Test Complete 嗎
※你還在準備參加軟體測試的培訓嗎?
※最近十年,軟體測試領域有什麼重要進展?