軟件測試員的未來在哪裡?作為程序員隊列的我們只是曇花一現嗎?

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

作為一名軟件測試從業者,如果以下幾點能引發您的共鳴,那麼你就應該在讀完這篇文章的那一刻起,樹立起強烈的危機意識。

一、長期處於舒適區,不願突破瓶頸

美國心理學家Noel Tichy(諾爾·迪奇)曾提出一個引人深思的行為改變理論,即把個人行為改變等級分為舒適區、學習區、恐慌區3大區,事實上,這個理論適用於任何行業的工作者。

軟件測試員的未來在哪裡?作為程序員隊列的我們只是曇花一現嗎?

舒適區:即自己擅長、幹起來沒那麼費勁的事情,心裡感到舒適。

學習區:對自己來說有一定挑戰的事,需要整合一些自己能力範圍外的資源。

恐慌區:遠遠超出自己的能力範圍,感到恐懼及焦慮,可能崩潰以致放棄學習。

走出舒適區並不是一件容易的事,即使處於學習區,大多數人也很難擁有十年如一日的求知慾。學習是一個漫長積累的過程,只有長期讓自己處於學習區,才能不斷擴大自己的舒適區,並把一部分恐慌區也變為相應的學習區,才能不斷提升自己的核心競爭力,最後成為“牛逼”的人物。

就軟件測試行業而言,功能測試員的舒適區是更多是業務方面的黑盒測試、案例編寫、提交bug等,學習區就是灰盒測試或業務深廣度的積累,恐慌區可能就是白盒測試、測試環境搭建了。同理,對於測試開發角色,舒適區是常用框架及技術的運用,學習區可能更多是偏向於業務的理解或技術的深度探究。仔細想想,如果功能測試人員及測試開發人員每天的工作都是遊離於舒適區,短期內可能不會有影響,但從長遠來看,也很難有好的發展。

當然,並沒有完全否定舒適區,任何一個區間狀態都有其價值,我們潛意識需要一個有較少焦慮和壓力的空間,這樣當離開它的時候我們才能有所獲益。

二、身處穩定安逸的工作環境,卻長時間都在原地踏步

其實第一點的行為改變理論也可以很好的闡述以上話題,但還是想跟單列出來跟同行們聊聊。

說到穩定安逸,曾身處大型國有企業多年的筆者感觸尤為深刻。不可否認大國企的許多優勢是中小企業望塵莫及的,以下僅列出筆者的幾點愚見。

軟件測試員的未來在哪裡?作為程序員隊列的我們只是曇花一現嗎?

1、完善的管理制度和研發流程。

2、完善的員工培訓體系。

3、強大的產品支撐,行業標杆。

4、不錯的福利。時不時發點油鹽、生活用品、服裝費等。

5、員工歸宿感更強(可能也是因為第3點的福利吧,哈哈)。

既然咱們要聊危機感,那就必須談談大國企對個人(測試員)發展所帶來的限制,以筆者老東家為例,有共鳴的同行請對號入座。

1、測試工具自主研發,辦公軟件設置黑白名單。如果你只是一名使用工具進行測試的美女子或俊男子,工作幾年後你會發現,行業盛行的Jmeter、postman、selenium、robot framework、appium等工具,你一個也不會。這裡可能有人會提出質疑了,要怪也只能怪自己沒有去學,但筆者想說的是,身處穩定的大國企,如果沒想著跳槽,真沒幾個人會去學這些東西,學了也用不上,唯一能安慰自己的是去學習各類工具的理念,然後再自主研發工具在工作中推廣,但是我們都知道研發工具對許多測試人員來說就屬於恐慌區了。

3、重複勞動。人在某個崗位待上一段時間,總會發現每天的工作只不過是遵循著與昨日相同的慣例,如果未能突破瓶頸,必然只能原地踏步。以一名功能測試人員為例,每一階段的工作必定是需求分析—案例編寫—案例評審—測試—bug提交—測試報告,日復一日,變化的是需求,不變的是工作方式。筆者也接觸過不少測試的童鞋,有些人的重複勞動,能成為某一業務線的測試骨幹,因為其思考比常人更有深度和廣度。而有些人卻只能遊離於表面,因為他們只是應付完成工作而已,並不習慣深入思考和總結,應樹立起危機感的正是這類人。

4、資產保密。俗話有說“生不帶來,死不帶去”,但在大型國企,比這個更慘一些,那就是“在職帶來的,離職也帶不走”,畢竟大型國企異常注重資產的保密性,比如局域網辦公、安全軟件監控、外發郵件需特批、U盤拷貝資料監控、資料打印監控等等。更讓人吐槽的是,你工作幾年辛辛苦苦積累的資料,離職時發現根本帶不走。

“溫水煮青蛙”的道理大家都懂,身處穩定安逸的工作環境,大部分人會逐漸喪失上進心,畢竟等到成了家、有了孩子、上了年紀後,還有多少人有勇氣去適應另一個環境呢? 筆者始終覺得作為一名測試人員,更應該多想想,你工作8年、10年,相比工作3年、5年的同行優勢在哪?

 三、未能找準自我定位

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

軟件測試員的未來在哪裡?作為程序員隊列的我們只是曇花一現嗎?

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

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

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

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

軟件測試員的未來在哪裡?作為程序員隊列的我們只是曇花一現嗎?

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

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

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

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

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

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

3、掌握操作系統、數據庫、網絡知識等。

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

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

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

1、要使用別具一格的視角來審視需要測試的軟件。

2、要改變測試中模擬的對象。

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編程等,還需要花更多的精力去深入學習,當每項技能都能掌握到一定深度,才能稱為一個完整的知識體系。

 五、立足當下,卻未能放眼未來。

軟件測試員的未來在哪裡?作為程序員隊列的我們只是曇花一現嗎?

當前,區塊鏈、大數據、人工智能等領域的發展日趨成熟,可以預見這些領域的測試需求在未來也是異常巨大,作為測試的您是否已經做好了準備?另外,ThoughtWorks 2015-2018發佈的技術雷達分析了軟件行業測試發展新趨勢,筆者特摘錄一部分與各位同行共勉。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

致:所有日夜奮鬥的程序員!

有不同的看法請在下方留言!


分享到:


相關文章: