對(duì)《我們需要專職QA嗎?》的回應(yīng)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/4/27 11:15:11 ] 推薦標(biāo)簽:
說實(shí)話,在我看來,左耳朵耗子的《我們需要專職的QA嗎?》這篇文章的觀點(diǎn)并不算過激。多是一篇從開發(fā)工程師的角度來商討是否需要設(shè)立“專門做測(cè)試的崗位”,讓“不熟悉或是不懂開發(fā)的人”來做測(cè)試工作。如果這個(gè)問題擺在我的面前,在大多數(shù)情況下,我的答案可能和左耳朵耗子一樣:“不需要”。
作為一個(gè)在測(cè)試行業(yè)工作了10多年的“老人”,在這里贊同左耳朵耗子的觀點(diǎn)似乎是對(duì)自己過去這么多年工作的否定,但實(shí)際上,正是因?yàn)橛羞@么多年的經(jīng)驗(yàn),我才真正能夠深刻的體會(huì)專職測(cè)試工程師在工作中的局限和不足。
為了避免本文引發(fā)類似“混淆了QA和測(cè)試角色”之類的毫無營(yíng)養(yǎng)的評(píng)價(jià),在下文中,我一概使用“測(cè)試人員”來指代從事“專職測(cè)試”工作的角色,那些喜歡拿“QA層次更高,是管過程的”各位看管請(qǐng)自行繞道(順便說一句,我在google的時(shí)候,是十分反感自己的團(tuán)隊(duì)被稱作QA團(tuán)隊(duì)的,如果有人這樣說,我一定會(huì)認(rèn)真的糾正:“不,我們不是QA,我們是測(cè)試工程師”,關(guān)于google有沒有QA,各位可以自行g(shù)oogle)。
“軟件需要測(cè)試”應(yīng)該是不會(huì)有人反對(duì)的觀點(diǎn)。問題是,設(shè)置專職的“測(cè)試人員”是否會(huì)比“讓開發(fā)做測(cè)試”更能有效的做好測(cè)試。從1998年開始,在華為我開始了自己的測(cè)試生涯。關(guān)于為什么需要測(cè)試工程師,在我的測(cè)試工程師職業(yè)生涯中,聽到得多的是兩種論調(diào):其中之一是“測(cè)試工程師需要的技能與開發(fā)工程師不同,測(cè)試工程師需要的是發(fā)現(xiàn)問題的能力”,另一種是“開發(fā)人員無法保證產(chǎn)品質(zhì)量,因此需要測(cè)試人員”。后一種論調(diào)其實(shí)是有很大的問題的,“開發(fā)人員無法保證質(zhì)量”不意味著測(cè)試人員可以保證質(zhì)量,在大多數(shù)企業(yè)中,說的不客氣一點(diǎn),“保證質(zhì)量”通常只是測(cè)試部門可以繼續(xù)存在的表面上的理由而已。至于說到開發(fā)工程師與測(cè)試工程師所需技能的不同,這一點(diǎn)倒是存在的事實(shí)。在一個(gè)組織中,測(cè)試人員通常會(huì)花主要的精力去設(shè)計(jì)測(cè)試用例,評(píng)價(jià)覆蓋度,嘗試從不同的角度攻擊應(yīng)用,從表面上看,的確,測(cè)試和開發(fā)需要的技能很不同。
但是,我要問兩個(gè)問題:
這些技能開發(fā)工程師不能具備嗎?
設(shè)計(jì)測(cè)試用例,評(píng)價(jià)覆蓋率這類工作是否真的需要專職的人員去做?
所謂的黑盒測(cè)試技術(shù),有多大的難度?平心而論,一個(gè)智商正常的具有較好計(jì)算機(jī)基礎(chǔ)的人,一個(gè)下午能完全理解常用的黑盒測(cè)試技術(shù),白盒測(cè)試技術(shù)也不會(huì)難到哪里去。只要開發(fā)工程師愿意,這些工作他們完全可以承擔(dān)。只所以開發(fā)工程師沒有承擔(dān)這些任務(wù),原因恐怕不是他們不能做,而是像在《我們需要專職的QA嗎?》文章后的評(píng)論中某位做開發(fā)的仁兄說的那樣:“如果有一個(gè)比較專業(yè)的QA來幫助我們,我們能把自己的時(shí)間花在更有用的地方”。
社會(huì)分工的細(xì)化自然是提供效率的方式,但社會(huì)的發(fā)展并不只伴隨著分工的細(xì)化,由于開發(fā)工具和開發(fā)基礎(chǔ)的變化,分工的“合并”也是一個(gè)一直在持續(xù)的趨勢(shì)。幾年前,大多數(shù)公司都傾向于有單獨(dú)分工的“前端工程師”和“后端工程師”,但現(xiàn)在的趨勢(shì)不也是在融合?至少,F(xiàn)acebook要求自己的工程師能同時(shí)承擔(dān)前后端的任務(wù),google也是如此。測(cè)試工作和開發(fā)工作難道不能融合?讓開發(fā)人員做測(cè)試怎么不行?
其實(shí),《我們需要專職的QA嗎?》中的不少觀點(diǎn)我都非常贊同,鑒于左耳朵耗子已經(jīng)寫了這么大一篇,我不再重復(fù)這些觀點(diǎn)了,作為對(duì)這些觀點(diǎn)的一些佐證,我來說說我自己經(jīng)歷過的幾件事情。
故事1
在Google中國(guó)的時(shí)候,我們團(tuán)隊(duì)負(fù)責(zé)的某個(gè)項(xiàng)目,開發(fā)工程師每天忙死忙活的加新功能,趕上線,整個(gè)團(tuán)隊(duì)的開發(fā)和SET(Software Engineer in Test)都忙得不行。從傳統(tǒng)的對(duì)測(cè)試工程師的角度來評(píng)價(jià)的話,這個(gè)團(tuán)隊(duì)的一個(gè)SET工作得十分出色:她幾乎能發(fā)現(xiàn)所有的缺陷,她幾乎把自己所有的時(shí)間都投入到項(xiàng)目中去發(fā)現(xiàn)缺陷;她是整個(gè)開發(fā)團(tuán)隊(duì)喜歡和感激的人,因?yàn)椤皼]有她,這個(gè)產(chǎn)品簡(jiǎn)直不可能發(fā)布”。但是,這個(gè)產(chǎn)品在發(fā)布了一段時(shí)間后,每個(gè)RC的缺陷始終居高不下,這位盡職的SET幾乎投入了全部時(shí)間和精力,仍然無法讓這個(gè)產(chǎn)品的質(zhì)量提高分毫。為什么?因?yàn)殚_發(fā)人員從來沒有意識(shí)到他們的代碼有多爛!當(dāng)有一個(gè)可以幫你發(fā)現(xiàn)所有錯(cuò)誤的人的時(shí)候,我相信,你犯錯(cuò)的勇氣一定會(huì)更大。這個(gè)問題后是如何解決的?說起來很諷刺,解決這個(gè)問題的第一步是讓開發(fā)意識(shí)到“你們需要自己為代碼質(zhì)量承擔(dān)責(zé)任”,當(dāng)這位SET改變工作方式,不再嘗試把自己的業(yè)務(wù)時(shí)間全部投入來發(fā)現(xiàn)無盡的缺陷之后,開發(fā)人員立刻意識(shí)到自己遇到了大麻煩。然后,他們主動(dòng)來找我商討解決方案,當(dāng)他們終發(fā)現(xiàn)自己不得不改變自己的做法,自己來控制自己錯(cuò)誤的時(shí)候,事情立刻開始好轉(zhuǎn)。當(dāng)他們的單元測(cè)試達(dá)到40%的覆蓋率的時(shí)候,所有人都變得更輕松了。這位SET負(fù)責(zé)推動(dòng)了單元測(cè)試,推動(dòng)了為了讓代碼具有良好可測(cè)試性而進(jìn)行的重構(gòu),設(shè)立了組織的代碼提交規(guī)則(強(qiáng)制提交的新代碼必須包含單元測(cè)試),然后,產(chǎn)品質(zhì)量在接下來的一段時(shí)間內(nèi)持續(xù)上升。
故事2
Google內(nèi)部有一個(gè)Test Certified的認(rèn)證,該認(rèn)證是針對(duì)開發(fā)團(tuán)隊(duì)進(jìn)行的。認(rèn)證的主要要點(diǎn)都是基于單元測(cè)試覆蓋率,基于持續(xù)集成建立的開發(fā)規(guī)則,自動(dòng)化測(cè)試(以小測(cè)試為主)。這個(gè)認(rèn)證分為5個(gè)級(jí)別,1級(jí)低,5級(jí)高。Test Certified和CMMI一樣有5個(gè)級(jí)別,可是出發(fā)點(diǎn)卻大不相同。這個(gè)認(rèn)證中涉及的全部事情都能(且主要是)由開發(fā)工程師搞定,越接近高的級(jí)別,需要的專職SET越少。(詳細(xì)內(nèi)容參見James近出版的《How google test software》,雖然書中的觀點(diǎn)有些和我不一致,但在Test Certified的描述上是完全沒有問題的)
故事3
后一個(gè)故事是近我遇到的一個(gè)測(cè)試工程師的故事。她從一開始表明自己有很強(qiáng)的“做自動(dòng)化測(cè)試”的意愿,因此,她所在的項(xiàng)目團(tuán)隊(duì)的技術(shù)負(fù)責(zé)人很高興地給她分配了一些技術(shù)性的任務(wù),包括使用工具監(jiān)控應(yīng)用的內(nèi)存使用情況,找到一個(gè)方案能夠方便的定位crash發(fā)生等等,誰知道這位測(cè)試工程師的第一反應(yīng)是,“這難道不是開發(fā)工程師的活嗎?”,在她看來,測(cè)試工程師完全不應(yīng)該了解程序是如何工作的,所謂的自動(dòng)化測(cè)試應(yīng)該是“使用某種手段把自己現(xiàn)在的手工勞動(dòng)重復(fù)下去”。
專職測(cè)試人員是否毫無存在的必要?當(dāng)然不是。至少,我們必須承認(rèn),在有些必須大量依靠“體驗(yàn)”進(jìn)行測(cè)試的行業(yè),如游戲行業(yè)中,專職的測(cè)試人員是有存在的必要的。但我想,在類似google,facebook這樣的環(huán)境中(我猜測(cè)在左耳朵耗子所在的環(huán)境中也差不多),不能深刻理解開發(fā)和具有深入的開發(fā)技術(shù)的測(cè)試人員(SET)的確沒太多價(jià)值。真誠(chéng)的希望各位測(cè)試工程師在讀左耳朵耗子的文章時(shí),不要糾結(jié)于他的結(jié)論,而去看看他提到的問題,是不是真的切中了專職測(cè)試的痛處。至少對(duì)我來說,文章中提到的這些熟悉的問題每一個(gè)都能讓我想起一些故事。
對(duì)于我從事了10多年的測(cè)試行業(yè),即使我現(xiàn)在的角色有所變化,這個(gè)行業(yè)的每一個(gè)變動(dòng)和變革都會(huì)讓我關(guān)注。這種感情是不可能割舍的。所以,真誠(chéng)的希望每一位測(cè)試的工作者,能夠真正思考我們?nèi)绾巫龅母谩y(cè)試和開發(fā)之間有更多配合,更多相親相愛,把測(cè)試當(dāng)成提高和推動(dòng)質(zhì)量的手段,不正應(yīng)該是測(cè)試的方向嗎?
相關(guān)推薦

最新發(fā)布
性能測(cè)試之測(cè)試環(huán)境搭建的方法
2020/7/21 15:39:32軟件測(cè)試是從什么時(shí)候開始被企業(yè)所重視的呢?
2020/7/17 9:09:11Android自動(dòng)化測(cè)試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項(xiàng)目適合做自動(dòng)化?自動(dòng)化測(cè)試人員應(yīng)具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測(cè)試工具測(cè)評(píng)
2020/7/17 8:52:11RPA機(jī)器人能夠快速響應(yīng)企業(yè)需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測(cè)試基本概念是怎么來的?軟件測(cè)試生命周期的形成歷經(jīng)了什么?
2020/7/16 9:11:10