經(jīng)常會有小伙伴詢問:“測試工程師有哪些必須要掌握的技能?”這是一個(gè)非常大的課題,因?yàn)槊總€(gè)人從事的行業(yè)不同、崗位不同,需要掌握的技能自然也不一樣。
![]()
今天小編就從不同崗位、不同行業(yè)兩個(gè)大方面,來講講軟件測試工程師需要掌握的技能列表,最后也會列出哪個(gè)技能對于現(xiàn)在的你比較重要。快來對著技能樹查漏補(bǔ)缺,有的放矢學(xué)習(xí)技能吧~
這里要提一下:這篇文章里說的測試工程師,是主攻軟件領(lǐng)域的測試工程師。
首先我們來看一下不同階段的測試工程師需要掌握的技能體系:
![]()
(來源@測試猿)
根據(jù)以上技能體系,小編給大家做了如下細(xì)分:
一、通用技能
1業(yè)務(wù)相關(guān)
站在客戶角度思考業(yè)務(wù);掌握業(yè)務(wù)需求的知識內(nèi)容、業(yè)務(wù)管理流程、行業(yè)現(xiàn)狀和發(fā)展方向;
2管理相關(guān)
1)時(shí)間管理(四象限法則)
![]()
2)目標(biāo)管理(SMART法則)
![]()
3)知識管理
工具:xmind、有道云筆記、印象筆記、Blog、GitHub、CSDN等
4)團(tuán)隊(duì)管理
team leader:
認(rèn)真完成任務(wù)分工;及時(shí)匯報(bào)工作情況;建設(shè)員工技術(shù)成長體系;關(guān)注員工身心健康發(fā)展;
team worker:
認(rèn)清任務(wù)職責(zé)邊界;工作中敢于擔(dān)當(dāng);對自己負(fù)責(zé),對團(tuán)隊(duì)負(fù)責(zé),對公司負(fù)責(zé);與同事之間彼此包容、和諧相處;
3思考、溝通和持續(xù)學(xué)習(xí)能力
思考
今天完成了什么內(nèi)容、明天需要做什么、自己哪些方面做得好,哪些做得不夠好,下次需要改進(jìn);近期工作計(jì)劃、學(xué)習(xí)計(jì)劃、職業(yè)規(guī)劃、人生規(guī)劃。
溝通
敢于溝通:主動了解和聽取對方的想法,敢于表達(dá)自己的觀點(diǎn),表達(dá)觀點(diǎn)時(shí)說話語氣很重要,要平和;
勤于溝通:多和別人交流與工作相關(guān)的意見和想法;
善于溝通:提升溝通技巧和效率,善于提問;溝通過程對事不對人,以解決問題為根本。
持續(xù)學(xué)習(xí)能力
持續(xù)學(xué)習(xí)精神:測試技術(shù)更新快速,測試工程師需要保持持續(xù)學(xué)習(xí)的態(tài)度,跟隨行業(yè)發(fā)展,時(shí)刻關(guān)注測試行業(yè)最新技術(shù)和趨勢,不斷提升自己的專業(yè)能力,以保持競爭力;
二、功能測試需要的技能
1、客戶端功能測試的技能
1)熟練掌握web測試與app測試關(guān)注點(diǎn)的不同,比如,界面、兼容性、app安裝/卸載/升級、app弱網(wǎng)、app操作方式(橫/豎屏、手勢)、app交叉事件等測試;
2)熟練掌握幾種常見的缺陷管理工具(Jira等)和代碼管理工具(SVN等),熟悉缺陷的定義標(biāo)準(zhǔn)和系統(tǒng)化測試計(jì)劃編寫等;
3))至少會一門編程語言:java、python、C#等,可以不精通,但要寫過簡單的代碼;
4)掌握用例設(shè)計(jì)工具(latin)和web測試工具(xenu等)的使用;
需要掌握的工具:
1)缺陷管理工具
Jira、禪道、bugfree、自研工具等;
2)文檔協(xié)作管理工具
wiki;
Docs--在線協(xié)作;
Xmind;
3)用例編寫工具
Latin;
4)用例執(zhí)行工具
Xenu(web)、adb(app);
5)代碼編寫工具
Pycharm等
6)弱網(wǎng)測試工具
Charles
7)安全測試工具
AWVS--網(wǎng)站及服務(wù)器漏洞掃描軟件
sqlmap--檢測與利用SQL注入漏洞的免費(fèi)開源工具
Nmap--網(wǎng)絡(luò)掃描和嗅探工具
2、服務(wù)端功能測試
1)熟練使用postman或jmeter做接口測試;
2)深度了解HTTP/HTTPS協(xié)議的原理和作用;
3)掌握Linux命令查看服務(wù)器信息;
4)會使用jmeter做簡單的性能測試;
5)使用python+requests+unittest/pytest+htmlrunner框架寫過簡單的接口自動化腳本;
6)熟練操作數(shù)據(jù)庫:增、刪、改和多表查詢,可以寫存儲過程,獨(dú)立完成測試數(shù)據(jù)的制造;
需要掌握的工具:
1)抓包工具
Fiddler、Charleswireshark;
2)接口測試工具
Postman、HttpRequester、jmeter等;
3)性能工具
Jmeter等;
4)數(shù)據(jù)工具
Navicat、redisdesktopmanager;
5)車載特有工具
canoe、cantest、Qnet、busmaster、gt
3、共通技能:
1)軟件測試知識:對軟件測試的基本概念、方法和流程有深入的了解,熟悉各種測試技術(shù)和工具;
2)測試方法論:熟悉測試方法論和流程,例如黑盒測試、白盒測試;熟練掌握黑盒測試方法(等價(jià)類、邊界值等)和白盒測試方法(基本路徑等),熟練使用這些方法論制定測試計(jì)劃和測試策略,設(shè)計(jì)有效的測試用例;
三、自動化測試需要的技能
1、客戶端自動化的技能
1)對于Web應(yīng)用程序的自動化測試,掌握HTML、CSS和JavaScript很有幫助的。
2)熟練掌握UI自動化測試框架的環(huán)境搭建,比如,python+selenium+unittest+htmlrunner;
3)熟練掌握APP移動自動化測試的完整流程和測試方法;
需要掌握的工具:
1)Android自動化測試
UIAutomator
appium(基于webdriver框架)
uiautomator2(僅支持Android)
AirTest
2)iOS自動化測試
WebDriverAgent
appium(基于WebDriverAgent框架)
AirTest
3)Web自動化測試
Selenium
4)微信小程序自動化測試
ChromeDriver
5)客戶端自動化測試
Pyautoit
2、服務(wù)端自動化的技能
1)熟練搭建工具自動化的搭建:postman/jmeter+newman/ant+jenkins;
2)能夠獨(dú)立完成Python+requests+unittest/pytest+htmlrunner的測試框架的開發(fā);
3)能夠獨(dú)立完成自動化接口腳本的編寫和維護(hù);
需要掌握的工具:
Python+requests+unittest/pytest+htmlrunner;
Java+rest-assured;
Robot Framework;
HttpRunner;
Postman+Newman+jenkins;
Jmeter+Ant+jenkins;
Vue+Flask&Django;
3、共通技能
1)編程技能:至少掌握一門編程語言(Python、Java、C++等),沒有編程基礎(chǔ)的建議選擇Python,因?yàn)楹唵我讓W(xué),對新手比較友好,而且在測試領(lǐng)域的應(yīng)用極為廣泛,以編寫自動化測試腳本和工具;
2)測試工具和框架:熟悉常用的自動化測試工具和框架,例如Selenium WebDriver、Appium、unittest/pytest/JUnit、htmlrunner(測試報(bào)告工具)等,提高自動化測試的效率和準(zhǔn)確性;
3)基礎(chǔ)知識:了解軟件開發(fā)生命周期和軟件測試基礎(chǔ)知識,包括需求分析、設(shè)計(jì)、編碼、調(diào)試和發(fā)布等階段;理解軟件開發(fā)流程和相關(guān)概念更好地與開發(fā)團(tuán)隊(duì)協(xié)作;
4)調(diào)試和故障排除:具備良好的問題分析和故障排除能力,能夠快速定位測試腳本和自動化測試框架的問題,并提供解決方案;
四、性能測試需要的技能
1、客戶端(app)性能測試的技能
1)性能測試工具:熟練掌握性能測試工具,如solopi等,對客戶端進(jìn)行性能測試。
2)客戶端技術(shù)知識:了解客戶端開發(fā)的基本原理和技術(shù),熟悉常見的移動應(yīng)用開發(fā)框架(如iOS、Android),了解Web前端技術(shù)(如HTML、CSS、JS等);
3)性能測試指標(biāo):明確客戶端性能測試指標(biāo)(冷熱啟動時(shí)間、耗電量、流量、CPU、內(nèi)存、GPU、幀率、頁面切換時(shí)間和穩(wěn)定性測試)及預(yù)期結(jié)果;
需要掌握的工具:
1)PerfDog、solopi
2)adb
3)ffmpeg(音視頻)
4)dumpsys batterystatus
5)Battery-Historian
6)Monkey、MonkeyRunner等
2、后端服務(wù)器性能測試的技能
1)熟悉性能測試過程,能夠獨(dú)立分析性能需求;
2)深度掌握J(rèn)meter或Loadrunner的拓展用法,能獨(dú)立完成性能測試;
3)操作系統(tǒng)和網(wǎng)絡(luò)知識:了解操作系統(tǒng)的原理和常見問題,熟悉網(wǎng)絡(luò)通信協(xié)議和架構(gòu),有助于深入理解系統(tǒng)的性能特點(diǎn)和影響因素;
4)腳本開發(fā):熟悉至少一種編程語言(如Python、Js等),能夠編寫自動化腳本支持性能測試工作,并進(jìn)行數(shù)據(jù)處理和結(jié)果分析;
5)數(shù)據(jù)庫知識:了解數(shù)據(jù)庫的基本原理和性能優(yōu)化策略,熟悉常見數(shù)據(jù)庫管理系統(tǒng)(如MySQL等)和性能調(diào)優(yōu)方法;
6)系統(tǒng)架構(gòu)與設(shè)計(jì):能夠理解系統(tǒng)各個(gè)模塊之間的交互關(guān)系,為性能測試提供有效的支持和指導(dǎo);
7)壓力測試和容量規(guī)劃:具備壓力測試和容量規(guī)劃的知識和經(jīng)驗(yàn),能夠根據(jù)系統(tǒng)需求和預(yù)期負(fù)載,評估系統(tǒng)的容量,并制定相應(yīng)的擴(kuò)展和優(yōu)化方案;
需要掌握的工具:
1)性能測試工具:Jmeter、Gatling、LoadRunner;
2)資源監(jiān)控工具:性能監(jiān)視器、nmon等;
3)數(shù)據(jù)庫監(jiān)控工具:monitor等;
3、共通技能
1)操作系統(tǒng)知識:熟悉操作系統(tǒng)的基本原理和常用命令,了解操作系統(tǒng)對性能的影響。
2)問題解決能力:善于分析和解決技術(shù)問題,具備良好的故障排除能力,能夠處理性能測試過程中遇到的各種技術(shù)難題。
3)性能測試方法與策略:了解性能測試的基本原理和方法,熟悉負(fù)載模型和性能指標(biāo),能夠選擇合適的性能測試策略,并設(shè)計(jì)相應(yīng)的測試方案。
4)性能問題分析與調(diào)優(yōu):能夠?qū)π阅軠y試結(jié)果進(jìn)行分析和解讀,定位系統(tǒng)資源瓶頸和性能問題,并提出有效的優(yōu)化措施。
五、其他需要掌握的工具
1)H5性能測試
(1)Chrome Devtool
(2)W3C Performance API
2)環(huán)境部署工具
(1)Docker--應(yīng)用容器引擎
(2)K8S--基于容器的集群管理平臺
3)輔助開發(fā)工具
(1)Vue.js
(2)Nodejs
六、不同行業(yè)需要測試工程師的星級
![]()
這是小編總結(jié)的”過度”全面的測試技能合集,你有沒有不同意見,把你的不同意見分享出來,大家一起討論,謝謝!
入群學(xué)習(xí)交流↓↓↓↓↓↓
![]()
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.