筆者混跡于測試行業(yè)挺長一段時間了,一直想寫一篇關(guān)于軟件測試人員危機感的文章,但苦于工作原因遲遲未下筆。最近終于有了些閑余時間,遂決定把自己的心路歷程及所感所想記錄下來,與各位同行共勉。
作為一名軟件測試從業(yè)者,如果以下幾點能引發(fā)您的共鳴,那么你就應該在讀完這篇文章的那一刻起,樹立起強烈的危機意識。
一、長期處于舒適區(qū),不愿突破瓶頸
美國心理學家Noel Tichy(諾爾·迪奇)曾提出一個引人深思的行為改變理論,即把個人行為改變等級分為舒適區(qū)、學習區(qū)、恐慌區(qū)3大區(qū),事實上,這個理論適用于任何行業(yè)的工作者。
舒適區(qū):即自己擅長、干起來沒那么費勁的事情,心里感到舒適。
學習區(qū):對自己來說有一定挑戰(zhàn)的事,需要整合一些自己能力范圍外的資源。
恐慌區(qū):遠遠超出自己的能力范圍,感到恐懼及焦慮,可能崩潰以致放棄學習。
行為改變理論
走出舒適區(qū)并不是一件容易的事,即使處于學習區(qū),大多數(shù)人也很難擁有十年如一日的求知欲。學習是一個漫長積累的過程,只有長期讓自己處于學習區(qū),才能不斷擴大自己的舒適區(qū),并把一部分恐慌區(qū)也變?yōu)橄鄳膶W習區(qū),才能不斷提升自己的核心競爭力,最后成為“牛逼”的人物。
就軟件測試行業(yè)而言,功能測試員的舒適區(qū)是更多是業(yè)務方面的黑盒測試、案例編寫、提交bug等,學習區(qū)就是灰盒測試或業(yè)務深廣度的積累,恐慌區(qū)可能就是白盒測試、測試環(huán)境搭建了。同理,對于測試開發(fā)角色,舒適區(qū)是常用框架及技術(shù)的運用,學習區(qū)可能更多是偏向于業(yè)務的理解或技術(shù)的深度探究。仔細想想,如果功能測試人員及測試開發(fā)人員每天的工作都是游離于舒適區(qū),短期內(nèi)可能不會有影響,但從長遠來看,也很難有好的發(fā)展。
當然,筆者并沒有完全否定舒適區(qū),任何一個區(qū)間狀態(tài)都有其價值,我們潛意識需要一個有較少焦慮和壓力的空間,這樣當離開它的時候我們才能有所獲益。
二、身處穩(wěn)定安逸的工作環(huán)境,卻長時間都在原地踏步
其實第一點的行為改變理論也可以很好的闡述以上話題,但作者還是想跟單列出來跟同行們聊聊。
說到穩(wěn)定安逸,曾身處大型國有企業(yè)多年的筆者感觸尤為深刻。不可否認大國企的許多優(yōu)勢是中小企業(yè)望塵莫及的,以下僅列出筆者的幾點愚見。
1、完善的管理制度和研發(fā)流程。
2、完善的員工培訓體系。
3、強大的產(chǎn)品支撐,行業(yè)標桿。
4、不錯的福利。時不時發(fā)點油鹽、生活用品、服裝費等。
5、員工歸宿感更強(可能也是因為第3點的福利吧,哈哈)。
既然咱們要聊危機感,那就必須談談大國企對個人(測試員)發(fā)展所帶來的限制,以筆者老東家為例,有共鳴的同行請對號入座。
1、測試工具自主研發(fā),辦公軟件設置黑白名單。如果你只是一名使用工具進行測試的美女子或俊男子,工作幾年后你會發(fā)現(xiàn),行業(yè)盛行的Jmeter、postman、selenium、robot framework、appium等工具,你一個也不會。這里可能有人會提出質(zhì)疑了,要怪也只能怪自己沒有去學,但筆者想說的是,身處穩(wěn)定的大國企,如果沒想著跳槽,真沒幾個人會去學這些東西,學了也用不上,唯一能安慰自己的是去學習各類工具的理念,然后再自主研發(fā)工具在工作中推廣,但是我們都知道研發(fā)工具對許多測試人員來說就屬于恐慌區(qū)了。
2、IBM大型主機。你聽過cobol語言么?你用過clearcase版本管理工具么?我想大部分童鞋看到以上兩個詞匯都趕緊去百度了。但是如果說起git、svn等版本管理工具,估計大家一點都不陌生。換個角度想想,當別人問你git的基本使用時,你卻跟他談clearcase,是不是有點不合常理。當你在侃侃而談cobol時,面試官卻一臉茫然。毫無疑問,以上的技能能為你加分,但也限制了你擇業(yè)的范圍。
3、重復勞動。人在某個崗位待上一段時間,總會發(fā)現(xiàn)每天的工作只不過是遵循著與昨日相同的慣例,如果未能突破瓶頸,必然只能原地踏步。以一名功能測試人員為例,每一階段的工作必定是需求分析—案例編寫—案例評審—測試—bug提交—測試報告,日復一日,變化的是需求,不變的是工作方式。筆者也接觸過不少測試的童鞋,有些人的重復勞動,能成為某一業(yè)務線的測試骨干,因為其思考比常人更有深度和廣度。而有些人卻只能游離于表面,因為他們只是應付完成工作而已,并不習慣深入思考和總結(jié),應樹立起危機感的正是這類人。
4、資產(chǎn)保密。俗話有說“生不帶來,死不帶去”,但在大型國企,比這個更慘一些,那就是“在職帶來的,離職也帶不走”,畢竟大型國企異常注重資產(chǎn)的保密性,比如局域網(wǎng)辦公、安全軟件監(jiān)控、外發(fā)郵件需特批、U盤拷貝資料監(jiān)控、資料打印監(jiān)控等等。更讓人吐槽的是,你工作幾年辛辛苦苦積累的資料,離職時發(fā)現(xiàn)根本帶不走。
“溫水煮青蛙”的道理大家都懂,身處穩(wěn)定安逸的工作環(huán)境,大部分人會逐漸喪失上進心,畢竟等到成了家、有了孩子、上了年紀后,還有多少人有勇氣去適應另一個環(huán)境呢? 筆者始終覺得作為一名測試人員,更應該多想想,你工作8年、10年,相比工作3年、5年的同行優(yōu)勢在哪?
三、未能找準自我定位
在踏入軟件測試行業(yè)的前幾年,不少測試人員會陷入迷茫期,主要是對職業(yè)發(fā)展方向不清晰。網(wǎng)上很多談軟件測試人員職業(yè)發(fā)展方向及核心競爭力的文章,也確實能為各位測試同行提供不錯的建議。作為一名軟件測試從業(yè)者,筆者也曾迷茫過,準確的說直至2016年才真正找準自我定位,在此筆者就“自我定位”這個話題談談自己的一些看法。
筆者曾接觸不少測試同行,偶爾會聽到測試人員抱怨沒有得到應有的認可,主要體現(xiàn)在以下幾個方面:
1、被人覺得測試工作沒有技術(shù)含量,相比開發(fā),測試更像是一門體力活。
2、測試人員缺乏相關(guān)的技術(shù)背景,慢慢形成了有事找開發(fā)的工作模式。
3、大部分測試人員只專注于工作的完成度,缺乏更深度的思考和總結(jié),比如如何提高測試效率、如何對業(yè)務進行連貫性總結(jié)等。
以上三點,提到了兩個關(guān)鍵詞,“技術(shù)”和“業(yè)務”。結(jié)合《google軟件測試之道》及筆者的看法,把測試人員的定位區(qū)分如下。
功能測試:理論上說,該定位的測試人員應該是對業(yè)務需求理解最透徹的群體,專注于用戶角度的測試,組織整體質(zhì)量實踐,分析測試運行結(jié)果,驅(qū)動測試執(zhí)行。當然除了業(yè)務技能過硬,常用的測試工具也是必須掌握的。
功能測試主要技能
功能測試人員下一階段的的發(fā)展軌跡一般是測試經(jīng)理崗位,因為很多公司的測試經(jīng)理并不要求具備很強的技術(shù)能力,測試經(jīng)理更看重的是協(xié)調(diào)溝通、統(tǒng)籌全局、目標管理、執(zhí)行管理等能力。
性能測試:相比功能測試人員,性能測試人員對業(yè)務的理解相對沒那么深入,其更偏向于技術(shù)的運用及數(shù)據(jù)分析,目的是找出系統(tǒng)瓶頸。性能測試是一個缺口比較大的崗位,最大的原因是由于對測試人員要求較高,市面上的優(yōu)秀人才相對較少。我們不妨看看拉勾、獵聘、boss直聘等招聘網(wǎng)站對性能測試人員的常見要求。
1、對經(jīng)驗尤為看重,一般要求3年以上的性能測試經(jīng)驗。
2、熟練掌握主流的性能測試工具,Jmeter、LR等。
3、掌握操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡知識等。
4、能夠獨立規(guī)劃和組織性能測試,搭建性能測試環(huán)境;能夠設計性能測試場景,分析性能問題,定位系統(tǒng)瓶頸。
結(jié)合自身的工作經(jīng)歷及調(diào)研,筆者整理了性能測試需具備的技能,歡迎各位同行拍磚。
性能測試主要技能
安全測試:提到這個崗位,估計很多童鞋也只是游離于“安全”兩字的字面理解。但筆者想說的是,安全測試是異常復雜的,一個專業(yè)的安全測試專家在某種程度上來說就是一個全棧工程師,需具備以下專業(yè)素養(yǎng)(部分內(nèi)容引用《為什么不推薦去做安全測試工程師》《致測試同仁們:讓我們一起做安全測試吧》)。
1、要使用別具一格的視角來審視需要測試的軟件。
2、要改變測試中模擬的對象。
3、使用專用的測試工具。
4、了解安全漏洞的原理。
5、了解安全漏洞的測試方法及防范知識。
6、掌握上圖中“性能測試主要技能”的相關(guān)知識。
筆者畢竟不是從事安全測試崗位的工作,以上理解也可能存在偏差,歡迎相關(guān)童鞋指正。
測試開發(fā):工作重心在可測試性和通用測試基礎框架上,編寫單元測試框架和自動化測試框架,關(guān)注質(zhì)量的提升和測試覆蓋率,持續(xù)集成實施等。除了具備業(yè)務技能,不同崗位對技術(shù)要求也不一樣。
測試架構(gòu)師:可以說該崗位屬于測試人員職業(yè)發(fā)展金字塔的頂端了,這也是筆者努力的方向。關(guān)于測試架構(gòu)師所需具備的專業(yè)素養(yǎng),有興趣的童鞋可以拜讀一下《一個測試架構(gòu)師工作心得》這篇文章??偠灾?,萬丈高樓平地起,作為一名軟件測試人員,只有不斷的學習、積累,才能邁向金字塔頂端。
另外,除了以上描述的發(fā)展定位,筆者經(jīng)過多年的思索,感悟出了一套測試人員價值理論,越往上,價值越大,當然收入也會越高^_^,希望能對各位同行的發(fā)展有所幫助。
測試人員價值理論
1、基本技能,編寫案例,發(fā)現(xiàn)bug等。每一個軟件測試人員必須具備的,毋庸置疑。
2、識別盲點,發(fā)現(xiàn)深層次的問題。這一層次更看重的是個人經(jīng)驗及思維方式,工作1年和工作5年的測試員對同一需求理解的深度和廣度肯定有差距。
3、發(fā)現(xiàn)痛點,提升團隊效率。該層次更多是能站在團隊角度思考,通過分析團隊痛點,整合資源來改善團隊工作模式,提升測試效率。筆者在文章《如何使用Jmeter提高接口測試效率》中提到的工作方法正是從提升團隊效率角度出發(fā)。
4、建立個人品牌,授人予漁,愚教于樂。該層次的人在某個領(lǐng)域已經(jīng)具備了比較深度的知識體系,其通過博客、云課堂、線下培訓等渠道面向大眾傳授知識,并掙取一定的費用,從而實現(xiàn)職業(yè)與財富自由。
5、創(chuàng)新,整合資源,改善行業(yè)工作的方式。單憑個人的能力很難達到該層次,所以往往是指某些公司或組織。比如現(xiàn)在盛行的各類云測平臺、DevOps等。
四、廣而不精,未能形成知識體系
很多測試人員喜歡在簡歷上寫著精通各類測試工具,比如Jmeter、selenium、robot framework等,結(jié)果面試的時候,自己卻只能卻只能游離于工具\框架的基本使用,并沒有深入去了解工具的精髓,這就是我們所講的廣而不精。
一切工具的運用說到底是為了提高效率和保證質(zhì)量,測試行業(yè)很推崇自動化測試,下面筆者就以jmeter為例,來闡述如何建立知識體系。
在開展這個話題前,我們先來簡單說說有名的GROW模型,筆者的知識體系建立也是以該模型為基礎。
G(Goal setting):目標。
R(Reality Check):現(xiàn)狀分析。
O(Options):解決方案。
W(Way Forward):行動計劃。
16年跳槽到新公司后,本人確定了一個目標,那就是在測試組建立一體化測試管理體系(自動化測試+缺陷管理+案例管理集成)。通過對測試組工作內(nèi)容(后臺接口測試)及工作方式(傳統(tǒng)手工測試)的分析,在對比postman、jmeter、soupui等接口測試工具的優(yōu)劣勢后,最終敲定使用jmeter作為測試組的自動化測試工具,主要原因是Jmeter支持外部jar包的方法調(diào)用,而筆者剛好有一定的java基礎。依賴于jmeter提供的csv data config功能,我們采用數(shù)據(jù)驅(qū)動測試的模式,但是很快就碰到難題了,那就是jmeter的察看結(jié)果樹對每個請求都是單獨展現(xiàn)的,如果同時執(zhí)行上百條測試案例,檢查結(jié)果對測試人員來說無疑是個噩夢,于是,筆者致力于解決該問題,并把Jmter+jira+Testlink進行集成,最終我們形成了以下的測試體系。
一體化測試管理
一體化測試管理體系的建立僅是筆者推廣半自動化測試的開始,結(jié)合docker、moutebank等技術(shù),筆者搭建了持續(xù)集成環(huán)境,進一步提升了回歸測試的效率,同時高效地進行質(zhì)量監(jiān)控。
持續(xù)集成
以上筆者的經(jīng)歷更像一張橫向的知識網(wǎng),因為其中用到jenkins、docker、moutebank、java編程等,還需要花更多的精力去深入學習,當每項技能都能掌握到一定深度,才能稱為一個完整的知識體系。
五、立足當下,卻未能放眼未來。
當前,區(qū)塊鏈、大數(shù)據(jù)、人工智能等領(lǐng)域的發(fā)展日趨成熟,可以預見這些領(lǐng)域的測試需求在未來也是異常巨大,作為測試的您是否已經(jīng)做好了準備?另外,ThoughtWorks 2015-2017發(fā)布的技術(shù)雷達分析了軟件行業(yè)測試發(fā)展新趨勢,筆者特摘錄一部分與各位同行共勉。
TW技術(shù)雷達
結(jié)語
文章的最后,筆者想談談自己所理解的優(yōu)秀軟件測試員應具備的素養(yǎng),歡迎各位同行補充。
優(yōu)秀測試人員素質(zhì)