有的人說(shuō)做軟件開(kāi)發(fā)的可以輕松轉(zhuǎn)做軟件測(cè)試,但是軟件測(cè)試轉(zhuǎn)軟件開(kāi)發(fā)卻是有些困難。真的是這樣嗎?其實(shí)IT行業(yè)內(nèi),都有這么一個(gè)無(wú)形又不說(shuō)透的鄙視鏈在里面。做開(kāi)發(fā)的瞧不上做測(cè)試的,做測(cè)試的怕得罪做開(kāi)發(fā)的。有時(shí)候測(cè)試人員不但不能成為整個(gè)團(tuán)隊(duì)突出的崗位,反而會(huì)被各種事情給牽絆限制。如果說(shuō)開(kāi)發(fā)是考驗(yàn)智商,那么測(cè)試考驗(yàn)的更多的是智商和情商的綜合,一個(gè)團(tuán)隊(duì)里面,開(kāi)發(fā)和測(cè)試都很重要。所謂的比不上,不過(guò)是某些業(yè)內(nèi)人為了凸顯自己的與眾不同而已。

軟件測(cè)試

很多程序員喜歡用架構(gòu)形容程序,而測(cè)試的存在是為了保證軟件的質(zhì)量及滿(mǎn)足用戶(hù)需要,那么為什么樂(lè)于用架構(gòu)對(duì)比軟件的程序員們卻認(rèn)為軟件可以不需要測(cè)試人員呢?這種想法顯然是非?;闹嚨?。

測(cè)試是做什么的?測(cè)試做的事情,程序員真的能輕易做到?

1、監(jiān)控產(chǎn)品流程。從時(shí)間控制的角度來(lái)說(shuō),開(kāi)發(fā)新功能和修bug是一個(gè)平衡。開(kāi)發(fā)得太快就可能把交付給下一個(gè)階段一個(gè)問(wèn)題較多的版本,從而使得后面的問(wèn)題更難處理。我們?nèi)绾沃獣悦總€(gè)階段軟件質(zhì)量怎么樣?具體的方法很多,回歸測(cè)試,代碼覆蓋、壓力測(cè)試等等。但是這些信息誰(shuí)來(lái)收集和分析,怎么分析?能得出什么樣的結(jié)論?有多少程序員會(huì)自己做這些?

2、搭建復(fù)雜的應(yīng)用場(chǎng)景。誰(shuí)能知道測(cè)試一個(gè)完整的Active Directory服務(wù)器的回歸測(cè)試環(huán)境需要多少臺(tái)域控?我搭建的紀(jì)錄是11臺(tái),還不包括中間可能動(dòng)態(tài)加入和刪除的客戶(hù)端。其中包含大量故意的毀壞性操作。每一次毀壞之后都必須恢復(fù)現(xiàn)場(chǎng)進(jìn)行下一個(gè)測(cè)試。有多少程序員構(gòu)造過(guò)這種場(chǎng)景?

3、簡(jiǎn)化問(wèn)題報(bào)告。當(dāng)發(fā)生用戶(hù)報(bào)告時(shí),他們最初給出的步驟往往過(guò)于簡(jiǎn)化或者過(guò)于繁瑣,缺乏直指問(wèn)題所在的步驟描述。很多時(shí)候由于步驟不清楚,導(dǎo)致分析過(guò)程中存在很多彎路。這個(gè)時(shí)候需要有一個(gè)人來(lái)不停地和客戶(hù)打交道并定位關(guān)鍵步驟。這個(gè)步驟總是必須完成的,那么誰(shuí)來(lái)處置?有多少開(kāi)發(fā)人員真正負(fù)責(zé)處理過(guò)這些?

測(cè)試和開(kāi)發(fā)需要的技能有交集,但基本上是兩個(gè)要求不同的崗位。開(kāi)發(fā)技術(shù)不行去做測(cè)試,不等于你能成為一個(gè)好測(cè)試人員。測(cè)試人員真的沒(méi)有程序員想的那么容易取而代之。雖然測(cè)試人員對(duì)編碼能力的要求較低,不表示開(kāi)發(fā)人員可以自動(dòng)成為一個(gè)合格的測(cè)試。

測(cè)試這個(gè)崗位有測(cè)試的能力要求,它和開(kāi)發(fā)的主要差異是在于分析和統(tǒng)計(jì)的能力。測(cè)試的基本能力是能夠嚴(yán)格地按步驟執(zhí)行測(cè)試,這個(gè)確實(shí)是很容易入門(mén)的。但好的測(cè)試要求的絕對(duì)不僅僅是這個(gè)。當(dāng)一個(gè)人在測(cè)試到達(dá)一定程度的時(shí)候,他/她就必須開(kāi)始注意很多流程上的分析工作。

其實(shí)開(kāi)發(fā)在這個(gè)位置上也是一樣的。最開(kāi)始的時(shí)候,寫(xiě)個(gè)排序之類(lèi)的算法都不是難事。但一個(gè)好的開(kāi)發(fā)不是只會(huì)這些就夠的。當(dāng)入行時(shí)間長(zhǎng)了,開(kāi)發(fā)就必須開(kāi)始注意領(lǐng)域知識(shí)(比如東哥最近剛發(fā)布的Adaptive Wide Angle濾鏡)、架構(gòu)、設(shè)計(jì)(比如互操作性,微軟已經(jīng)被人罵了很多年了)等等東西。這些東西都和編碼本身無(wú)關(guān),但是成為一個(gè)好的開(kāi)發(fā)必須掌握這些。這兩個(gè)職位也許開(kāi)始時(shí)能力要求接近,隨著時(shí)間的發(fā)展則差異會(huì)越來(lái)越大。但這不是開(kāi)發(fā)部門(mén)可以用來(lái)鄙視測(cè)試部門(mén)的理由。

軟件測(cè)試

另一方面,也正是因?yàn)橛辛藘蓚€(gè)職位的差異,所以才會(huì)有興趣愛(ài)好方面的區(qū)別。有的人一開(kāi)始不理解測(cè)試這個(gè)職位,慢慢地越做越喜歡;有人試了之后還是覺(jué)得不符合自己的興趣,所以選擇離開(kāi)。這都很正常。人各有志,這東西勉強(qiáng)不來(lái)。

測(cè)試入門(mén)門(mén)檻相對(duì)較低,但是入門(mén)以后想要得到長(zhǎng)足發(fā)展,能力要求甚至超過(guò)開(kāi)發(fā)。就像之前說(shuō)的,一個(gè)優(yōu)秀的測(cè)試人員,除了基本的測(cè)試技能,還要會(huì)敲點(diǎn)代碼懂些程序。如果等一個(gè)測(cè)試人員成長(zhǎng)為測(cè)試能做,代碼能敲的時(shí)候,那才是只懂得敲代碼的程序員該著急該焦慮的時(shí)候,誰(shuí)也別瞧不起誰(shuí)!