溫馨提示
文章篇幅雖長,但內(nèi)容樸實、且能幫助讀者進一步理解測試開發(fā)工作,請讀者耐心品完~
公眾號開通了也有兩年多了,除了剛開通的那段時間發(fā)文比較頻繁之外,從去年上半年開始,幾乎很少再去打理了,翻了翻歷史推文,從時間頻率來講,基本上平均2~3個月才更新一篇文章,工作忙雖是一方面,但這也只是借口,歸根原因還是不夠堅持。
最近一直在思考,當(dāng)初為什么要開辦公眾號?有些讀者可能會想:“是不是就想弄個渠道引流打廣告!”,上周確實也幫朋友在公眾號內(nèi)做過一兩次專欄推薦,但我想說的是,雖然有些小部分推文有些推廣的成分,但請試想一下,推薦給大家的學(xué)習(xí)專欄,都是實實在在能幫助大家提升自己技能、打造職場競爭力的有用課程,并不是無用的。經(jīng)常有周邊同事或者讀者跟我說:“你怎么會懂得那么多種類的專業(yè)知識啊,而我自己啥都不會,但又不知道怎么學(xué),怎么辦呢?”,我想對這些人說,放開畏難情節(jié),養(yǎng)成持續(xù)學(xué)習(xí)的習(xí)慣,這樣知識技能的積累才能越來越多、越積越厚。現(xiàn)在社會上有很多人,喜歡投資房子、投資臉蛋、投資享樂,當(dāng)然這些都沒有錯,但真正的長期投資,應(yīng)該是投資自己,知識的投資對于自己來說,才是永恒屬于自己的。
前面說了那么多,更重要的還是想呼吁大家懂得投資學(xué)習(xí),投資自己?;叵氘?dāng)初為什么要開辦公眾號,我想最根本的初衷目的還是想提供一個分享交流的平臺,在幫助他人的基礎(chǔ)上,也是通過這種方式來倒逼自己要持續(xù)不斷的輸出自己的思考、輸出自己的實踐積累。
因此筆者打算重新激活公眾號,并計劃后續(xù)每周都能有一至兩篇的原創(chuàng)文章分享給大家(保底至少一篇),也算是給自己設(shè)定的一個小目標!小目標雖然不能像王健林那樣霸氣,隨口就是五個億,但這個小小的目標至少也是對自己的一個短期成長促進。
重新激活公眾號,作為開篇,寫點啥呢?公眾號之前的名稱叫【技術(shù)大全】,覺得這個名稱范圍太大,一時間也很難讓公眾號的內(nèi)容涉及到技術(shù)方方面面,于是思考良久,在上周重新定位了公眾號的受眾和作用,改名為:【測試開發(fā)技術(shù)】,旨在圍繞分享以質(zhì)量保障技術(shù)、測試開發(fā)技術(shù)實踐及行業(yè)發(fā)展、工作思考等。既然公眾號取名為:測試開發(fā)技術(shù),作為開篇,不妨先聊聊分享一些筆者對于測試開發(fā)崗位及工作的一些理解。
測試開發(fā)是近幾年行業(yè)中一個流行詞,但有很多人并不太理解測試開發(fā)的工作和意義,認為測試開發(fā)崗就是整天寫寫自動化測試、開發(fā)出一些高大上的測試平臺、測試工具出來。并且從近幾年行業(yè)發(fā)展趨勢來看,越來越多的公司都設(shè)立了專門的測試開發(fā)團隊,也因此越來越多的傳統(tǒng)手工測試從業(yè)人員都想轉(zhuǎn)型到測試開發(fā)崗。
手工測試從業(yè)人員想轉(zhuǎn)型成為測試開發(fā),從想法上并沒有錯,所謂“人往高處走”,但很多人轉(zhuǎn)型前,并不理解測試開發(fā)真正意義是干什么的,甚至不明白自己為什么要轉(zhuǎn)型,大多數(shù)人是看到現(xiàn)在行業(yè)中越來越多的人往測試開發(fā)崗轉(zhuǎn)型,因此也跟著隨波逐流罷了,這一類人我暫且稱之為行業(yè)跟風(fēng)者。另一類想轉(zhuǎn)型的,我想無為乎兩方面:
一方面手工測試做膩了,認為測試開發(fā)不需要參與業(yè)務(wù)測試,從而擺脫功能“點點點”的苦日子。
另一方面,來自測試開發(fā)崗高薪資的誘惑,認為轉(zhuǎn)型成為測試開發(fā)崗,就能拿到高薪,從而擺脫屌絲,迎娶白富美,成為人生贏家。下圖是部分互聯(lián)網(wǎng)公司測試開發(fā)崗薪資區(qū)間(從薪資區(qū)間來看僅是中高級的測試開發(fā)崗),可以看出,相對于傳統(tǒng)手工功能型測試人員的薪資來說,這個薪資范圍確實有一定誘惑力。
在談測試開發(fā)是干什么之前,我們先思考一下,早期軟件行業(yè)中只能看見測試工程師、開發(fā)工程師這類的職位,為什么近幾年冒出一個測試開發(fā)工程師?這個崗位是怎么產(chǎn)生的,它的存在意義是什么,這個崗位的存在真的有必要嗎?(這幾個問題歡迎讀者下言留言討論)
相信大家都能感受到,當(dāng)今互聯(lián)網(wǎng)行業(yè),特別是從2012年之后,各種新技術(shù)和新概念層出不窮,例如:移動互聯(lián)網(wǎng)、人工智能、大數(shù)據(jù)、云計算、區(qū)塊鏈、微服務(wù)等,隨著各種新技術(shù)和新產(chǎn)業(yè)不斷涌現(xiàn),軟件測試的理論、流程、工具、技術(shù)、需求等都隨之發(fā)生了變化。這些新技術(shù)和新概念給軟件質(zhì)量保障帶來了巨大的挑戰(zhàn)。
同時企業(yè)對軟件質(zhì)量的要求也不斷提高,這也給從事軟件測試工作的工程師帶來了很大的壓力。 早年軟件測試追求的基本都是大而全,而現(xiàn)如今軟件交付的周期越來越短,用戶對產(chǎn)品的質(zhì)量要求也越來越高,軟件測試追求的也演變成了基于風(fēng)險驅(qū)動的精準測試策略:一方面強調(diào)測試的”左移“,即需要開發(fā)人員在早期更多地參與到軟件測試的活動中,另一方面強調(diào)測試要遵循”少就是多“的原則,在不犧牲產(chǎn)品質(zhì)量的前提下節(jié)約成本,科學(xué)合理地縮小測試的覆蓋率,這些都對軟件測試從業(yè)人員提出了不小的挑戰(zhàn)。
傳統(tǒng)的測試從業(yè)人員大多都只關(guān)注業(yè)務(wù)功能測試,俗稱“點點點”純黑盒測試,他們當(dāng)中大多數(shù)人并不了解開發(fā)知識,不理解業(yè)務(wù)技術(shù)架構(gòu)實現(xiàn),不知道甚至沒有想過該如何讓自己提能增效從大量重復(fù)的工作中解放出來。而軟件測試作為保證軟件質(zhì)量的有效手段和途徑,要想有效和高效地保障軟件質(zhì)量并不容易,它涉及多方面因素,包括對軟件質(zhì)量的認知、軟件測試技術(shù)和方法、軟件測試管理、軟件測試過程和過程改進、測試工具的支持、測試環(huán)境的搭建和管理等,這些都需要軟件測試人員不斷探索新的、合適的測試方法,并從測試過程本身的改進去適應(yīng)新的技術(shù)和發(fā)展。
軟件質(zhì)量作為軟件成功的決定性因素之一,隨著對軟件開發(fā)周期要求越來越高,為了又快又好地交付軟件,行業(yè)或者各個公司里,需要有一類人,能在這種新技術(shù)變革推動以及業(yè)務(wù)快速迭代發(fā)展之下,仍然可以科學(xué)合理、精準高效的保障產(chǎn)品質(zhì)量,相信這個也是大部分公司設(shè)立測試開發(fā)團隊最原始的原因。
正如前面談到的,很多人認為測試開發(fā)崗就是整天寫寫自動化測試代碼、開發(fā)出一些高大上的測試平臺、測試工具出來就行了。不可否認,測試開發(fā)工程師在實際工作過程中,確實需要結(jié)合團隊及業(yè)務(wù)現(xiàn)狀,設(shè)計開發(fā)出一些自動化測試框架、測試工具或者平臺,但這些絕對不是測試開發(fā)工程師工作的全部。
甚至還有些人認為,測試開發(fā)不用去關(guān)注業(yè)務(wù),不用去理解參與業(yè)務(wù)需求,他們只關(guān)注如何實現(xiàn)預(yù)先設(shè)計的功能,而完全不關(guān)心所開發(fā)的測試框架和工具平臺在測試中的具體應(yīng)用場景。如果是這一類的人,即便他的開發(fā)能力再強,但他的核心能力還是開發(fā),并不能勝任測試開發(fā)崗位。
一名合格的測試開發(fā)工程師一定可以成為合格的開發(fā)工程師,但是合格的開發(fā)工程師不一定會成為合格的測試開發(fā)工程師。
當(dāng)前因公司、團隊現(xiàn)狀的不同,測試開發(fā)主要分為兩類:
一類是基于業(yè)務(wù)驅(qū)動型的測試開發(fā),這類型測試開發(fā),或者可以理解為就是業(yè)務(wù)測試工程師,只是多具備了開發(fā)能力和質(zhì)量改進思維。他們需要扎進業(yè)務(wù)中,主動去挖掘業(yè)務(wù)過程各個環(huán)節(jié)質(zhì)量的薄弱點并想法設(shè)想解決,并且通過流程改進、開發(fā)出得心趁手的工具,讓自己測試工作能持續(xù)高效。(現(xiàn)在大部分一線互聯(lián)網(wǎng)大廠的測試開發(fā)工程師都是屬于這個類型:50%測業(yè)務(wù)、50%進行效率改進)
另一類,是基于框架平臺型的測試開發(fā),這類型測試開發(fā),需要站點更高的維度來看待產(chǎn)品質(zhì)量,他們會針對研發(fā)整體過程或某個大的專項去開發(fā)設(shè)計出一些測試平臺、框架,并將其這些能力以服務(wù)的形態(tài)提供給各個業(yè)務(wù)線使用,以此來保障全局內(nèi)建質(zhì)量。
但不管是哪一類,測試開發(fā)崗位的核心其實仍是”測試“,”開發(fā)“的目的是更好的服務(wù)于測試,測試開發(fā)應(yīng)該看重的是對測試的理解,以及在此基礎(chǔ)上設(shè)計、能開發(fā)設(shè)計出幫助測試人員或開發(fā)、運維人員提高效率并解決實際業(yè)務(wù)問題的工具。
關(guān)于測試開發(fā)崗位的工作職責(zé)范圍,不同公司之間會存在一定的差異,但不妨參考一下現(xiàn)在一些知名互聯(lián)網(wǎng)公司對測試開發(fā)崗的職位范圍描述。(如下供參考)
既然是測試開發(fā)工程師,那么代碼開發(fā)能力是最基本的要求?。?!除了代碼開發(fā)能力之外,測試開發(fā)工程師還需要具備分析測試系統(tǒng)需求的能力,系統(tǒng)質(zhì)量風(fēng)險識別能力,要能夠站在測試架構(gòu)師的高度,識別出測試基礎(chǔ)架構(gòu)的需求,提出提高效率的方法。
另外,測試開發(fā)工程師需要具備非常廣的知識面,因為它不僅需要和開發(fā)工程師打交道,還要和CI/CD、運維工程師有緊密的聯(lián)系。除此之外,還要能對測試架構(gòu)部署、生產(chǎn)架構(gòu)部署所采用的各種技術(shù)非常熟悉。
關(guān)于測試開發(fā)崗位的能力要求,不同公司以及職級(專家、資深、高級、中級、初級)的不同,能力要求也會有所不一樣,下面列舉了幾家知名互聯(lián)網(wǎng)公司對測試開發(fā)職位能力的要求描述。(可作參考)
從上面附圖中列舉的能力要求中,可以看出,對于測試開發(fā)工程師來說,開發(fā)能力已經(jīng)成為最基礎(chǔ)的能力要求了,前兩年行業(yè)一直在流行全棧工程師,可以很肯定地說,一名優(yōu)秀的測試開發(fā)工程師是最能接近全棧工程師能力的人。當(dāng)然能力越大,能從企業(yè)獲取回來的薪資也越高!
關(guān)于如何打造提升自己測試開發(fā)能力,推薦給大家一個學(xué)習(xí)進階專欄《軟件測試52講》:
專欄的作者茹炳晟曾在世界五百強公司擔(dān)任資深測試架構(gòu)師,專欄內(nèi)容非常全面(深入講解自動化測試、性能測試和測試架構(gòu)設(shè)計的核心原理,帶你從軟件測試的“小工”進階為“專家”。),實戰(zhàn)性強 ,推薦讀者可以訂閱學(xué)習(xí)一下 筆者自己也有訂閱 內(nèi)容確實值得推薦!
如果需要的,大家可以掃下方的二維碼,目前訂閱優(yōu)惠中,只需要65元(超值專欄)?。?!
今天的測試工程師不再只是充當(dāng)產(chǎn)品質(zhì)量的”守門員“,更是掌握多種技能和知識的全能選手,他們既要熟練運用測試領(lǐng)域的相關(guān)技術(shù),又要對產(chǎn)品開發(fā)全流程中每個環(huán)節(jié)都要有所了解,現(xiàn)時還要及時領(lǐng)會相關(guān)行業(yè)里的最新技術(shù)及其發(fā)展趨勢,因此,對從業(yè)者學(xué)習(xí)能力的要求越來越高。
作為產(chǎn)品研發(fā)中的一個重要環(huán)節(jié),測試質(zhì)量直接影響產(chǎn)品交付的質(zhì)量,隨著互聯(lián)網(wǎng)的發(fā)展,測試的場景越來越復(fù)雜,這些對軟件質(zhì)量保障工作都帶來了越來越大的挑戰(zhàn)。此外,產(chǎn)品的迭代速度對于企業(yè)來說是核心競爭力之一,怎樣通過自動化、工具化、平臺化的建設(shè)提升測試的效率顯得尤為重要。不管是測試工程師還是測試開發(fā)工程師,第一要責(zé)都是需要通過高效的策略手段,來保障產(chǎn)品交付質(zhì)量。