混跡于軟件測試行業8年有余,這么長時間了,一直想寫一篇關于軟件測試的經驗分享的文章,但苦于工作原因遲遲未下筆。最近終于有了些閑余時間,遂決定把自己的心路歷程及所感所想記錄下來,與各位同行共勉。
以我多年的工作經驗來看,軟件功能測試是基礎,未來發展方向主要有兩方面(技術專家、測試管理)。
一、技術專家發展路線有如下三方面,可供參考:
1.從功能測試到性能測試專家:性能測試專家需要掌握一門編程語言、性能測試工具、系統架構、網絡、數據庫、服務器硬件等知識。性能測試分為前端性能測試(單用戶操作系統響應速度),后臺性能測試(多用戶并發場景)。后臺性能測試包括三個階段:測試(性能測試場景分析設計、腳本編寫或者錄制、測試執行)、分析(根據性能測試目標分析測試數據,找出性能瓶頸)、解決方案(根據性能瓶頸,給出系統調優解決方案);
2.從功能測試到自動化測試專家:自動化測試專家可以向自動化測試工具、框架開發方向發展,即測試開發工程師。自動化測試工程師需要掌握一門腳本語言(如,Python),掌握一些測試工具(如,webdriver、testng、appium等),web前端知識(html、jquery、css等);
3.從功能測試到安全測試專家:安全測試對測試人員要求更高,要想在這條路上走的更遠,建議是從事過開發、或者是對計算機、信息安全非常有興趣的人去深入研究這方面的技能、知識。普通測試人員只能做比較簡單的安全測試,無法深入;
二、測試管理方面發展,需要具備以下知識,僅供參考:
1.對軟件測試流程流程、質量管理過程、項目管理要非常熟悉;
2.對功能測試、用例設計、專項測試技術有要了解(即使走上管理崗位也需要這些知識,不然無法服眾);
3.良好的溝通能力、人際關系處理能力、有責任心、能抗壓;
4.懂得如何管理團隊,如何提升團隊的能力,如何激發團隊成員的工作熱情等
三、軟件測試工程師必備基礎技能匯總
上面我總結了下軟件測試的兩大塊發展方向,下面再來說一下成為一名合格的軟件測試工程師需要具備哪些技能?
1、最佳隱形技能
開發語言知識背景
對被測試對象使用的語言有一定的了解,這樣有助于測試工作的開展
計算機語言都具有一定的共通性,只要你深刻了解了一門語言,其他語言也不是難事
數據庫的熟悉使用
能夠自行編寫大部分的SQL語句來輔助測試(SELECT,DELETE,UPDATE),對于存儲過程可也多了解,在無程序輔助的情況下,它是制作數據的最好幫手
主要在日常測試工作中,提取數據庫中的數據驗以證測試結果的有效性、制作測試數據、批量修改測試數據等
被測試對象業務的熟悉度
對于被測試對象業務流程的了解越多、越深入越有利于測試工作的開展
2、測試理論
軟件測試的基本概念,及軟件測試存在的理由
不需要死記硬背,但能知道軟件測試是做什么
軟件測試的整體流程
能詳細說出軟件工程中完整的軟件測試生命周期,及一些軟件測試模型(雙V,V模型)
軟件工程中軟件生命周期
軟件工程中軟件生命周期的主要過程,以及軟件測試在生命周期中的階段及作用
測試用例設計的幾大基本方法
做到對于件測試中經常使用的測試用例設計方法能脫口而口,同時結合實際工作中的例子進行描述、解釋
軟件測試的幾大類型能
根據實際項目,很快地說出某個被測試對象需要測試哪些類型
缺陷管理策略
缺陷的完整生命周期,有可能出現的一些其他環節
一個缺陷需要包含的內容,不可重現缺陷、缺陷不被認可等問題出現時的處理策略
白盒測試(僅針對白盒測試)
對代碼有足夠的駕馭能力
熟悉各種白盒測試用例設計方法,了解各個方法的優劣,根據業務需求熟悉的使用最恰當的方法進行測試用例設計
3、測試工具的使用
缺陷管理工具
Jira、Mantis、Bugfree、QC(TD)
JIra、Mantis、Bugfree都為開源軟件
缺陷工具的基本使用本身簡單,對于未使用過的缺陷工具,也要能快速的上手使用
需求管理工具
Rational RequisitePro
Cloudtopo Topo
需求管理工具,一般用于大中型項目的需求管理
自動化工具
自動化測試基本流程
能清楚的說出自動化測試的基本流程,及自動化工具的基本原理
自動化測試工具
QuickTest Pro(QTP) from HP
QTP為目前市場上很成熟的一款產品,以其強大的功能而占有主要的市場份額,但因價格昂貴,不少公司無法接受
SELENIUM、WATIR 開源自動化測試工具
對于QTP昂貴的價格且不開源,開源的自動化工具可謂備受青睞
自動化測試腳本設計
說自動化測試,其實主要的重點在測試腳本的設計
設計腳本需要有一定的語言功底,如QTP默認使用的是VBS腳本,如果你對VBS熟悉,那么這款工具你可以算掌握了1/3
自動化測試框架了解、設計
測試框架就像大廈的基石,后續的擴展、豐富都要以此為基礎,自然作為自動化測試的難點
剛接觸自動化測試的同學可多了解
性能測試工具
LoadRunner(LR) from HP
QA Load、WebRunner
性能測試原理及流程
性能測試腳本錄制、調優
性能測試的重點工作之一錄制、調優腳本
需要有一定的語言功底,如LR默認使用的是C語言,有C語言功底的同學學起來自然是有百利而無一害
性能測試場景設計
性能測試的又一個重點場景的設計
場景的設計是否正確、合理,直接關系到最后性能測試結果的有效性
性能測試結果分析、性能分析(重點)
性能測試中的重中之重,也是性能測試的目的
通過性能測試結果數據,分析被測試對象中存在的問題,對被測試對象做出相應的調優后重新測試,直到被測試對象的性能參數達到要求。
4、計算機知識
了解并能使用常見操作系統
Windows系列、Mac系列、Linux系列
TCP/IP協議
知道TCP/IP協議的內容,以及對應層的功能
常用快捷指令的使用
在日常工作中能很快的使用運行中的快捷動作,如notepad,mspaint,ipconfig,regedit等
熟練計算機中各種鍵盤操作(鍵盤操作的效率至少是鼠標的3倍)
四、總結
以上就是我的一些經驗之談,對于在軟件測試中依然找不到方向的朋友,個人建議如下:
1.對技術有高度熱情、喜歡學習新知識的人,選擇一個專項測試領域,不斷積累,最后走測試專家路線;
2.善于溝通、有想法、思路清晰,內心不甘平庸的人,可以往測試管理方向發展。
發展方向想清楚了,就需要用行動去積累其崗位所需的知識、技能,機會總是留給有準備的人。
歡迎大家關注公眾號:程序員一凡,領取學習、面試資料。