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