網上有篇文章談到“我們需要專職的QA嗎” 文章鏈接:http://www.anti-gravitydesign.com/ceshi/ceshijishu/csgl/2012/0418/204685.html
在這里談論一下對這個觀點的看法。
產品是需要測試的,這個測試當然可以讓開發做,也可以讓測試人員來做,所以是個專業分工的問題;
我們對測試的期望值是希望測試可以盡量多的發現bug,還是希望可以提高質量,這個要搞清楚;
產品的質量不好,開發和測試都是有責任的;
測試是個服務,只有開發人員覺得這個測試是個好測試,才能稱之為好的測試人員;
開發兼作測試的好處是,他們知道的信息多,可以有針對性的測試(特別是自己負責的模塊的回歸測試),壞處是每個人的思維都有局限性,很少能準確、全部的分析自己代碼可能出現的問題;
測試人員獨立做測試的好處是,可以綜合了解所有的功能,可以做一些系統級別的測試(包括性能測試,壓力測試等等),壞處是,需要和開發交流以拿到代碼級別的信息(所以這也是要求高級的測試人員需要讀懂代碼)
QA(Quality Assurance)和QC(Quality Control)是有區別的,前者在Build沒有出來之前就可以幫助提高產品質量,后者是Build出來之后通過測試去恒量產品是否達到標準,單純的QC就像考試時候出考卷一樣,可以告訴你是否達標,但是對于提高你的學習成績幫助很小;
高級測試人員需要理解開發,最好技術能力強,看得懂code和dev design,知道怎么去debug,能夠criticize,代表用戶,對于不好的功能可以跳出來批評;這就要求他們具備比較好的產品設計的理念;
如果一個研發人員(無論是測試還是開發)有能力做到上面說的事情,那就讓他來做,但是很多的時候由于資源的問題,由于每個人的能力模型不一樣,不可能讓一個人獨自做所有的事情,就這點而言,我們也可以說“我們需要專職的PM”嗎,是否可以讓開發來做,因為他既懂開發,又懂項目管理,讓他一個人來做就可以了;
小的公司,開發,測試,項目管理一個人來做就可以了, 小的功能,我覺得也可以,只要這個人的能力勝任;
最后總結一下,研發過程中的需要做的事情就擺在那里,有需求分析(你到底要設計什么功能),dev design,測試,發布,我們需要做的是把這些事情完美的做好,這樣才可以ship出好的產品;你要搞清楚你對測試,還有測試人員的期望值,那么你就不會有“我們需要專職的QA嗎”這樣的疑問;
另外說一下,我們需要專職的QA嗎來自http://coolshell.cn/articles/6994.html,里面很多觀點很合理,我挺贊成的;
突然想起,大學的時候在BBS上寫了一篇文章“大學里面需要教師”嗎?因為那個時候發現最能夠讓你學習到東西的途徑是你身邊的同學,所以發出了這樣的疑問;其實大學里面不一定需要教師,但是需要的是學習。還有一點就是你對教師的期望值,有些教師的能力很強,有些就一般。所以沒有絕對的定論。
原文轉自:http://www.anti-gravitydesign.com