1. 程式人生 > 其它 >一個8年軟體測試工程師的經驗分享——軟體測試工程師必看!!!

一個8年軟體測試工程師的經驗分享——軟體測試工程師必看!!!

混跡於測試行業這麼長時間了,一直想寫一篇關於軟體測試的經驗分享的文章,但苦於工作原因遲遲未下筆。最近終於有了些閒餘時間,遂決定把自己的心路歷程及所感所想記錄下來,與各位同行共勉。

軟體測試究竟是做什麼的呢?


軟體測試是為了發現錯誤而執行程式的過程。或者說,軟體測試是根據軟體開發各階段的規格說明和程式的內部結構而精心設計一批測試用例(即輸入資料及其預期的輸出結果),並利用這些測試用例去執行程式,以發現程式錯誤的過程。

簡而言之就是證明程式的正確性,檢察系統是否滿足使用者需求,發現bug,證明程式有錯。(劃重點:找bug不是改bug哦~)


軟體測試前景又如何?


• 軟體測試工程師行業前景好、職業壽命長:根據相關招聘網站釋出的最新一期的IT職場人氣排行榜,其中軟體測試工程師、高階程式設計師、產品專案經理等高薪職位進入”三甲”,成為IT就業市場最新風向標。隨著專案經驗的增加,專案從業經驗越久經歷的專案越豐富,就更具有核心競爭力。


• 軟體測試工程師職業空間大、發展方向多元化:頂測科技所培養的軟體測試人員不僅僅侷限於通訊及網際網路、應用軟體二大行業,在金融及其他行業都佔有一定的比量,行業範圍非常廣。同時由於工作的特殊性,測試人員不但需要對軟體的質量進行檢測,而且對於軟體專案的立項、管理、售前、售後等領域都要涉及。向上可以發展成為測試經理、質量經理,橫向可以發展成為專案經理等。

好了說完了軟體測試的概念和前景該說說自身了。


自我定位

在踏入軟體測試行業的前幾年,不少測試人員會陷入迷茫期,主要是對職業發展方向不清晰。網上很多談軟體測試人員職業發展方向及核心競爭力的文章,也確實能為各位測試同行提供不錯的建議。作為一名軟體測試從業者,也曾迷茫過,準確的說直至2016年才真正找準自我定位,在此就“自我定位”這個話題談談自己的一些看法。

筆者小何曾接觸不少測試同行,偶爾會聽到測試人員抱怨沒有得到應有的認可,主要體現在以下幾個方面:


1、被人覺得測試工作沒有技術含量,相比開發,測試更像是一門體力活。


2、測試人員缺乏相關的技術背景,慢慢形成了有事找開發的工作模式。


3、大部分測試人員只專注於工作的完成度,缺乏更深度的思考和總結,比如如何提高測試效率、如何對業務進行連貫性總結等。

以上三點,提到了兩個關鍵詞,“技術”和“業務”。結合《google軟體測試之道》及看法,把測試人員的定位區分如下。

功能測試:理論上說,該定位的測試人員應該是對業務需求理解最透徹的群體,專注於使用者角度的測試,組織整體質量實踐,分析測試執行結果,驅動測試執行。當然除了業務技能過硬,常用的測試工具也是必須掌握的。


功能測試人員下一階段的的發展軌跡一般是測試經理崗位,因為很多公司的測試經理並不要求具備很強的技術能力,測試經理更看重的是協調溝通、統籌全域性、目標管理、執行管理等能力。

效能測試:相比功能測試人員,效能測試人員對業務的理解相對沒那麼深入,其更偏向於技術的運用及資料分析,目的是找出系統瓶頸。效能測試是一個缺口比較大的崗位,最大的原因是由於對測試人員要求較高,市面上的優秀人才相對較少。我們不妨看看拉勾、獵聘、boss直聘等招聘網站對效能測試人員的常見要求。


1、對經驗尤為看重,一般要求3年以上的效能測試經驗。


2、熟練掌握主流的效能測試工具,Jmeter、LR等。


3、掌握作業系統、資料庫、網路知識等。


4、能夠獨立規劃和組織效能測試,搭建效能測試環境;能夠設計效能測試場景,分析效能問題,定位系統瓶頸。

結合自身的工作經歷及調研,筆者整理了效能測試需具備的技能,歡迎各位同行拍磚。


安全測試:提到這個崗位,估計很多小夥伴也只是遊離於“安全”兩字的字面理解。但筆者想說的是,安全測試是異常複雜的,一個專業的安全測試專家在某種程度上來說就是一個全棧工程師,需具備以下專業素養(部分內容引用《為什麼不推薦去做安全測試工程師》《致測試同仁們:讓我們一起做安全測試吧》)。

如果對軟體測試有興趣,想了解更多的測試知識,解決測試問題,以及入門指導,幫你解決測試中遇到的困惑,我們這裡有技術高手。如果你正在找工作或者剛剛學校出來,又或者已經工作但是經常覺得難點很多,覺得自己測試方面學的不夠精想要繼續學習的,想轉行怕學不會的,都可以加入我們914172719 或者關注我們的公眾號【傷心的辣條】。


群內可領取最新軟體測試大廠面試資料和Python自動化、介面、框架搭建學習資料!

1、要使用別具一格的視角來審視


3、使用專用的測試工具。


4、瞭解安全漏洞的原理。


5、瞭解安全漏洞的測試方法及防範知識。


6、掌握上圖中“效能測試主要技能”的相關知識。


筆者畢竟不是從事安全測試崗位的工作,以上理解也可能存在偏差,歡迎相關童鞋指正。


測試開發:工作重心在可測試性和通用測試基礎框架上,編寫單元測試框架和自動化測試框架,關注質量的提升和測試覆蓋率,持續整合實施等。除了具備業務技能,不同崗位對技術要求也不一樣。

測試架構師:可以說該崗位屬於測試人員職業發展金字塔的頂端了,這也是筆者努力的方向。關於測試架構師所需具備的專業素養,有興趣的童鞋可以拜讀一下《一個測試架構師工作心得》這篇文章。總而言之,萬丈高樓平地起,作為一名軟體測試人員,只有不斷的學習、積累,才能邁向金字塔頂端。


另外,除了以上描述的發展定位,筆者經過多年的思索,感悟出了一套測試人員價值理論,越往上,價值越大,當然收入也會越高_,希望能對各位同行的發展有所幫助。

1、基本技能,編寫案例,發現bug等。每一個軟體測試人員必須具備的,毋庸置疑。

2、識別盲點,發現深層次的問題。這一層次更看重的是個人經驗及思維方式,工作1年和工作5年的測試員對同一需求理解的深度和廣度肯定有差距。

3、發現痛點,提升團隊效率。該層次更多是能站在團隊角度思考,通過分析團隊痛點,整合資源來改善團隊工作模式,提升測試效率。筆者在文章《如何使用Jmeter提高介面測試效率》中提到的工作方法正是從提升團隊效率角度出發。

4、建立個人品牌,授人予漁,愚教於樂。該層次的人在某個領域已經具備了比較深度的知識體系,其通過部落格、雲課堂、線下培訓等渠道面向大眾傳授知識,並掙取一定的費用,從而實現職業與財富自由。

5、創新,整合資源,改善行業工作的方式。單憑個人的能力很難達到該層次,所以往往是指某些公司或組織。比如現在盛行的各類雲測平臺、DevOps等。


廣而不精,未能形成知識體系


很多測試人員喜歡在簡歷上寫著精通各類測試工具,比如Jmeter、selenium、robot framework等,結果面試的時候,自己卻只能卻只能遊離於工具框架的基本使用,並沒有深入去了解工具的精髓,這就是我們所講的廣而不精。


一切工具的運用說到底是為了提高效率和保證質量,測試行業很推崇自動化測試,下面就以jmeter為例,來闡述如何建立知識體系。

在開展這個話題前,我們先來簡單說說有名的GROW模型,筆者的知識體系建立也是以該模型為基礎。


G(Goal setting):目標。


R(Reality Check):現狀分析。


O(Options):解決方案。


W(Way Forward):行動計劃。


16年跳槽到新公司後,本人確定了一個目標,那就是在測試組建立一體化測試管理體系(自動化測試+缺陷管理+案例管理整合)。通過對測試組工作內容(後臺介面測試)及工作方式(傳統手工測試)的分析,在對比postman、jmeter、soupui等介面測試工具的優劣勢後,最終敲定使用jmeter作為測試組的自動化測試工具,主要原因是Jmeter支援外部jar包的方法呼叫,而筆者剛好有一定的java基礎。依賴於jmeter提供的csv data config功能,我們採用資料驅動測試的模式,但是很快就碰到難題了,那就是jmeter的察看結果樹對每個請求都是單獨展現的,如果同時執行上百條測試案例,檢查結果對測試人員來說無疑是個噩夢,於是,筆者致力於解決該問題,並把Jmter+jira+Testlink進行整合,最終我們形成了以下的測試體系。


一體化測試管理體系的建立僅是筆者推廣半自動化測試的開始,結合docker、moutebank等技術,筆者搭建了持續整合環境,進一步提升了迴歸測試的效率,同時高效地進行質量監控。


以上筆者的經歷更像一張橫向的知識網,因為其中用到jenkins、docker、moutebank、java程式設計等,還需要花更多的精力去深入學習,當每項技能都能掌握到一定深度,才能稱為一個完整的知識體系。

最後: 可以在公眾號:傷心的辣條 ! 免費領取一份216頁軟體測試工程師面試寶典文件資料。以及相對應的視訊學習教程免費分享!,其中包括了有基礎知識、Linux必備、Shell、網際網路程式原理、Mysql資料庫、抓包工具專題、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試、安全測試等。

如果我的部落格對你有幫助、如果你喜歡我的部落格內容,請 “點贊” “評論” “收藏” 一鍵三連哦!喜歡軟體測試的小夥伴們,可以加入我們的測試技術交流扣扣群:914172719(裡面有各種軟體測試資源和技術討論)