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