大家好,我是程序員馨馨紫,一個混過大廠,待過創(chuàng)業(yè)公司,有著 6 年工作經(jīng)驗的軟件測試妹紙一枚。之前在也寫過幾篇文章,之后很多粉絲過來咨詢女生能不能做軟件測試。
今天索性寫篇文章,詳細的介紹一下軟件測試,希望對大家有點幫助。首先肯定一點,在我長達 6 年的軟件測試職業(yè)生涯中,始終認為:軟件測試是非常適合女生的。
下面從六個方面展開說說:
- 女生從事軟件測試的優(yōu)勢
- 軟件測試崗工作內(nèi)容概述
- 軟件測試需要的能力模型
- 軟件測試的職業(yè)發(fā)展方向
- 軟件測試的薪資水平如何
一、女生從事軟件測試崗的優(yōu)勢
從在職測試人員來看,女生從事軟件測試職位的優(yōu)勢表現(xiàn)在以下五個方面:
一)細心
女生在軟件測試工作中,比較細心,善于發(fā)現(xiàn)代碼中的Bug。除了常規(guī)的業(yè)務場景之外,測試中還有很多小細節(jié),例如每一個彈框的標題,每一個文案,每一個界面的樣式等等,都是一些不可忽略的小細節(jié),有些細節(jié)如果不仔細看,是很難發(fā)現(xiàn)的,女生在這方面就更有優(yōu)勢。
二)耐心
女生在軟件測試工作中,比較耐心,能夠勝任某些重復性的工作,軟件測試中,包含有大量重復執(zhí)行用例的工作,舉一個簡單的例子,一個新功能,首次測試,發(fā)現(xiàn)了Bug,將Bug提給開發(fā),等開發(fā)同學修復完之后,轉(zhuǎn)給測試同學驗證,驗證的過程,就相當于第二次執(zhí)行重復的用例了。
除了回歸測試之外,兼容性測試,也很需要耐心,有些業(yè)務,需要兼容多種瀏覽器或多個手機機型,也就是說,同樣的業(yè)務功能,需要在每個瀏覽器或者手機上都重復驗證一遍。
在測試過程中,一遍一遍的重復執(zhí)行用例,很容易疲勞,導致發(fā)現(xiàn)不了Bug,因此,在測試過程中需要有耐心,才能更好地保證測試的質(zhì)量。
三)溝通能力
女生在軟件測試工作中,溝通能力強,且比較有親和力,在工作中能很好地融入團隊,帶動團隊氛圍。
對于溝通,也是有方法的,比如開發(fā)在緊急趕進度,手上有好幾個項目同時進行,測試同學遇到了些Bug,但是又不是特別嚴重,也不阻塞測試流程,這個時候最好別一直在群里艾特開發(fā)同學。
可以先記錄在Bug管理工具上,抽一個時間點,集中一起和開發(fā)同學對一下,如果在群里一直艾特一直催促,一般情況下開發(fā)同學是不會立馬響應的,還有可能會引起開發(fā)同學的反感,得不償失。
四)文檔能力
女生在軟件測試工作中,文檔能力一般要強于男生,測試工作是需要輸出很多文檔,而這往往是絕大多數(shù)女生的優(yōu)勢所在。
測試同學往往需要產(chǎn)出很多文檔,軟件測試文檔是指在軟件測試的各個階段用文檔的形式記錄測試過程,軟件測試文檔主要包括:測試計劃,測試用例,測試缺陷,測試報告等等。
測試計劃:測試計劃由測試小組編寫完成后,需要同項目中相關人員進行評審,以確保當前的計劃與項目進度等是一致的。
測試用例:用于描述測試用例的具體細節(jié)工作,一般根據(jù)測試計劃,原型文檔和測試策略來編寫。
測試缺陷:描述測試過程中相關的缺陷信息,讓團隊更好的了解測試缺陷類型。
測試報告:對測試結果進行統(tǒng)計分析及總結。
五)換位思考能力
女生思考方式趨于感性,往往善于站在對方的角度考慮問題,這恰恰吻合軟件測試的本質(zhì)即站在用戶的角度去捕捉產(chǎn)品中的缺陷與建議。
例如在流程設計方面,用戶體驗路徑是否一致,在界面呈現(xiàn)方面,控件是否符合用戶認知和是否具有一致性,在交互過程方面, 是否周全地考慮了所有操作成功或失敗的反饋等等。
從在職測試人員的表現(xiàn)以及職工性別比例來看,女生都是比較適合軟件測試的,但是馨馨紫覺得,這不足以成為女生從事軟件測試的理由,嚴謹點,我們還需要從以下幾個方面來思考,自己是否適合從事軟件測試崗位。
二、軟件測試崗位的工作內(nèi)容
一)常規(guī)需求的功能測試
包括參與需求評審會議,制定測試計劃,編寫測試用例,評審測試用例,執(zhí)行測試用例,提交Bug,回歸驗證Bug,發(fā)送測試報告,進行線上驗證等一系列活動。
二)進行性能測試
根據(jù)項目需求,對重要接口制定壓測方案,利用Jmeter等測試工具進行壓力測試,配合開發(fā)同學找到系統(tǒng)瓶頸,并產(chǎn)出壓測報告。
三)進行自動化測試
利用自動化測試工具例如Robot Framework,Python+unitest/pytest,Selenium等完成頁面UI自動化或接口自動化,提升測試效率,盡早暴露問題。
四)跟蹤線上反饋問題
在日常測試中,線上問題不可避免,反饋過來的線上問題,需要測試同學過濾和重現(xiàn),再同步給開發(fā)同學,并協(xié)助開發(fā)同學定位問題,待開發(fā)同學解決后,測試同學驗證完成后上線。
五)搭建測試環(huán)境
有的測試環(huán)境由運維同學來搭建,而有些則需要測試同學來搭建,視不同的公司而定,搭建測試環(huán)境會有文檔,根據(jù)文檔,即可完成,一般的測試環(huán)境有Linux,Windows,而Linux偏多,因此會用到較多的Linux命令,平時學會一些基礎的Linux命令是很有必要的。
六)把控項目進度和質(zhì)量
對于項目中出現(xiàn)的Bug和不確認點,需要測試同學積極推進,及時與產(chǎn)品和開發(fā)同學溝通,盡快解決問題,推動項目的進展。
對于產(chǎn)品的質(zhì)量,測試同學會對定期進行Bug統(tǒng)計,分析Bug原因,如果質(zhì)量一直很差,就會采取一些措施來積極改進和提升。
七)培養(yǎng)測試新人
新人在試用期間,會分配一位導師,對其工作內(nèi)容和轉(zhuǎn)正考核負責,一般由測試組長承擔該角色。
八)開發(fā)測試平臺或腳本
有些公司有專門的測試平臺,來完成Bug統(tǒng)計與質(zhì)量分析,接口自動化統(tǒng)計等等功能,這部分開發(fā)工作會由測試開發(fā)工程師來承擔。
九)進行部門的管理工作
管理工作由領導承擔,包括各項目的人員安排,項目測試時間的評估,項目測試進度跟進,部門成員績效考核,人員招聘,團隊建設等等。
十)工作強度
每個公司的項目類型不同,企業(yè)文化也不同,從馨馨紫6年的工作經(jīng)驗和身邊朋友的經(jīng)歷來看,工作時間大致如下。
1、國企
朝九晚六,也就是早 9 點,晚 6 點,基本上不需要加班,到點走人,周末雙休。
2、互聯(lián)網(wǎng)企業(yè)
上班一般是彈性制,早上 9 點到 10 點,晚上 6 點到 7 點彈性打卡,中午休息一個半小時。
互聯(lián)網(wǎng)企業(yè),大多會有加班文化,很少會準點走,加班到八九點是常事,周末根據(jù)項目安排,也有可能安排加班,加班時長在一定程度上決定KPI,大家都懂的,所以該加班還是得加。
3、私企
私企的人數(shù)不多,碰上項目加急趕進度的時候,加班會很多。
4、外企
外企的工作強度不大,加班也比較少,氛圍比較輕松。
總之,加班的多少,取決于公司,企業(yè)文化以及項目組,但是從整體大環(huán)境來看,除了國企和外企,大多數(shù)公司都會有不同程度的加班。
三、軟件測試崗位的能力模型
想要做好軟件測試,需要具備兩方面的能力,即硬實力和軟實力。
一)硬實力
硬實力,也就是測試同學需要的專業(yè)知識,具體的知識體系如下:
1、軟件測試基礎知識
馨馨紫在大學期間,有幸上了軟件測試這門專業(yè)課,算是入了門,為后續(xù)的職業(yè)發(fā)展也打下了基礎。
入門測試基礎知識,主要從軟件缺陷,軟件開發(fā)周期模式,軟件測試分類,軟件測試用例設計方法等方面入手。
2、軟件測試流程
業(yè)界比較規(guī)范的軟件測試流程是:需求評審,制定軟件測試計劃,編寫測試用例,進行用例評審,執(zhí)行測試用例,提交Bug,驗證Bug,發(fā)送測試報告,進行線上驗證。
3、常用的測試工具
1)測試用例工具
編寫測試用例的工具有很多,常見的有Xmind,Excel,TAPD,Testlink,Zentao等,在實際工作中,因為Xmind的簡單和便捷性,用到的是最多的。
2)項目管理工具
常用的項目管理工具,有Zentao,TAPD,Teambition,Coding,Jira,企業(yè)自研工具。
在實際工作中,接觸的到主要有Jira和企業(yè)自研工具,在何勉老師精益指導的過程中,用到的就是Jira。
對于每一個需求,開發(fā)和測試同學,都會認領一個task,task的周期從開始到結束,每天站會溝通后,及時更新task的狀態(tài),在每個季度末,統(tǒng)計每個需求所花費的時間,做項目管理分析。
3)Bug管理工具
常見的Bug管理工具,有Jira,TAPD,Zentao等。
Bug是一個很有價值的系統(tǒng),定期進行整理和分析,不僅能發(fā)掘很多測試點,還能評估項目的提測質(zhì)量。
4)自動化測試工具
常見的自動化測試工具,有Jmeter,Appium,Postman,Selenium,Robot Framework,Python+unitest/pytest。
Jmeter,大多數(shù)時候用來做壓力測試,偶爾也用來做接口自動化測試。
Appium,用來做移動端的自動化。
Postman,用于接口測試。
Selenium,用于Web應用的自動化。
Robot Framework,用于UI或接口自動化。
Python+unitest/pytest,用于接口自動化。
自動化,分為接口自動化和UI自動化,性價比相對較高的是接口自動化,接口的變化比較小,相對好維護一些,而UI自動化,頁面變化快,維護成本高,所以很多項目都不考慮做UI自動化。
對于實際的項目經(jīng)驗,馨馨紫最熟悉的還是Jmeter和Robot Framework,曾經(jīng)利用Robot Framework完成了項目從0到1的UI自動化和接口自動化,接口自動化覆蓋率達到90%,并集成至CI上,每天自動跑,有問題及時發(fā)送郵件,大大提升了冒煙測試效率。
5)抓包工具
常見的抓包工具有Fiddler,Charles,Wireshark,這三種都比較常用。
抓包,也是為了更好的協(xié)助開發(fā)同學排查問題,出現(xiàn)了Bug,通過抓包,可以更清晰地排查是前端問題還是后端問題,比如未發(fā)送請求,或者傳參錯誤,字段取值錯誤等都是前端問題,接口返回報錯或者返回字段值錯誤等則是后端問題。
6)輔助工具
常用的輔助工具有Navicat,Xshell,Wiki,F(xiàn)12等等。
Navicat主要用來連接數(shù)據(jù)庫,可查看數(shù)據(jù)庫的字段,或通過SQL進行數(shù)據(jù)報表的測試等等。
Xshell主要用來遠程連接Linux服務器,對服務器做一些基本的操作,在目錄查看文件,啟動服務,安裝軟件等等。
Wiki,主要用于公司內(nèi)部的文檔沉淀,例如編寫接口文檔,測試文檔等等。
F12,抓取接口信息,查看接口請求和返回,區(qū)分前后端Bug。
4、基本的SQL語句
在實際測試過程中,例如一些列表或數(shù)據(jù)報表的展示,需要用到基本SQL語句的增刪改查,所以掌握一些基礎的SQL語句是很有必要的。
5、基礎的Linux命令
在部署Linux環(huán)境,做壓測等會用到Linux命令,熟悉一些文件管理,壓縮與解壓,性能監(jiān)控,系統(tǒng)管理,用戶管理,軟件安裝等命令就滿足日常工作的需要了。
6、架構相關知識
架構知識需要結合實際的項目,在日常測試中,可以與開發(fā)同學多多溝通,了解下架構相關的知識,主要從語言,框架,部署等方面入手。
一個好的架構具有高可用,高性能,可伸縮,可拓展等特性。
二)軟實力
大家不要忽略軟實力,軟實力有時候甚至比硬實力更重要。軟實力包括溝通協(xié)調(diào)能力,自主學習能力,文檔輸出能力,團隊管理能力等等。
1、自主學習能力
在測試日常中,與產(chǎn)品,研發(fā)同學溝通必不可少,要是溝通能力不行,比如需要確認的需求點說不清楚導致線上問題,與開發(fā)同學的測試范圍確認不清楚而導致漏測,這無形會給日常的測試工作增加難度。
自主學習能力,這點很重要,我們生在互聯(lián)網(wǎng)行業(yè),大家知道,技術更新是日新月異的,時常關注行業(yè)新框架,新技術和新動態(tài)是很有必要的。
2、文檔輸出能力
文檔輸出能力,編寫測試報告,編寫郵件等等都涉及到文檔輸出能力,這些報告和郵件是平時測試的成果,在業(yè)績考核中也占有一定的比重,如果只會埋頭干活,不會表達成果,升職加薪也是有難度的。
3、團隊管理能力
團隊管理能力,有句話說的好,學而優(yōu)則仕。的確,大家不可能永遠待在基層崗位,大多數(shù)人都會慢慢往管理崗靠近,團隊管理能力的重要性不言而喻。
四、軟件測試崗位職業(yè)發(fā)展方向
軟件測試的職業(yè)發(fā)展方向,大致分為三條路線:
- 技術崗:功能測試->自動化測試->性能測試->測試開發(fā)->測試專家
- 管理崗:測試組長->測試主管->測試經(jīng)理->CTO
- 轉(zhuǎn)型:產(chǎn)品經(jīng)理/開發(fā)人員/運維人員/滴滴司機等等其他行業(yè)
一)技術崗
在技術崗的前三個階段,title一般為:業(yè)務軟件測試工程師,這個職位在測試群體中的比例是非常大的,這是最接近用戶的一個群體,這部分的測試工程師主要負責常規(guī)需求的功能測試,接口自動化測試,性能測試等。
涉及的業(yè)務主要有電商,金融,在線教育等等,不限于Web,客戶端,移動端的測試。
馨馨紫待過測開比 1:10 的團隊,也待過 1:1 的團隊,具體的比例取決于業(yè)務形態(tài)和公司的資源,有的項目邏輯簡單,開發(fā)周期短,出事故的概率低,造成的損失低,測試人員就會配置的少一些,而項目邏輯復雜,盈利多,開發(fā)周期長,測試人力就會配置的充足些。
在微軟,測開比一般為 1:1,在谷歌,測開比則為 1:10,還是那句話,現(xiàn)狀決定流程。
測試開發(fā)工程師,主要開發(fā)公司內(nèi)部的測試平臺/測試工具,也為業(yè)務測試工程師解決一些技術問題,例如搭建自動化測試框架,編寫一些提升效率的自動化測試腳本。
測試開發(fā)的要求比業(yè)務測試工程師高一些,需要寫得了代碼,測得了需求,也就是即會開發(fā),又會測試的同學。
一些小公司是沒有測試開發(fā)工程師這個崗位的,一是沒有自研的測試平臺,而是由業(yè)務測試的同學偶爾做做補充,業(yè)務測試的同學也可以寫點小腳本和小工具,所以就沒有設置專門的崗位了。
測試開發(fā)的人員比例,馨馨紫經(jīng)歷過的公司大概是 1:10,2 個測試開發(fā)工程師,服務于 20 個業(yè)務測試工程師,具體比例取決于目前公司的現(xiàn)狀。
測試專家,在功能和專項測試(自動化,性能,測試開發(fā))等方面進行深耕,可解決整個測試團隊的技術問題,為整個測試團隊的技術賦能。
二)管理崗
主要是進行部門的管理工作,包括各項目的人員安排,項目測試時間的評估,項目測試進度跟進,部門成員績效考核,人員招聘,團隊建設等。
1、入門級
很多同學是校招或者社招轉(zhuǎn)行進入軟件測試,初入軟件測試的前兩年,職位一般是初級測試工程師,大家都做著最基本的測試工作,主要是進行功能測試,熟悉業(yè)務,能保證上線的產(chǎn)品不出大問題即可。
2、3年左右
業(yè)務組長,作為項目的主測人員,重點在測試計劃的制定和執(zhí)行,測試任務的安排以及估期,保證項目能按期交付,線上不出現(xiàn)重大的事故,管理人數(shù)大約在 3~5 人。
3、5年左右
測試主管/測試經(jīng)理,該階段的工作主要包含測試計劃的制定,更多的是關注重難點項目,且需要掌握更多項目管理的知識,深入理解項目的價值,做好項目管理,成本管理,風險管理和人力管理,同時也會參與一些招聘,員工績效,質(zhì)量管理,風險管理的工作。
4、8年或以上
測試總監(jiān),該階段需要理解產(chǎn)品的商業(yè)目標,直接對產(chǎn)品成功負責。該階段的主要工作包含管理測試團隊,進行人員招聘,帶好整個團隊的節(jié)奏,優(yōu)勝劣汰,留住核心人員,淘汰達標的人員,提升團隊戰(zhàn)斗力。
同時需要負責資源的計劃和分配,持續(xù)改進測試能力,提升測試效率,保證產(chǎn)品質(zhì)量,從測試的角度對交付的產(chǎn)品和質(zhì)量負責。
三)轉(zhuǎn)型
如果對測試沒有很大的興趣,覺得自己的溝通能力還不錯,更喜歡與人打交道,可以轉(zhuǎn)型到產(chǎn)品崗。
在業(yè)界,有很多從測試成功轉(zhuǎn)型為產(chǎn)品的同學,他們后續(xù)發(fā)展的非常好,因為測試對于產(chǎn)品功能是非常熟悉的,產(chǎn)品需要的能力與測試有較多的重合,所以相對來說,轉(zhuǎn)型的難度不高。
如果熱衷于技術,追求技術帶來的成就感,可以轉(zhuǎn)到開發(fā)崗,在實際職場中,測試轉(zhuǎn)開發(fā)的比率是很小的,測試同學要求的知識面是廣而淺,開發(fā)同學要求的是精而深,個人興趣和技術難度可能是轉(zhuǎn)型少的一個原因。
其實還有好多選擇,可以轉(zhuǎn)型做測試咨詢,創(chuàng)業(yè),滴滴司機,或者外賣小哥等等都可以的,遵循自己的內(nèi)心,選擇想要的崗位。
五、軟件測試崗位的薪資水平
軟件測試崗位的薪資,取決于三個維度:城市+公司+個人能力。大致從網(wǎng)上找了一些數(shù)據(jù),僅供大家參考:
一)一線城市例如北京
985、211名校畢業(yè)的科班生,校招年薪大概在 16w~20w 之間。
普通本科畢業(yè)生,校招年薪大概在 8w~15w 之間。
1~3年經(jīng)驗社招,年薪大致在 12w~20w 之間。
3~5年經(jīng)驗社招,由于個人能力不同,差距較大,普通軟件測試:年薪大概在 12w~20w 之間,做去大公司的測開/自動化測試:年薪大概在 30~40w 之間。
二)二線城市,例如成都
985、211名校畢業(yè)的科班生,校招年薪大概在 10w~15w 之間。
普通本科畢業(yè)生,年薪大概在 7w~10w 之間。
1~3年經(jīng)驗社招人員,年薪大概在 8w~15w 之間。
3~5年經(jīng)驗社招人員,年薪大概在 10w~25w 之間。
三)三線城市,例如南寧
很少看到招沒經(jīng)驗的,基本都是1年經(jīng)驗以上。
1~3年經(jīng)驗社招人員,年薪大概在 5w~9w 之間。
3~5年經(jīng)驗社招人員,年薪大概在 8w~15w 左右。
當然,這只是個參考值,具體拿到手多少薪資,還是取決于個人能力。
以上純屬個人觀點,僅供大家參考,希望對大家有所啟發(fā)。