隨著測(cè)試在軟件開(kāi)發(fā)周期中越來(lái)越受到重視,國(guó)內(nèi)測(cè)試的缺口一直比較大,各種軟件和互聯(lián)網(wǎng)公司都大肆招收測(cè)試工程師,有些走在前面的公司甚至從今年開(kāi)始取消了測(cè)試工程師職位,全部變成了測(cè)試開(kāi)發(fā)職位,比如百度。一方面測(cè)試開(kāi)發(fā)表明了對(duì)工程師有更高的要求,需要在具有測(cè)試能力的基礎(chǔ)上兼?zhèn)溟_(kāi)發(fā)能力;另一方面自動(dòng)化測(cè)試成為趨勢(shì),利用開(kāi)發(fā)的技巧解決測(cè)試中的問(wèn)題以提高測(cè)試效率,降低QA與RD的人力比。
1. 技術(shù)含量
面試過(guò)許多的應(yīng)屆畢業(yè)生,問(wèn)及為什么選擇測(cè)試開(kāi)發(fā)這個(gè)職位時(shí),經(jīng)常聽(tīng)到以下的回答:
“我覺(jué)得自己開(kāi)發(fā)能力比較弱,但我比較細(xì)心,覺(jué)得測(cè)試職位比較適合。”
“我在實(shí)驗(yàn)室和實(shí)習(xí)公司呆過(guò),做過(guò)功能測(cè)試和性能測(cè)試,我比較喜歡測(cè)試。”
“開(kāi)發(fā)只能了解到項(xiàng)目的局部,但測(cè)試需要了解更多,我期望有更好的大局觀”
無(wú)論人們內(nèi)心真實(shí)的想法是什么,但潛意識(shí)里面測(cè)試的技術(shù)含量沒(méi)有開(kāi)發(fā)高。在校園招聘的時(shí)候,我們會(huì)將部分倒在開(kāi)發(fā)職位終面的人重新拿到測(cè)試開(kāi)發(fā)面試。客觀地說(shuō),在軟件編碼方面測(cè)試開(kāi)發(fā)的技術(shù)含量確實(shí)不如純正的開(kāi)發(fā)職位,更不用說(shuō)測(cè)試職位了。但是,我想說(shuō)的是這個(gè)職位本身所要求的技術(shù)水平應(yīng)該是需要超過(guò)單純的開(kāi)發(fā)職位的,真正高水平的QA至少需要多年的開(kāi)發(fā)經(jīng)驗(yàn)的,否則他無(wú)法從軟件產(chǎn)品設(shè)計(jì)、架構(gòu)和實(shí)現(xiàn)方面提出實(shí)質(zhì)性的意見(jiàn)和風(fēng)險(xiǎn)評(píng)估,充其量只是點(diǎn)出交付到手軟件中的幾個(gè)bug。所以基于現(xiàn)階段國(guó)內(nèi)行情,個(gè)人建議如果希望在測(cè)試的職業(yè)生涯上有所發(fā)展的人,先參與幾年的研發(fā)工作,畢竟那才是軟件工程中的主體,然后在開(kāi)發(fā)過(guò)程中培養(yǎng)測(cè)試意識(shí),這也是程序員的職業(yè)素養(yǎng)。Google許多工程師都有強(qiáng)烈的質(zhì)量意識(shí),許多代碼自己不經(jīng)過(guò)自己的單元測(cè)試和功能測(cè)試是沒(méi)有人review的。對(duì)于投測(cè)試或者測(cè)試開(kāi)發(fā)職位的目的是為了逃避開(kāi)發(fā),那么職業(yè)道路要發(fā)展順利是很難的。
2. 基本素質(zhì)
測(cè)試開(kāi)發(fā)工程在公司一般有兩種,一種是單純?yōu)闇y(cè)試團(tuán)隊(duì)開(kāi)發(fā)測(cè)試工具或者系統(tǒng)(由于這部分和單純開(kāi)發(fā)職位本質(zhì)上區(qū)別不大,討論基于另一種);另一種就是在測(cè)試過(guò)程中發(fā)揮主觀能動(dòng),利用自動(dòng)化把重復(fù)勞動(dòng)降至最低,比如開(kāi)發(fā)適用于特定場(chǎng)景的測(cè)試工具(當(dāng)然這種工具具有普遍性也能推廣到整個(gè)組或者公司)、測(cè)試腳本和測(cè)試用例。
測(cè)試開(kāi)發(fā)工程師應(yīng)該具備兩方面的知識(shí):測(cè)試知識(shí)和開(kāi)發(fā)知識(shí)。之所以把測(cè)試排在前面,因?yàn)檫@里的開(kāi)發(fā)建立在測(cè)試實(shí)踐基礎(chǔ)之上。其中測(cè)試知識(shí)又分為兩部分:一是理論知識(shí),軟件行業(yè)發(fā)展至今也就幾十年,測(cè)試方面的積淀就更少了,所以要掌握這部分對(duì)于一般人來(lái)說(shuō)不是難事;另外一方面是經(jīng)驗(yàn)知識(shí),主要在項(xiàng)目測(cè)試過(guò)程中積累,很多系統(tǒng)的測(cè)試點(diǎn)、風(fēng)險(xiǎn)點(diǎn)都需要有豐富的經(jīng)驗(yàn)來(lái)評(píng)估,這也是資深的測(cè)試工程師價(jià)值所在。開(kāi)發(fā)知識(shí)當(dāng)然和開(kāi)發(fā)工程師差不多了,不再多說(shuō)。在軟素質(zhì)方面,測(cè)試開(kāi)發(fā)工程師應(yīng)該具有更好的組織溝通協(xié)作能力。現(xiàn)在許多公司都在推行全流程保證,QA為了發(fā)揮更大的影響力以及保證項(xiàng)目的質(zhì)量,需要從需求到設(shè)計(jì),測(cè)試到上線(xiàn)全方面跟蹤參與,這就涉及到了許多跨部門(mén)跨小組的溝通,即便在小組內(nèi)溝通也極其頻繁,工程師需要很好的表達(dá)能力。同時(shí),由于測(cè)試在軟件生命周期中處于靠后的位置,所以在將許多工作推行到上游的環(huán)節(jié)中存在較多阻力,這也要求工程師有較好的統(tǒng)籌和協(xié)作能力,最終達(dá)到目的。
3. 走得更遠(yuǎn)
不可否認(rèn),現(xiàn)在許多測(cè)試?yán)碚摚瑹o(wú)論白盒測(cè)試還是黑盒測(cè)試,無(wú)論單元測(cè)試、集成測(cè)試還是系統(tǒng)測(cè)試,看似屬于測(cè)試人員研究的專(zhuān)利,實(shí)際上大部分的方法論都是開(kāi)發(fā)人員提出來(lái)的。再一次證明,不參與軟件主體的研發(fā)工作是不可能深入理解測(cè)試的,所以開(kāi)發(fā)人員需要具備的開(kāi)發(fā)能力和技巧測(cè)試人員也是需要具備的。當(dāng)然由于項(xiàng)目的安排和時(shí)間等各方面的原因,測(cè)試人員能難有較多的開(kāi)發(fā)機(jī)會(huì),但這不妨礙你不斷地學(xué)習(xí)。我們大組內(nèi)就有一個(gè)多年深入研究的python的QA,一直以此為興趣,許多開(kāi)發(fā)小組用到python開(kāi)發(fā)系統(tǒng)的時(shí)候都會(huì)叫他過(guò)去培訓(xùn),他不僅是質(zhì)量部的資深測(cè)試工程師,還親自開(kāi)發(fā)了多款實(shí)用的測(cè)試自動(dòng)化工具。另外,測(cè)試可以涵蓋的方面很多,但人的精力畢竟有限,測(cè)試開(kāi)發(fā)工程師也必須擁有自己的核心競(jìng)爭(zhēng)力,選定一個(gè)方向是個(gè)不錯(cuò)的做法,致力成為某方面的專(zhuān)家,比如單元測(cè)試(不要認(rèn)為是開(kāi)發(fā)人員做的,很多開(kāi)發(fā)人員沒(méi)有單測(cè)意識(shí)和技巧)、性能測(cè)試、安全測(cè)試。組里面也有一個(gè)對(duì)性能測(cè)試研究了6年的人,從職業(yè)開(kāi)始發(fā)展一直比較順利,并且發(fā)展勢(shì)頭不錯(cuò)。最后是測(cè)試開(kāi)發(fā)工程師需要培養(yǎng)自己的大局觀,這個(gè)是在職業(yè)過(guò)程中有意培養(yǎng)的,公司現(xiàn)階段的任務(wù)是什么?側(cè)重點(diǎn)是什么?在大公司需要順勢(shì)而為,QA的本職工作是保證質(zhì)量,需要借助與流程、工具和其他外部資源,所以在工作的時(shí)候盡量與大方向契合。比如公司去年是QA內(nèi)部水平提高的一年,需要QA具備單元測(cè)試、Code Review方面的能力,今年是保證質(zhì)量的前提下,提高軟件發(fā)布周期,主推持續(xù)集成。
4. 測(cè)試的本質(zhì)
2V(Validation和Verification)是QA的基本職責(zé),即保證兩點(diǎn):Validation,軟件按照既定的需求開(kāi)發(fā),沒(méi)有偏離產(chǎn)品方向;Verification,軟件在滿(mǎn)足需求的基礎(chǔ)上保證其正確性,從功能、性能、安全等各個(gè)方面驗(yàn)證。傳統(tǒng)意義上,第二點(diǎn)是大部分QA的意識(shí),即找bug,認(rèn)為一個(gè)軟件找到的bug越多自己的價(jià)值越大,實(shí)際上QA的最高境界是軟件在測(cè)試的時(shí)候找不到bug,因?yàn)樵谲浖膯?dòng)階段你就開(kāi)始了質(zhì)量保證工作,從需求、設(shè)計(jì)、編碼這些前期階段就杜絕了bug產(chǎn)生的可能。當(dāng)然,以上說(shuō)的有些理想,但本質(zhì)是什么?軟件背后是人,是PM制定的需求,是RD進(jìn)行開(kāi)發(fā)的,那測(cè)試背后實(shí)際上測(cè)的是人而不是軟件。人總是可能存在思維漏洞的,人總是可能犯錯(cuò)誤的,所以永遠(yuǎn)會(huì)有bug,但有些人心細(xì),有些人負(fù)責(zé),自己開(kāi)發(fā)完后會(huì)自己進(jìn)行單測(cè)、功能測(cè)試,以致后續(xù)能發(fā)現(xiàn)他的bug已經(jīng)很少了。明白了這一層就不要單純從技術(shù)角度來(lái)思考測(cè)試。
最后想說(shuō)的是,無(wú)論在大公司還是小公司,大家都有壓力,都要發(fā)展,心態(tài)就很重要了,以創(chuàng)業(yè)者而不是打工者的心態(tài)來(lái)工作看待很多問(wèn)題就截然不同了。
-
開(kāi)發(fā)工程師
+關(guān)注
關(guān)注
1文章
91瀏覽量
14928
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論