1. 程式人生 > >一文帶你搞懂什麼是測試開發!

一文帶你搞懂什麼是測試開發!

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)