大家好,我是狂師!
前段時(shí)間,在后臺(tái)收到一則留言:"請(qǐng)問(wèn)一下,你覺(jué)得開(kāi)發(fā)技術(shù)好,還是測(cè)試技術(shù)好,如果測(cè)試技術(shù)好,為什么不直接開(kāi)發(fā),干嘛做測(cè)試?"
這是一則很有意思且大多數(shù)技術(shù)新人普遍存在的困惑,今天就以此問(wèn)題,給大家統(tǒng)一解答,分享一下筆者的觀點(diǎn)。
1、首先,從技術(shù)本身來(lái)講,
開(kāi)發(fā)技術(shù)和測(cè)試技術(shù)都是軟件工程中不可或缺的技術(shù)能力,它們各自具有獨(dú)特的價(jià)值和重要性。無(wú)法簡(jiǎn)單地說(shuō)哪個(gè)技術(shù)更好,因?yàn)樗鼈兊膬?yōu)劣取決于具體情境和需求。
開(kāi)發(fā)技術(shù)專(zhuān)注于實(shí)現(xiàn)軟件的功能和特性,它涉及到編程語(yǔ)言、算法、數(shù)據(jù)結(jié)構(gòu)、設(shè)計(jì)模式等多個(gè)方面。優(yōu)秀的開(kāi)發(fā)技術(shù)能夠確保軟件具有高效、穩(wěn)定、安全的性能,滿足用戶需求。
測(cè)試技術(shù)則專(zhuān)注于確保軟件的質(zhì)量和可靠性,它涉及到測(cè)試用例設(shè)計(jì)、自動(dòng)化測(cè)試、性能測(cè)試、安全測(cè)試等多個(gè)方面。優(yōu)秀的測(cè)試技術(shù)能夠及時(shí)發(fā)現(xiàn)軟件中的缺陷和錯(cuò)誤,為軟件開(kāi)發(fā)提供質(zhì)量保障。
2、從崗位職責(zé)來(lái)講,就軟件工程來(lái)說(shuō),
開(kāi)發(fā)工程師則是一個(gè)更廣泛的概念,包括軟件設(shè)計(jì)人員、軟件架構(gòu)人員、軟件工程管理人員、程序員等一系列崗位。他們的主要工作是進(jìn)行軟件的開(kāi)發(fā)和生產(chǎn),技術(shù)要求較為全面,包括但不限于編程語(yǔ)言、數(shù)據(jù)庫(kù)技術(shù)、平臺(tái)技術(shù)等多個(gè)方面。
而測(cè)試工程師,隨著近些年行業(yè)發(fā)展趨勢(shì),大體又分為兩類(lèi):業(yè)務(wù)測(cè)試工程師、測(cè)試開(kāi)發(fā)工程師。
業(yè)務(wù)測(cè)試工程師,主要負(fù)責(zé)開(kāi)發(fā)和執(zhí)行軟件測(cè)試,以確保軟件產(chǎn)品的質(zhì)量和可靠性。他們需要設(shè)計(jì)、編寫(xiě)和執(zhí)行測(cè)試計(jì)劃和測(cè)試用例,識(shí)別和報(bào)告軟件缺陷和錯(cuò)誤,參與軟件開(kāi)發(fā)生命周期,并與開(kāi)發(fā)團(tuán)隊(duì)密切合作。測(cè)試工程師需要掌握軟件測(cè)試?yán)碚摗⒎椒ê凸ぞ撸瑫r(shí)還需要具備分析問(wèn)題、識(shí)別潛在風(fēng)險(xiǎn)和提出解決方案的能力。
而測(cè)試開(kāi)發(fā)工程師,是一種特殊的角色,他們既是開(kāi)發(fā)人員,又負(fù)責(zé)軟件測(cè)試。他們關(guān)注軟件產(chǎn)品的可測(cè)性、穩(wěn)健性和性能,并在軟件設(shè)計(jì)初期就參與審閱和推動(dòng)改進(jìn)。測(cè)試開(kāi)發(fā)工程師需要編寫(xiě)測(cè)試工具和自動(dòng)化測(cè)試代碼,同時(shí)也需要執(zhí)行一些基礎(chǔ)的功能測(cè)試或白盒測(cè)試。他們需要掌握多種編程語(yǔ)言、測(cè)試技術(shù)、開(kāi)發(fā)技術(shù),同時(shí)還需具備測(cè)試工程師的敏銳思維,能夠從用戶體驗(yàn)、產(chǎn)品業(yè)務(wù)角度解決問(wèn)題。
總的來(lái)說(shuō),測(cè)試開(kāi)發(fā)工程師、開(kāi)發(fā)工程師和業(yè)務(wù)測(cè)試工程師在職責(zé)和技能要求上各有側(cè)重,但他們共同的目標(biāo)都是確保軟件產(chǎn)品能符合客戶、用戶需求,同時(shí)滿足質(zhì)量和可靠性要求。測(cè)試開(kāi)發(fā)工程師更側(cè)重于開(kāi)發(fā)和自動(dòng)化測(cè)試,開(kāi)發(fā)工程師更側(cè)重于軟件的開(kāi)發(fā)和生產(chǎn),而測(cè)試工程師則更專(zhuān)注于測(cè)試計(jì)劃和測(cè)試用例的設(shè)計(jì)和執(zhí)行。三者之間的協(xié)作對(duì)于軟件項(xiàng)目的成功至關(guān)重要。
這也符合Google測(cè)試之道一直強(qiáng)調(diào)的每個(gè)工程師都應(yīng)注重質(zhì)量,質(zhì)量是內(nèi)建的,而非僅僅是測(cè)試人員的責(zé)任。
3、再者,我的觀點(diǎn)
在我之前出版的《自動(dòng)化測(cè)試實(shí)戰(zhàn)寶典》一書(shū)中,提到的“一名優(yōu)秀的測(cè)試開(kāi)發(fā)工程師應(yīng)該比開(kāi)發(fā)更懂開(kāi)發(fā),比產(chǎn)品更懂業(yè)務(wù),不然你如何發(fā)現(xiàn)開(kāi)發(fā)和業(yè)務(wù)更深層次的問(wèn)題呢?”
雖然這一觀點(diǎn),現(xiàn)實(shí)工作中,能達(dá)到的人并不多,但實(shí)際上它更多是對(duì)測(cè)試開(kāi)發(fā)工程師角色的一個(gè)高度期望和要求。這種表述并不是字面上的絕對(duì)比較,而是強(qiáng)調(diào)測(cè)試開(kāi)發(fā)工程師需要具備跨越開(kāi)發(fā)和產(chǎn)品領(lǐng)域的綜合能力和視角。
首先,測(cè)試開(kāi)發(fā)工程師比開(kāi)發(fā)更懂開(kāi)發(fā),并不是指測(cè)試開(kāi)發(fā)工程師在開(kāi)發(fā)技術(shù)層面一定比專(zhuān)業(yè)的開(kāi)發(fā)工程師更精通,而是指測(cè)試開(kāi)發(fā)工程師需要深入了解開(kāi)發(fā)的過(guò)程、技術(shù)棧、常見(jiàn)的錯(cuò)誤模式以及開(kāi)發(fā)的思維方式。這樣,他們才能設(shè)計(jì)出更有效的測(cè)試用例,更精準(zhǔn)地定位問(wèn)題,更快速地與開(kāi)發(fā)團(tuán)隊(duì)溝通協(xié)作。測(cè)試開(kāi)發(fā)工程師需要站在開(kāi)發(fā)的角度思考問(wèn)題,預(yù)見(jiàn)并防范可能出現(xiàn)的問(wèn)題,從而確保軟件的質(zhì)量。
其次,測(cè)試開(kāi)發(fā)工程師比產(chǎn)品更懂業(yè)務(wù),也不是說(shuō)測(cè)試開(kāi)發(fā)工程師一定比產(chǎn)品經(jīng)理更了解業(yè)務(wù)需求,而是強(qiáng)調(diào)測(cè)試開(kāi)發(fā)工程師需要對(duì)業(yè)務(wù)邏輯有深入的理解,了解業(yè)務(wù)背后的目標(biāo)和需求,以便更好地設(shè)計(jì)測(cè)試用例和發(fā)現(xiàn)潛在的業(yè)務(wù)問(wèn)題。測(cè)試開(kāi)發(fā)工程師需要站在用戶的角度思考問(wèn)題,確保軟件的功能符合業(yè)務(wù)需求和用戶期望。
這種跨領(lǐng)域的綜合能力使得測(cè)試開(kāi)發(fā)工程師在發(fā)現(xiàn)開(kāi)發(fā)和業(yè)務(wù)問(wèn)題方面具有獨(dú)特的優(yōu)勢(shì)。他們可以通過(guò)深入了解開(kāi)發(fā)過(guò)程和技術(shù)棧,發(fā)現(xiàn)開(kāi)發(fā)人員可能忽略的潛在問(wèn)題;同時(shí),通過(guò)深入理解業(yè)務(wù)邏輯和需求,發(fā)現(xiàn)產(chǎn)品可能存在的功能缺陷或不符合用戶期望的地方。
需要注意的是,這一觀點(diǎn)并不是要求測(cè)試開(kāi)發(fā)工程師在所有方面都要超過(guò)開(kāi)發(fā)或產(chǎn)品人員,而是強(qiáng)調(diào)他們需要具備一種綜合的視角和能力,以便更好地履行測(cè)試和開(kāi)發(fā)工程師的職責(zé),確保軟件的質(zhì)量和可靠性。
在實(shí)際操作中,測(cè)試開(kāi)發(fā)工程師可以通過(guò)與開(kāi)發(fā)團(tuán)隊(duì)和產(chǎn)品團(tuán)隊(duì)緊密合作,積極參與項(xiàng)目討論和需求評(píng)審,不斷提升自己的業(yè)務(wù)和技術(shù)能力,從而更好地發(fā)現(xiàn)和解決開(kāi)發(fā)和業(yè)務(wù)問(wèn)題。同時(shí),他們也需要保持開(kāi)放和學(xué)習(xí)的態(tài)度,不斷吸收新的知識(shí)和技術(shù),以適應(yīng)不斷變化的項(xiàng)目需求和技術(shù)環(huán)境。
4、最后
質(zhì)量不是被測(cè)試出來(lái)的,質(zhì)量也不等于測(cè)試,同時(shí)質(zhì)量并非僅僅依賴于測(cè)試階段,而是需要在整個(gè)軟件開(kāi)發(fā)過(guò)程中進(jìn)行預(yù)防和確保。測(cè)試只是其中的一環(huán),而不是質(zhì)量的唯一保障。
同時(shí)測(cè)試工程師是一個(gè)把質(zhì)量意識(shí)輸出到整個(gè)團(tuán)隊(duì)的人,是一個(gè)流程推動(dòng)者,是一個(gè)需求挖掘者,是一個(gè)質(zhì)量把關(guān)者,一方面我們確實(shí)通過(guò)自己的經(jīng)驗(yàn)和技術(shù)手段去挖掘更多的Bug,另外一方面,通過(guò)傳播質(zhì)量意識(shí)盡可能的去從產(chǎn)品上游去避免Bug。
開(kāi)發(fā)測(cè)試比本身沒(méi)有實(shí)際任何意義,只是人員數(shù)量上的比率,如果在你的職位頭銜上有測(cè)試的字樣,你的任務(wù)就是怎么使得那些頭銜上沒(méi)有測(cè)試的人可以更好地去做測(cè)試。
希望這些觀點(diǎn),能給你帶來(lái)新的啟發(fā),共勉!