平時說起程序員印象中大都是做Java、做前端、做后端,用著非常晦澀難懂的語言。在電腦前哐哐哐,沒一會滿屏代碼顯現出來。然而程序員并不全是印象中這樣,還有一部分:他們不常寫代碼,主要去檢查代碼,是不是出現了漏洞、程序是否能運行下去?那這部分程序員就是做軟件測試。
這個類別沒有做Java難沒有大數據那么復雜,但還可以拿到程序員的高薪。即使沒有很厲害的技術背景,通過一陣子的學習,懂得如何進行測試懂得其中的原理就能找到一個很不錯的崗位。所以,這也是為什么很多非程序員背景的行外人在換賽道時,選擇軟件測試的原因。
軟件測試工作內容
軟件測試崗位具體是做什么的?軟件測試就是在測試這個軟件是不是能夠完全按照需求運行。軟件測試崗再簡單點說就是找BUG。檢查軟件產品是否符合用戶的需求,檢查程序的業務邏輯和代碼邏輯,提高產品的易用性。
檢查軟件產品是否符合用戶的需求。如果用戶提出的各種功能和需求,產品沒有滿足的話,也就根本提不上交付產品了,因為根本達不到交付程度,所以測試人員的工作非常必要。
檢查程序的業務邏輯和代碼邏輯。每個人對一件事的理解不同,同理不同人員對需求的理解可能會存在差異,所以適當的時候要檢查下代碼是否有業務邏輯錯誤和代碼邏輯錯誤,當然達不到檢測程序的,可以通過手工測試來做。
提高產品的易用性。若是一個軟件產品不好用,用戶的學習成本太高,那么產品的接受滿意度就會下降,更別提產品的市場占有率了。
一些其他的錯誤。凡是導致軟件產品不能正常使用的,功能被阻塞的,都是要提交bug的,讓程序員再進行一下修改和完善。
軟件測試怎么找bug?
那方法可真是不少,可以分多個維度。按照測試過程中程序執行狀態可以分為靜態測試和動態測試。靜態測試只依靠分析或檢查源程序的語句、結構、過程等來檢查程序是否有錯誤。
直白點概括就是:程序不運行,看看面相哪里有毛病。動態測試則是通過運行被測試程序,對得到的運行結果與預期的結果進行比較分析,同時分析運行效率和健壯性等。
而根據具體實現算法細節和系統內部結構的相關情況則分為黑盒測試、白盒測試和灰盒測試。黑盒測試,就是將被測程序當成一個無法打開的黑盒子,測試人員在不考慮內部結構和特性的條件下,檢查程序功能是否能夠按照規范說明準確無誤地運行。
簡單來講就是:這是一道填空題,只看結果,不看過程。白盒測試,與黑盒測試相對,主要是借助程序內部的邏輯和相關信息,通過檢測內部動作是否按照設計規格說明書的設定進行,檢查每一條通路是否能夠正常工作。
**該怎么學習軟件測試呢?**分為這幾個部分,學習測試基礎(重中之重)、腳本語言(比如Python或其他語言)、軟件測試工具、計算機硬件知識、數據庫測試,然后就是正式踏入軟件測試之前的最后進行項目實戰。每一步都不能落下,想要系統學習都是需要花下時間和精力。
軟件測試崗位不僅需要編程的熟練度,還需要對業務的熟練、協作等軟實力。做軟件測試工程師要學功能測試、接口測試、性能測試、自動化測試等相關內容。
關于軟件測試相關崗位的要求我們需要提前了解,具體的每一個崗位招聘要求和日常工作的資料網上有很多資料可以參考。我們先了解一下軟件測試的相關名詞:
1、功能測試:又稱手工測試,需要根據需求文檔,執行測試用例,方法就是等價類、邊界值,錯誤推斷等方法。
2、接口測試:顧名思義就是檢測外部系統和內部系統以及內部各個子系統之間的交互點。重點在于要檢查數據的交換等等;
3、性能測試:測試系統是否滿足實際運行時候的需要,并且分析系統受哪些因素導致無法跟上業務發展。
4、自動化測試:又分為UI自動化,也就是Python+定位元素模擬人進行頁面操作。接口自動化也就是Python+;
5、測試開發:需要參與到上述全部測試的各種大小規模的測試,重心偏重可測性能和通用測試基礎框架。其次就是有能力在開發人員已完成的軟件上進行二次開發
· 互聯網不倒,軟件測試就不會消亡
我們先來聊聊軟件測試會不會被取代,在2016年左右,阿里搞過一次全棧工程師運動,一項很重要的環節就是“去掉測試崗”。
測試工程師必須轉崗做開發。而不管是后端還是前端,所有人都必須掌握測試技能。最后,該運動以失敗告終。
通過這個事件,小編想說,阿里這種大廠聚集了大量高水平開發人員,都失敗了。可見,小廠若想繼續想維持開發團隊,去掉或者替換掉測試崗那更是癡人說夢。這充分說明,只要互聯網不倒,軟件測試就不會消亡。
· 軟件測試需求量不僅穩健,還會加大
疫情前,人們的“吃、穿、住、用、行”方方面面都有對應APP軟件。疫情后,復工最快,最迅速的企業也都是通過互聯網技術實現。
過去,互聯網技術只是讓某些企業活的好。未來,互聯網技術是很多企業能夠活下去的關鍵點。互聯網技術成為新的基建,互聯網“基建”化就決定了軟件測試行業的缺口會一直擴大。
并且,軟件測試崗位,已不僅局限于互聯網企業,現已逐步深入到實體產業,金融,通信,醫療,視頻VR,汽車,手機…
· 軟件測試崗位薪資一路高漲
隨著人工智能時代的到來,IT行業受到了越來越多人的重視。軟件測試作為把控軟件質量必不可少的環節,其重要性可見一斑。
據第三方平臺統計,北京軟件測試工程師的平均薪資為16.2K,除了一線城市外,隨著互聯網行業逐漸下沉,在新一線城市、各大省會城市的就業薪資也很可觀。
△ 數據來源職友集(如侵刪)
所以,2023年軟件測試還值得入行嗎?答案是肯定的。畢竟,優秀的人才什么時候都是緊缺的呀。
因為現在企業需要的是自動化測試人才和測試開發人才!前些年的手動測試員早已不能滿足企業現在的發展需求。
打開任意軟件測試的招聘需求,都可以看到企業明確提出需要會自動化測試的人才。
企業需求升級,前些年的手動測試自然面臨淘汰
軟件測試與其他崗位相比,對零基礎的學習者更加友好。即使你不懂互聯網,不懂代碼,但是只要努力學習,也可以在幾個月的學習周期中,掌握軟件測試從業者的必備技能。
· 人才缺口大國內測試人才缺口超30萬,且逐年遞增
· 發展方向廣各行各業都需要,尤其是IT、金融、手游
· 適合零基礎門檻低,0基礎也能學習,對女生也很友好
· 技術上手快僅需3.5個月,快速學習掌握軟件測試技術
· 職業生涯穩軟件項目都需要測試人員,高級人才供不應求
現在,各大企業對軟件測試工程師的需求越來越多,薪資也給得非常高,如果你想轉行軟件測試,當下正是好時機!
這個類別沒有做Java難沒有大數據那么復雜,但還可以拿到程序員的高薪。即使沒有很厲害的技術背景,通過一陣子的學習,懂得如何進行測試懂得其中的原理就能找到一個很不錯的崗位。所以,這也是為什么很多非程序員背景的行外人在換賽道時,選擇軟件測試的原因。
入門: 軟件測試基礎→ Linux系統操作→ MySQL數據庫
中級: Python編程
進階: Web自動化→ Appium框架→ IOS自動化
接口自動化: 傳智健康接口測試項目
高級: 性能測試
項目:微信小程序 → 金融項目
測試行業的發展規劃
整體職業規劃分為如下幾個階段:
第一階段:初級測試工程師
一般剛剛入門,熟悉基本的測試流程,入門薪資一般在6000-8000元之間。
具體工作是:
(1)按照測試方案和流程對產品進行功能測試,檢查產品是否有缺陷。
(2)具有一些手工測試經驗,開發測試腳本并開始熟悉測試生存周期和測試技術
第二階段:中級測試工程師
初級測試工程師積累1-2年工作經驗后,可逐步發展為中級測試工程師,一般月薪能達到8K-15K
之間。
具體工作是:
(1)編寫測試方案,測試文檔、與項目組一起制定測試階段的工作計劃。
(2)項目完整流程和整體質量把控介入、和開發高效溝通以及關系處理
(3)能夠在項目中合理利用測試工具來完成測試任務。能夠獨立編寫自動測試腳本程序并擔任 測試編程初期的領導工作
第三階段:高級測試工程師/測試組負責人
一般擁有3-4年測試經驗,可以對初級測試工程師指導工作,一般月薪可以達到15-25K左右。
高級測試工程師具體工作是:
(1)幫助開發或維護測試或編程標準與過程,分析軟件需求,獲得測試需求。
(2)熟悉產品代碼和產品整體架構設計,項目整體流程體系改進
(3)參與同行的評審(軟件需求,軟件測試計劃等),并為其它初級的測試工程師或程序員充當 顧問。
(4)了解自動化持續集成并能進行系統運用
測試組負責人:
除了技術上需要達到高級測試工程師的水平外,同時在管理上有額外的要求:
(1)設計測試計劃及進行測試項目的管理
(2)項目及測試流程和工具的選擇及優化
(3)擔負一些進度安排和工作規模/成本估算職責
第四階段: 測試專家/測試經理
一般有6—10年經驗的測試工程師,薪資在30K-50K之間。
測試專家一般是在性能、或者安全、或者測試開發方向等特定領域有技術專長的測試人員。具體
工作是:
(1)性能測試整體方案設計,軟件系統性能問題定位和性能優化,內存優化及分析數據溢出等
(2)分析系統的安全漏洞等
(3)自動化持續集成體系建設等
而測試經理的工作重心主要在管理方向,具體工作如:
(1)負責進度安排、工作規模/成本估算、按進度表和預算目標交付產品。
(2)負責團隊測試項目的質量及控制。
(3)構建測試團隊及進行測試團隊的管理
軟件測試是一種入門起點較低、上手迅速、且發展空間比較大的職業,因此,對于很多學生而言,作為進入IT就業的初級崗位,是非常合適的
一旦選擇之后,就需要堅持下去,此時可以給自己一個長期的目標。
軟件越來越多,要靠質量取勝,就倒逼測試人員需求越來越大
對于剛剛入行的新人,這個時期是一個全面熟悉期,最能夠學習到新的知識,也最有拼搏的熱情和動力。建議大家可以借著這股沖勁,盡可能了解所在領域的全貌,了解各個主要分支的內容、特性、優勢、局限性等等,并考察自己當前的工作環境,結合個人匹配程度和興趣愛好,根據前述內容調整自己的規劃。
對于測試行當而言,技術方面一般有幾類:黑盒測試、白盒測試、自動化測試、測試工具、專用業務技能等;相關的管理方面一般有:測試管理、質量管理、項目管理等。
面對上述形形色色的方向,建議大家可以都稍稍了解下內涵,然后確定1—2個,作為中長期的主攻方向,達此標準,基本已經實現了入門,至于能否進得廳堂,就要看后期的努力了。
升華階段(老手后5年—10年)
正因為有前期的細節的背景的支撐,此時,你需要努力提升自己的宏觀把握能力。當然,一般人是技術做得越好,管理的時候,越容易切中項目要害。但是,對于從技術上來的人,關鍵是要開始培養和人打交道的能力。此階段的關鍵是,需要逐步形成自己的管理風格,具備協調并行事務的能力。
這個階段,也可能少數的人會選擇離開具體的企業,而開始從事測試咨詢,那是一個充滿挑戰的嶄新開始,也必須有前期的積累方能勝任。
提高階段(入門后3年—5年)
對于入門后選擇管理還是選擇技術,關鍵是看對自己的長期的定位了。不過,建議當前階段還是技術為重吧。畢竟,在一個技術環境中,要做好管理,必須要有扎實的基礎。
本階段是人最容易懈怠的階段。畢竟,剛剛入行的熱忱早已被日復一日的繁復工作給冷卻,有了一定的工作經驗,勝任本職,對于大多數人而言,絕不是問題。家庭、娛樂方面開始占據了業余生活的主流。可是,畢竟大家還很年輕,大多數人此時也不過20多歲,就此懈怠也是非常可怕的。因此,有規劃的提高自身核心競爭力,在這個時候尤為關鍵。
對于選擇做技術的人而言,這個階段的達成標準,一般至少要能夠熟悉你所選技術方向的大多數技術細節,“細節決定成敗”嘛,雖然把握全局的能力是必要的,但是作技術而言,倘若不能鉆的很細很深,恐怕也很難以高手自居吧。
對于選擇做管理的人而言,建議是:此階段接觸管理的理念,并可以介入管理,但是此階段不宜全面進入管理。學習管理的理念是非常重要的,其實管理更多一種思維和做事的方式,這門學問很深入,也不像技術,會不會是那么的顯著,因此,建議多看多學,取長補短,并努力形成自己的做事風格。高級軟件測試工程師,測試組長等,都是不錯的含有技術特征的管理職位,此時的你應該能夠勝任于此。
測試工程師—軟件質量守護者!
種一顆樹最好的時間是10年前,其次是現在!
原地徘徊一千步,抵不上向前邁出第一步!
嘗試改變自己和未來,你的人生永遠掌握在自己手中!
改變命運,軟件測試是你進入IT行業的最佳快車道!
第一階段 功能測試