软件测试前景和发展方向
目錄
一、測試基本知識
二、所需能力模型
硬實力
軟實力
三、職業發展方向
業務測試工程師
測試開發工程師
四、總結
由于測試的薪水比較高,最近幾年有很多其他專業的人涌進了測試行業,加速了這個行業的內卷,但是據某招聘網上的數據統計,測試當前的需求量還是遠高于其他行業的平均線的。所以,測試的現狀我覺得是不錯的,至少幾年內是無需擔心的。
測試就業前景如何,我現在居住在一個三線城市,朋友是從事測試工程師,處于三線城市一個測試開發工程師就月入7k到9k更別說一線,二線城市,你說他的前景如何?現在還是互聯網普及時代,新媒體快速發展,測試就顯得尤為重要。
一、測試基本知識
測試同學的職責無非就是兩個,保證軟件測試質量和提高測試效率。
為了達到這兩個目標,測試同學的日常就包括:常規需求的功能測試,自動化測試,性能測試,跟蹤線上反饋問題,搭建測試環境,把控項目進度和質量,開發測試平臺或腳本,進行部門的管理工作等等。
1、常規需求的功能測試
包括參與需求評審會議,制定測試計劃,編寫測試用例,評審測試用例,執行測試用例,提交Bug,回歸驗證Bug,發送測試報告,進行線上驗證等一系列活動。
2、進行性能測試
根據項目需求,對重要接口制定壓測方案,利用Jmeter等測試工具進行壓力測試,配合開發同學找到系統瓶頸,并產出壓測報告。
3、進行自動化測試
利用自動化測試工具例如Robot Framework,Python+unitest/pytest,Selenium等完成頁面UI自動化或接口自動化,提升測試效率,盡早暴露問題。
4、跟蹤線上反饋問題
在日常測試中,線上問題不可避免,反饋過來的線上問題,需要測試同學過濾和重現,再同步給開發同學,并協助開發同學定位問題,待開發同學解決后,測試同學驗證完成后上線。
5、搭建測試環境
有的測試環境由運維同學來搭建,而有些則需要測試同學來搭建,視不同的公司而定,搭建測試環境會有文檔,根據文檔,即可完成,一般的測試環境有Linux,Windows,而Linux偏多,因此會用到較多的Linux命令,平時學會一些基礎的Linux命令是很有必要的。
6、把控項目進度和質量
對于項目中出現的Bug和不確認點,需要測試同學積極推進,及時與產品和開發同學溝通,盡快解決問題,推動項目的進展。
對于產品的質量,測試同學會對定期進行Bug統計,分析Bug原因,如果質量一直很差,就會采取一些措施來積極改進和提升。
7、培養測試新人
新人在試用期間,會分配一位導師,對其工作內容和轉正考核負責,一般由測試組長承擔該角色。
8、開發測試平臺或腳本
有些公司有專門的測試平臺,來完成Bug統計與質量分析,接口自動化統計等等功能,這部分開發工作會由測試開發工程師來承擔。
9、進行部門的管理工作
管理工作由領導承擔,包括各項目的人員安排,項目測試時間的評估,項目測試進度跟進,部門成員績效考核,人員招聘,團隊建設等等。
二、所需能力模型
想要做好軟件測試,需要具備兩方面的能力,即硬實力和軟實力。
硬實力
硬實力,也就是測試同學需要的專業知識,具體的知識體系如下:
1、軟件測試基礎知識
馨馨紫在大學期間,有幸上了軟件測試這門專業課,算是入了門,為后續的職業發展也打下了基礎。
入門測試基礎知識,主要從軟件缺陷,軟件開發周期模式,軟件測試分類,軟件測試用例設計方法等方面入手。
2、軟件測試流程
業界比較規范的軟件測試流程是:需求評審,制定軟件測試計劃,編寫測試用例,進行用例評審,執行測試用例,提交Bug,驗證Bug,發送測試報告,進行線上驗證。
但是在實際工作中,往往不會有這么規范的流程,馨馨紫只在一家公司經歷過這么規范的流程,當時剛好公司進行流程規范,請了何勉大佬,來公司專門做指導。
該大佬, 是一名資深精益產品開發顧問,專注于精益產品交付、精益創業、創新及精益產品設計等領域,曾為華為、平安科技、招行以及多家成功的創業公司建立或引入精益產品開發和創新方法,推薦大家看看他的書籍 《精益產品開發:原則、方法與實施》。
大多數不規范的流程主要分為以下幾種:
(1)沒有需求評審,開發完直接提測
需求由開發同學口述或者在郵件中進行簡單的說明,測試同學就開始介入測試。
在需求不明確的情況下進行測試,測試同學往往在溝通需求的過程中花費很多時間,而且最后可能會背鍋。
這種情況下,測試同學則需要記錄好已經測試的點,并與開發和產品同學確認清楚范圍,只能保證當前已經測試功能的正確性,其他未測功能風險未知,并在測試報告上做明確說明,萬一以后線上有Bug,可以拿測試報告說話。
(2)沒有用例評審環節
用例評審,即測試,開發,產品三方一起,確認測試點,旨在避免遺漏測試點,在比較復雜的系統中會有該環節,對于邏輯很簡單的系統,就沒有必要了。
做好用例評審,要把握好評審的粒度,如果粒度太細了,與會的同學會比較疲,參與感會越來越弱,所以把握好粒度很重要,列出測試點即可,不用特別詳細。
(3)沒有Bug管理工具
在Bug管理系統上記錄,有利于質量分析,同時Bug庫也是一個很好的測試用例庫,很多Bug具有普適性,在不同的項目中可以相互借鑒。
有的公司沒有Bug管理系統,直接用文檔記錄,或者發在群里,Bug比較少還好管理,但是Bug一旦多起來,就容易混亂,前后端的Bug需要不同的人員認領,修復了沒有地方去更新狀態,最后也不利于質量分析。
有的公司則是有Bug管理系統,但是由于開發人員的KPI與Bug數量有關,內部默認不記錄Bug,直接用IM溝通,手動記錄。
理論上來說,Bug管理系統是很有必要的,不僅能節省溝通成本,還有助于質量分析,大家如果合理利用,能帶來很大的價值。
3、常用的測試工具
(1)測試用例工具
編寫測試用例的工具有很多,常見的有Xmind,Excel,TAPD,Testlink,Zentao等,在實際工作中,因為Xmind的簡單和便捷性,用到的是最多的。
(2)項目管理工具
常用的項目管理工具,有Zentao,TAPD,Teambition,Coding,Jira,企業自研工具。
在實際工作中,接觸的到主要有Jira和企業自研工具,在何勉老師精益指導的過程中,用到的就是Jira,對于每一個需求,開發和測試同學,都會認領一個task,task的周期從開始到結束,每天站會溝通后,及時更新task的狀態,在每個季度末,統計每個需求所花費的時間,做項目管理分析。
(3)Bug管理工具
常見的Bug管理工具,有Jira,TAPD,Zentao等。
Bug是一個很有價值的系統,定期進行整理和分析,不僅能發掘很多測試點,還能評估項目的提測質量。
(4)自動化測試工具
常見的自動化測試工具,有Jmeter,Appium,Postman,Selenium,Robot Framework,Python+unitest/pytest。
Jmeter,大多數時候用來做壓力測試,偶爾也用來做接口自動化測試。
Appium,用來做移動端的自動化。
Postman,用于接口測試。
Selenium,用于Web應用的自動化。
Robot Framework,用于UI或接口自動化。
Python+unitest/pytest,用于接口自動化。
自動化,分為接口自動化和UI自動化,性價比相對較高的是接口自動化,接口的變化比較小,相對好維護一些,而UI自動化,頁面變化快,維護成本高,所以很多項目都不考慮做UI自動化。
對于實際的項目經驗,馨馨紫最熟悉的還是Jmeter和Robot Framework,曾經利用Robot Framework完成了項目從0到1的UI自動化和接口自動化,接口自動化覆蓋率達到90%,并集成至CI上,每天自動跑,有問題及時發送郵件,大大提升了冒煙測試效率。
(5)抓包工具
常見的抓包工具有Fiddler,Charles,Wireshark,這三種都比較常用。
抓包,也是為了更好的協助開發同學排查問題,出現了Bug,通過抓包,可以更清晰地排查是前端問題還是后端問題,比如未發送請求,或者傳參錯誤,字段取值錯誤等都是前端問題,接口返回報錯或者返回字段值錯誤等則是后端問題。
(6)輔助工具
常用的輔助工具有Navicat,Xshell,Wiki,F12等等。
Navicat主要用來連接數據庫,可查看數據庫的字段,或通過SQL進行數據報表的測試等等。
Xshell主要用來遠程連接Linux服務器,對服務器做一些基本的操作,在目錄查看文件,啟動服務,安裝軟件等等。
Wiki,主要用于公司內部的文檔沉淀,例如編寫接口文檔,測試文檔等等。
F12,抓取接口信息,查看接口請求和返回,區分前后端Bug。
4、基本的SQL語句
在實際測試過程中,例如一些列表或數據報表的展示,需要用到基本SQL語句的增刪改查,所以掌握一些基礎的SQL語句是很有必要的。
5、基礎的Linux命令
在部署Linux環境,做壓測等會用到Linux命令,熟悉一些文件管理,壓縮與解壓,性能監控,系統管理,用戶管理,軟件安裝等命令就滿足日常工作的需要了。
6、架構相關知識
架構知識需要結合實際的項目,在日常測試中,可以與開發同學多多溝通,了解下架構相關的知識,主要從語言,框架,部署等方面入手。
一個好的架構具有高可用,高性能,可伸縮,可拓展等特性。
軟實力
大家不要忽略軟實力,軟實力有時候甚至比硬實力更重要。
軟實力包括溝通協調能力,自主學習能力,文檔輸出能力,團隊管理能力等等。
1、自主學習能力
在測試日常中,與產品,研發同學溝通必不可少,要是溝通能力不行,比如需要確認的需求點說不清楚導致線上問題,與開發同學的測試范圍確認不清楚而導致漏測,這無形會給日常的測試工作增加難度。
自主學習能力,這點很重要,我們生在互聯網行業,大家知道,技術更新是日新月異的,時常關注行業新框架,新技術和新動態是很有必要的。
2、文檔輸出能力
文檔輸出能力,編寫測試報告,編寫郵件等等都涉及到文檔輸出能力,這些報告和郵件是平時測試的成果,在業績考核中也占有一定的比重,如果只會埋頭干活,不會表達成果,升職加薪也是有難度的。
3、團隊管理能力
團隊管理能力,有句話說的好,學而優則仕。的確,大家不可能永遠待在基層崗位,大多數人都會慢慢往管理崗靠近,團隊管理能力的重要性不言而喻。
三、職業發展方向
軟件測試工程師的職業發展,可以分為四個方向:
業務測試工程師
業務測試工程師,在測試群體中這個比例是非常大的,這是最接近用戶的一個群體,這部分的測試工程師主要負責常規需求的功能測試,接口測試,自動化測試,性能測試等。
涉及的業務主要有電商,金融,在線教育等等,不限于Web,客戶端,移動端的測試。
馨馨紫待過測開比1:10的團隊,也待過1:1的團隊,具體的比例取決于業務形態和公司的資源,有的項目邏輯簡單,開發周期短,出事故的概率低,造成的損失低,測試人員就會配置的少一些,而項目邏輯復雜,盈利多,開發周期長,測試人力就會配置的充足些。
在微軟,測開比一般為1:1,在谷歌,測開比則為1:10,還是那句話,現狀決定流程。
測試開發工程師
測試開發工程師,主要開發公司內部的測試平臺/測試工具,也為業務測試工程師解決一些技術問題,例如搭建自動化測試框架,編寫一些提升效率的自動化測試腳本。
測試開發的要求比業務測試工程師高一些,需要寫得了代碼,測得了需求,也就是即會開發,又會測試的同學。
一些小公司是沒有測試開發工程師這個崗位的,一是沒有自研的測試平臺,而是由業務測試的同學偶爾做做補充,業務測試的同學也可以寫點小腳本和小工具,所以就沒有設置專門的崗位了。
測試開發的人員比例,馨馨紫經歷過的公司大概是1:10,2個測試開發工程師,服務于20個業務測試工程師,具體比例取決于目前公司的現狀。
四、總結
總結,其實是一個復盤的過程,也是一個自我改進提升的過程。
測試過的項目,用到的測試工具,思想和方法,碰到的難點以及解決方法等等都可以總結記錄,并以文檔的形式輸出沉淀,都是一個很好的積累過程。
在下次碰到同樣的問題,可以有自己的一套思路,或者分享至博客,記錄在公司WIKI,對他人來說,可以避免踩同樣的坑,利他即利己。
今天的分享就到這里,希望對軟件測試職業道路上的你有所啟發。
最后:【可能給你帶來幫助的教程】
這一些資料,對做【軟件測試】的朋友而言應該是較為完整了,這類學習資料也陪伴我走過了最艱難的路程,希望也可以幫助到你!萬事要盡早,尤其是技術行業,一定要提升技術功底。
以上軟件測試資料需要的可以私信我關鍵詞(資料)免費獲取?
總結
以上是生活随笔為你收集整理的软件测试前景和发展方向的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows映射网络驱动器
- 下一篇: Android之ViewStub的简单使