因為一直從事web產品的測試,我的觀點並不一定適合所有的類型項目。
工作已將近三年了,雖然這三個年頭里我都在積極的學習着與測試相關的技術;但是能沉淀的東西很少。相信測試同學都有類似的感覺。
不要為了測試而測試
前幾天做了一個測試的PPT ,就是講項目中要用到的測試技術,總結了半天其實實際的產品中沒什么技術,熟悉需求,轉化成用例,待項目上線后驗證功能就OK 了;對一個自身質量要求不高的項目,我們有時候為了體現自己價值,非要在一些不痛不養的問題上揪着不放。
舉個不恰當例子,某鋼琴高手開了一個補習班教鋼琴,家長送來一孩子目的只是讓孩子學學鋼琴;鋼琴高手為了體驗自己的價值(牛B),硬是按照貝多芬的標准去培養,孩子彈不會《XX交響曲》不讓孩子走。先不說孩子有沒有貝多芬的鋼琴天資,也許孩子壓根就不想成為貝多芬。
當然了,如果你辦的是“中國音樂家鋼琴協會”,你有責任要求會員達到國際超一流水平,為國家和個人贏得榮譽。
有時候不要為了測試去測試,或為了體現自己的價值去做一些對整個項目貢獻不大的事兒。當然,我在這里不是讓測試人員放棄自己的原則。要知道不管是產品、開發、測試都是圍繞着產品的發展貢獻。
為貢獻產品的發展測試遠比為了測試了測試所帶來的價值大得多;所以站在產品的發展上去看待測試工作更能體現自己的價值。
記得去年的總結再討論自己對流程的理解。隨着工作年齡的加長對這些問題也有進一步的看法;所以,再拿來炒一炒,希望能炒出新的味道。
沒有最好的開發測試流程,只有最適合項目的開發測試的流程;
去年的一篇說軟件測試流程,嚴格規范的測試流程一定比沒流程好,敏捷的流程一定比傳統的瀑布流程先進。這個觀點沒有大的錯誤,但是我們忽略了所做有產品這個“對象”;忽略了產品的特點與階段。
例如兩三個開發合伙開發一個項目(或產品),這時你讓他們建立一套規范的流程,按流程實施,顯然是不現實,我想擺在他們面前最主要的問題是,如何快速的把客戶需要的功能開發出來換成money ,維持生計以及公司運作。
例如一個各種功能已經成熟的項目,有着龐大的用戶群,以維護為主的更新,它的版本功能的上線必須要建立嚴格的發布流程,經過充分的測試才能上線;用戶群越大,暴露的問題越多,問題帶來的影響也會越大。
同樣是一個web產品,筆者目前所做的項目流程完全不是這樣;我們的發布流程很簡單,測試流程也很簡單,不去寫的規范又復雜的測試用例,放棄了使用缺陷管理工具來反饋問題;
溝通變得尤為重要;我不否認這樣做會給產品帶來了一定的風險;對於嚴重的問題,我們可以通過快速的版本回滾,對於輕微的問題,我們很快會在下個版本迭代中修復。是不是有點敏捷的味道在里面。
為什么會這樣?因為這個產品屬於前期開發階段,很多功能還沒上線。整個團隊都在貢獻着產品的發展;需要快速的將需求轉化成功能給用戶使用。
所以,沒有最好的開發測試流程,只有最適合項目與階段的開發測試的流程;
產品質量與用戶容忍度
之前看過不少人討論到底需不需要測試人員;我想說測試人員N年后不管是被重視了還是被淘汰了“測試的行為”永遠不會消失;因為沒有質量的產品基本上等於沒有價值(也就是說沒存在的意義),至於對產品質量的要求是由用戶容忍度決定的。
Facebook 沒有測試人員!但是測試行為一直都在。開發找需求,開發、自測、發布,獲得用戶反饋,決定功能下線還是上新的功能---相當於一條龍的服務。因為用戶的容忍度允許他這么做。
微軟不能這么干,修復一個windows 的bug成本很高,而且用戶是花錢買的,也許用戶是用來創造價值的(辦室、存儲、管理),也許一個文件丟失,系統崩潰會給用戶帶來巨大損失;所以,微軟需要很多的測試員。
拿修復成本與用戶容忍度做標准,web產品優於客戶端產品;在web產品中也要分行業;用戶對銀行系統、火車票、購物網站的容忍度顯然要低一些,反過來說也就是對產品的質量要求更高,因為與錢掛鈎。就算同一個產品,會員與免費用戶的容忍度也是不一樣的;因為會員用戶有權得到更好質量與服務。
所以,關注分析用戶的容忍度的測試才不會把自己變得格格不入。
提升自己的貢獻
前面的東西貌似都在“弱化”測試存在的價值;俺本來就不被重視,所以俺就需要更加認真和努力找問題來提升自己存在的價值,你現在說,有些產品不需要太指着的去測試;那你說俺還能干啥?
當我們把測試看成是為開發和產品服務時,也許情況會完全不一樣。我們可以提供哪些服務?
- 用測試發現產品的不可以測試性
前面已經提到隊團不管是否有測試人員,但測試行為一定會存在;如果一個產品都不可測試,如何去發現並修復bug ,如何去維護與擴展?尤其對於web產品來講,不可維護與擴展的產品無疑是致命的。(可以通過項目重構再解決)
- 建立產品質量的評估方法
為項目團隊提供每個版本的bug趨勢分析數據,讓項目中的每個人都了解項目當前的狀態
通過分析bug數據來建立或完善各種Checklist,幫助項目團隊更好的完成需求評審、設計評審以及代碼評審,減少bug出現的機會。同時,可以定期將多個項目的Checklist進行合並,使單個項目的經驗可以通過Test Team快速的流動起來,及時的作用於其他項目
主動為Architect Team提供每個項目的性能測試數據,幫助他們獲取更多的實際項目信息,減少踏入“陷阱”的幾率
- 建立可持續運行的測試框架
建立自動化測試測試框架;
構建持續集成,使版本的迭代與更新得到快速的反饋。
- 建立關注開發質量的開發文化
沒有測試人員自測節省人力的了,尤其在單元測試層面。產品的質量應該由開發與測試共同承擔。(現實中的責任到人,讓團隊很難形成這種文化)
- 貢獻產品發展
舊病成醫,測試的產品多了自然會對產品有自己的理解,產品的定位,用戶習慣與體驗; 可以從測試的角度貢獻產品的發展。(這個由產品的特點,公司文化決定)
----------------------------------