一個好的軟體測試工程師到底需要什麼技術?
目前干軟體測試這行的辛酸淚太多了,先不說遇到的坑背過的鍋,就單單技術這塊就是一個不知寬度也不知深度的無底洞……
先說我自己吧,從事測試一年半,在功能、性能、安全測試都有涉及,因為在小公司,一個當多個人用,在各種事物要求的抗壓下自學了selenium、jmeter、burpsuite等工具,做過白帽子,也寫了不少測試策略、規範等,甚至有時開發寫小工具輔助測試…但是,感覺自己雖然看起來學到的東西很多,卻不精,浪費了很多時間為測試需求去不停的研究新事物,卻沒時間深究,長期下去,也擔心自己的發展……所以,我在這想問問測試的前輩們,對於做這行的發展有什麼好建議呢?或者推薦專攻某項呢?感覺測試這行學的越多越覺得不夠,感覺永遠都提升不了檔次,對未來,我還是很迷茫啊……
我來了
測試就是騙老闆錢的,當然會騙老闆錢就夠了,
到了什麼程度就需要什麼技術,,完全取決於你.
點滑鼠寫代碼擼架構搞調優.
// 在這用QA確實有些誤解,本意是想表達不要只局限於做一個簡單的測試,要有QA的思維,以下還是用測試比較清楚
// 快速交付與敏捷開發下,原來很多的職位已經開始融合了,比如Developer和Programmer,Business Analyst和System Analyst,Tester和Quality Assurance
// 很多公司特別是基於WEB的公司,即使招聘Tester,隱含的要求也包含了大部分QA的職能,甚至直接以QA的Title去招聘一個測試
------------------------------------------------------------------------------------------------------
套用一句爛俗的話,對測試來說,這是最壞的時代,也是最好的時代。
隨著技術的發展,對測試的要求越來越高,像之前躺著點點點的測試員顯然是首當其衝有被淘汰危險的。
然而,因為各種自動化技術的出現,這卻是測試最好的一次逆襲的機會。
現階段一個優秀的測試:對需求透徹的理解+到位的測試用例+復用的測試代碼。
對需求透徹的理解:能夠像BA一樣寫出一手漂亮的Use case
到位的測試用例:從Use case延伸,寫出精準覆蓋的Test case
復用的測試代碼:Selenium+NUnit+Specflow,功能測試最起碼的一個組合要熟練運用,最重要的是能夠復用;另外在此基礎上提升自己在介面測試和性能測試的功力。
講道理的說,一名好的測試=半個BA+Test Analyst+半個Dev
所以回到問題上來,需要什麼技術的前提是你首先是一個好的Test Analyst,所謂先修鍊內功。當什麼時候能夠從客戶的一句話腦海里就能立馬浮現出後面一系列的步驟,這個時候才是提升技術的時候。畢竟,我們做的是測試,不是Dev,技術很重要,但並不是測試的第一生產力。
想寫好Selenium,請先從寫好Test case做起。
當然如果感興趣的話,也歡迎深度討論一下現行的測試流行的技術。
做到一專多能。
專,是指,我們 「精通」 ,某一領域的測試,比如說性能測試、介面自動測試等。
多能,是指,對別的方面的測試,自己也能應付得過來。
一個好的軟體測試工程師,可以從多個方面發展,我覺得,可以從兩個方面,一個是「業務」方面,比如說,自己對於業務的理解非常迅速,能夠快速地理解業務需求,測試產品的業務是否符合需求。
另一方面就是從「技術」角度了,專註於用「技術」來更好地測試,比如,自動化測試、性能測試等等,做這些方面的測試,需要很深厚的技術功底,需要能夠熟練應用一門編程語言來進行開發工作,關於這方面的需求,你可以去網上看看相關的招聘需求,比如搜索「測試開發工程師」,就能找到了。
此外溝通能力也比較重要,在測試過程中,我們會經常與開發和產品進行「撕」,溝通能力不好的話,就很難表達清楚自己的意見,工作也就不好做了。
操作系統基礎知識
linux,windows,macOS可以在GUI和命令行模式下熟練使用,基本的內存,進程管理,文件系統實現原理。
計算機網路基礎知識
TCP/IP協議棧,HTTP協議,各種網路協議分析配套的工具使用
編寫簡單腳本的基礎知識
python或者shell能夠實現簡單的自動化腳本編寫。
各種環境下相關伺服器搭建
比如能夠快速基於文檔搭建web伺服器,以及工作環境中的各種伺服器,並且可以快速理解伺服器配置的各項含義,解決其中遇到的簡單問題。
google,翻牆,英文閱讀以及搜索能力
學的越多越謙虛,會的越多越惶恐,這是人之定律,提主不必迷茫.我猜你是學了這麼多,但是沒有形成自己的理論框架,或者沒有自己覺得能拿出來的成績而疑惑吧,越是別人公認的大牛越是覺得自己對不起這稱號。
回答你的問題,這問題考試技術,其實還是個人發展問題,我覺得你現階段技術不是你發展的瓶頸,你應該多分點精力在領導力,溝通技巧,和影響力,特別是對老闆的影響力上.
-------------------------------------
支持一下那個把軟體測試叫QA的,什麼年代了,是個人都知道QA不等於測試,為什麼大家還這麼叫呢,因為這就是約定俗成!!另外直到現在很多外企都說QA不說tester,很多小白看別人說qa還是tester來判定別人是否專業?看見QA就想泰迪看見小腿一樣上去狂懟?一個概念竟然能用來鑒別是否外行?笑話!任何一個狂懟別人不知道QA和tester區別的人,都是門外漢,要麼就是為了在剛轉行的小白面前裝逼的XX.
為什麼一開始國內叫QA呢?另外QA和tester之爭是怎麼起來的呢?麻煩了解下國內軟體測試的起源,你就知道為什麼了.前一兩年,更多的是基礎的鞏固和理論實踐,並總結成自己的實踐方法論。
而不是,很多從業了幾年,只是略懂某個業務的測試,對其他一竅不通,完全沒有思考過。沒有把測試理論與實際工作結合,每天日復一日。
就算是工具學習,也只是懂皮毛,為何用這工具,能解決什麼問題,有沒更好的替代工具 ?
關於測試必備的常識知識:git svn linux shell DB ,你得知道。
具體不多說,其他同學回答的很完整。
掌握開發語言
大家都知道,軟體測試的知識面一定要廣。主流編程語言比如:C、C++、JAVA、.net等等,熟悉掌握好其中一種就好。網上這方面的說法大同小異,這裡做精簡回答。
網路相關知識
一些操作系統比如Windows,Linux這些。包括系統在服務配置,各種資料庫知識及使用,編碼技巧,性能分析能力,協助開發定位能力。
資料庫知識
掌握SQLsever、Oracle、MySQL的知識以及各種資料庫的使用技巧。創建表知識,操作符的使用,字元串函數等等的知識掌握。
常用軟體測試工具
測試工具分很多種比如,性能測試工具 、單元測試工具、功能測試工具、壓力測試工具。 不管哪款測試工具都有自己的特點,比如自動化測試方向:Selenium,基於web的自動化測試工具,selenium學習技巧: http://www.atstudy.com/course/220 ;QTP,強大的數據驅動測試工具;總之,工作中選擇適合項目的測試工具,做好資源利用。
其實,不管你是從事軟體測試哪個方向,掌握一些和開發一樣的技能,多多益善。
一名優秀的測試工程師,具有對測試產品詳細分解、對測試需求清晰明確、對測試執行嚴格遵守、對測試結果客觀負責、對改進建議熱誠關切等一系列情景的綜合表現。
在具體技術要求方面,慢慢積累、瞄準方向,確定自己測試的方向與領域,在有針對的提高自己的技能,這樣可以有的放矢
樓主寫了這麼多,背後隱藏的問題是,學什麼技術可以一招鮮吃遍天。最好還要投資小,產出快,永不過時。
啥都要會,啥都幹了,學了一堆東西,沒一樣吃透,沒一樣能拎出來當求職亮點,是我碰到的很多測試員的現狀。如果真想吃測試飯一輩子,設置一個三年計劃甚至五年計劃,選定一個明確的發展目標,例如網路性能測試專家,通訊協議測試專家,甚至用戶體驗測試專家,從基礎知識學起,再學相關技能。具體學什麼技術,要看樓主的目標。
最後,一定要學語言。用500個小時,學一門計算機語言,對於測試,永遠都是值得的投入。
個人淺見,測試行業,寬比精更重要。這個寬,不僅僅是技術,還包括業務理解能力、產品能力,交流溝通能力,文檔能力等。能精專在某一項自然會是一個加分項,但是如果沒有足夠的寬度,在測試這行,想有不錯的發展,挺難。
注意:以下不是經驗分享,純屬是個人選擇
之前有類似的疑惑,不同的一點是作為外派的測試人員,不僅用的工具不一樣而且測試的產品也不一樣,硬體軟體都有。 所以知道好多測試工具,也了解的很多產品,但都不精通。
團隊的其他同事,有人很喜歡這樣的狀態,因為談到什麼測試技術或者產品,他都可以侃侃而談,一副專家的姿態 (此處無貶義)。而且他的職業規劃就是之後就做諮詢公司做專員,所以個人覺得這樣的這樣的發展路程非常適合。
個人選擇和你現在看法一致:一百個略懂的技能比不上一個精通的技能。所以換去了專門產品的測試部門,走在測試的老路上,深化對產品的了解,在產業鏈上往上走,今後往產品經理,產品設計,項目管理的方向發展
坐等假裝在測試上線 ~~~
推薦閱讀:
※兩年測試之路,總結自己,認識自己,路在何方呢?
※學習軟體測試有哪些推薦的網站,希望各位知友幫助?
※轉行做軟體測試前景怎麼樣?
※軟體測試工程師應該怎樣提高自己?
※面試軟體測試工程師時,問你對這個桌子怎麼測試?