天天看點

軟體測試還有明天嗎?

前言:

最近有很多考慮轉行做測試的朋友問我一些軟體測試的問題,雖然問法五花八門,我仔細梳理了下,問題呢過大同小異,也就1.2.3.4.5.6種,比如什麼是軟體測試?軟體測試的發展前景如何?軟體測試行業有什麼樣的特點?軟體測試人員的薪資收入怎麼樣?軟體測試的職業發展方向是怎樣?軟體測試的工作内容主要有哪些?軟體開發是不是比軟體測試更好?測試是不是比開發要求更低一些?軟體測試崗位會不會被開發取代?軟體開發比軟體測試更有前景,是真的嗎?一個優秀的軟體測試工程師要具備哪些能力?

軟體測試還有明天嗎?

正文:

一.概念問題:什麼是軟體測試?

顧名思義,就是在規定的條件下對一個産品或程式進行操作,以發現程式錯誤,衡量軟體品質,并對其是否能滿足設計要求進行評估的過程。通俗來講,軟體測試是保障軟體品質全過程的集合。

軟體品質會根據産品、行業、階段不同而有所變化,是以測試應該覆寫軟體的整個生命周期,比如調研、需求、設計、研發、測試、上線、運維等。

敲黑闆,軟體測試要貫穿産品整個生命周期,而非大家淺顯了解的開發完後簡單測試的那一段小過程。

另外,所有為了保障軟體品質的工作,測試人員都應該積極主動的參與,比如前期的市場調研、競品分析、使用者畫像;後期的線上運維配置、環境配置、業務監控等等。

測試早就不再是大家認知的功能性測試,而是需要具備更多的專業技能,比如自動化測試、性能測試、手工測試等等。

二.糾結問題:軟體測試的發展前景是怎麼樣的?

軟體測試伴随着軟體産品應運而生,早期的開發規模比較小、産品也較為簡單,是以測試的含義也很狹窄,開發人員将測試統稱為“調試”,目的是糾正軟體中已知錯誤。在國内市場,很多軟體企業都存在着重開發、輕測試的現象,甚至有很多網際網路和軟體企業都沒有專門的測試崗位,而是在産品上線前要求開發和非專業人士的内部測試,這就造成軟體産品的品質問題頻出,上線後出現各種問題。

近兩年來,随着網際網路的快速發展,軟體系統變得越來越複雜,一個軟體産品不再是由1-2個開發人員單獨編寫,而是團隊配 合,可能每個人隻負責一個單子產品,對于産品全局沒有全據了解,是以這些軟體在運作時就非常容易錯誤,行業内将此稱之為Bug。

并且每一個軟體工程師都會有思維死角,不容易發現自己編寫出來的錯誤,是以這時就需要專門的軟體測試工程師用專業的測試方式來檢查産品了。并且,因為我國企業對軟體測試技術的認知較晚,是以這方面的專業技術人才在國内還很稀缺。據調查顯示,目前國内軟體測試人才缺口已達到30萬,中國軟體業每年新增約20萬測試崗位就業機會,但是企業、學校培養出的軟體測試人才不足需求量的1/10,并且需求與供給間的差距仍在進一步拉大。随着使用者對産品要求逐漸提升,測試人員在企業内部的分量隻會越來越重,北上廣深等一線城市将會帶動其他城市一起發展。是以,軟體測試的前景隻會是越來越好。

三.基礎問題:軟體測試行業有什麼樣的特點?

1、職業發展更多元化。

由于工作的特殊性,測試人員不但需要對軟體的品質進行檢測,而且對于軟體項目的立項、管理、售前、售後等領域都要涉及。在這過程中,測試人員不僅提升了專業的軟體測試技能,還能接觸到各行各業,進而在項目管理、溝通協調、市場需求分析等能力上得到很好的鍛煉,進而進一步為自己的多元化發展奠定基礎。

2、通用性人才,有無限機會。

軟體測試人員是通用性人才,其不受地域、行業發展的限制,而且也不受年齡和體力的影響,職位經驗越豐富越吃香,因為工作的時間越長積累的項目經驗越多,在測試中會更加敏銳的發現軟體中的Bug。

并且相對于一些其他傳統行業,在網際網路公司裡,内部政治、勾心鬥角一般是比較少有的,上下級關系也較為簡單,更重要的是隻要你技術出衆、有實力,你就可以獲得無限的機會。

3、缺口大,薪資高。

從需求分析到産品開發再到産品維護,都離不開軟體測試。并且,由于軟體測試的重要性近兩年才在國内被重視,是以高校教育和企業培養都還沒有跟上,緻使軟體測試人才供不應求,薪資也随之走高,優秀的軟體測試人才年薪可達十萬,甚至二三十萬或更高。

2020年-2025年,我國将利用國際産業轉移的重大機遇,聚集各種資源,突破核心技術制約,在軟體、計算機與資訊處理、現代移動通信、資訊安全、資訊服務和系統內建等技術領域加強創新,促進IT産品更新換代,推動我國由IT大國向IT強國的轉變,進而推動國民經濟資訊化程序,以資訊化帶動工業化,走出一條新型工業化道路。

是以,IT行業的人才需求也會進一步加大,對軟體測試人員而言,這是一個機遇,也是一次挑戰,更是一個彎道超車的好機會。

四.你非常關心的問題:做軟體測試工資到底咋樣?

我從國家統計局釋出的2018年國人平均工資資料上發現,薪資最高的是資訊傳輸、軟體和資訊技術服務行業,平均工資高達141962元,計算下來人均月薪為11830元。

軟體測試還有明天嗎?

我從職友網截圖擷取了全國軟體測試人員以及成都地區軟體測試人員的工資收入水準,據調查,兩者之間相差一千六百元左右元,最大影響因素是各城市地區的互聯行業發展環境的不同。

軟體測試還有明天嗎?

雖然軟體測試程式員常被人調侃“錢多、人土、愛加班”,但也不得不承認,這個一個高回報率的行業,隻要你努力付出,你要相信你一定是會有收獲的。

軟體測試還有明天嗎?

很多人都認為,測試的薪資比開發要低很多,實際上現在測試崗位早就不是以往那種普通的功能性測試了,雖然軟體測試依然是IT行業中最适宜轉行、練級的新手區,但對于每個從業者而言,随着從業年限、處理問題能力的提升速度、發展方向的不同等,測試人員的薪資也在大幅提升,和開發有并駕齊驅甚至有超過它的意思。

目前自動化測試、測試開發等從業者薪資都不比開發低。以下是軟體測試職業成長路徑以及與之對應的薪資,大家可以看看吧簡單了解以下。

軟體測試還有明天嗎?

五.你特别關心的問題:軟體測試的職業發展方向是怎樣?

對于技術人員而言,職業發展規劃一般分兩個方向,一個就是做技術、另一個就是做管理。

一般而言,對于剛剛進入軟體測試行業的新人都會從最基礎的執行開始做,接下來呢用例設計,相當于基本的功能測試。随後大家會根據個人職業發展來進一步細化,有的走管理路線,成為了主管,經理,項目負責人等;有的深入測試用例設計,繼續進階的功能測試;有的發展技術,專研性能測試,安全測試,自動化測試,測試架構設計等。

如果你想往技術領域深耕,一般又可以細化為兩類:一類是功能測試,也就是大家相對熟悉的點點點測試、黑盒測試,這類工作不需要太多的程式設計經驗,隻要看得懂代碼就可以;另一類是自動化測試,包括功能自動化、性能自動化、接口自動化等,這一類工作對代碼能力要求就比較高了,也就是大家常說的測試開發工程師。

是以說軟體測試可以發展的方向還是蠻多的,我想總有一款會适合你。

六.必須知道的問題,不知道做啥那你做啥:軟體測試的工作内容主要有哪些?

測試人員的首要職責在我們平常人看來就是“找Bug”,跟蹤Bug ,修複Bug等等,似乎就是隻和Bug做朋友,那你就錯了。在這個過程當中呢,測試工程師是需要使用各種測試技術和工具來測試和發現軟體中存在的缺陷,進而讓開發者更好的優化産品,讓使用者更加安全順暢的使用。那麼具體點就包括以下這些了:

1、根據軟體設計需求制定測試計劃,測試資料和測試用例。

通過測試計劃來确定測試産品所需資源,确定測試政策、測試系統、測試任務,評估和确定測試工作量。測試資料和用例是對産品進行任務描述,通過測試需求分析、業務流程分析、測試用例設計、測試用例評審以及測試用例更新及完善這幾個步驟完成測試用例的設計。

2、搭建測試環境、執行測試用例。

測試用例執行的第一步就是要先搭建軟體測試環境,要給出軟體的安裝指導書、運作的軟硬體環境、以及相關的配置等等。測試執行中,要全方位觀察軟體産品的問題,以及确認是否和預期測試用例結果是一緻的。

3、送出測試報告。

在測試完成後,測試人員需要根據測試結果對發現的問題和缺陷進行分析,包括缺陷率、缺陷分布、缺陷修複趨勢等。給出軟體各種品質特性包括有功能性、可靠性、易用性、安全性、時間與資源特性等的具體度量。測試報告是測試階段最後的文檔産出物。優秀的測試經理或測試人員應該具備良好的文檔編寫能力,一份詳細的測試報告包含足夠的資訊,包括産品品質和測試過程的評價,測試報告基于測試中的資料采集以及對最終的測試結果分析。

4、跟蹤Bug修改情況,不斷測試完善産品。

5、産品的其他方面測試。

在單元測試基礎上,将測試子產品組裝成系統,完成對産品的內建測試。以及對整個産品進行系統測試,找出需求規格等問題。可以過程中利用測試工具TestWriter對産品進行功能測試、還有一些性能及其它方面的測試,也可以選擇正确的工具進行選擇。軟體測試是貫穿于整個軟體生命周期的,是以還需要對線上功能檢查、目前版本問題回報以及改進建議等,這樣才算是比較完整的一個最終結束。

軟體測試還有明天嗎?

七.你經常懷疑的問題1:軟體開發是不是比軟體測試更好?

首先,這種問法的前提就是錯誤的,或者說這個問題問得比較外行。軟體測試和開發是産品開發中同樣重要的兩個闆塊,無論在哪個領域發展都可以給你實作價值的空間。而且從目前的行業發展情況來看,測試人員必須要懂一些開發,而開發人員也必須要會一些基本的測試,并且在軟體測試領域中的“測試開發“崗已經變得越來越重要,是以它們之間并無太大區分。

所謂的好與不好,與行業無關,與你個人有關。做不好軟體測試,你也不一定就能做好開發。

當然,大家有這種疑問也并非沒有道理。

軟體測試還有明天嗎?

在這裡推薦一個軟體測試交流群,QQ:642830685,群中可以不定的分享軟體測試資源,測試面試題以及測試行業資訊,大家可以在群中積極交流技術問題哦。雖然測試人員的需求量少于開發,雖然軟體測試入門相對簡單,但是,相對簡單,并不代表普通人就能做好,需求量少,也不代表就沒有錢途,是以并無哪一個的更好這種說法。

當然,很多人在轉行做技術前,都會糾結是選開發,還是選測試。那開發是不是就真的比測試薪資高、比測試更有發展前景、比測試更好呢,并不一定:

1、IT行業都需要經常加班的,是以軟體測試和軟體開發其實都一樣。如果你真正做過軟體測試,會發現測試人員比開發人員頭發更多一些(輕松一些),并且測試人員不會被産品氣到吐血;

2、目前國内軟體測試的待遇相比軟體開發不相上下,如果你能做測試開發或者是性能測試、自動化測試,那麼測試的工資甚至比開發的還要高;

3、軟體測試的發展比軟體開發更廣一些,開發大多與産品經理打交道,但測試因為需要把控整個産品,則需要跟很多崗位的同僚溝通,包括産品、開發、運維、售前、售後、客服等等,後期可發展成全面型人才;

4、軟體測試的崗位需求越來越多,而且高校還沒有普及相關的專業和課程,是以競争壓力想多而言,也會更小一些。

當然,無所謂哪個好哪個不好,适合自己的才是好的,你也可以先做開發,然後有興趣了在轉行測試,這樣提升也會快點,未來純粹的功能性測試人員遲早會被淘汰,是以即便要做測試,也一定要做一名懂開發的測試。

八.你經常懷疑的問題2:測試是不是比開發要求更低一些?

不能說哪一個要求更高,或者哪一個更好。隻能說軟體測試的入行門檻相對于軟體開發要低一些,但并不是指軟體測試的要求就比開發低。就好比,你能說教國文的就比教數學的要求低麼?

軟體測試剛在國内發展時,大多數從業人員是做一些基礎的功能性測試執行工作,這讓很多外行人都誤以為軟體測試就是點點點。但随着網際網路行業的發展,使用者對産品的品質要求越來越高,未來單純隻是做功能性軟體測試的人不再滿足于企業的招聘要求,而懂得一定開發知識的綜合性技術人才才是發展趨勢。

今年,很多研發企業中測試工程師的職能已經開始慢慢轉移到開發工程師身上,并且由項目經理做引導,使兩個開發團隊去測試對方團隊開發的軟體。這樣就能夠有效的避免思維誤區,同時也能增強軟體開發工程師的溝通協調、風險意識、挖掘需求、分析總結等能力。

這兩年的自動化測試比重明顯增加,一些簡單的極限操作測試将會由接口程式來完成,比如測試軟體圖檔從重複加載多少次會造成軟體卡頓、遊戲軟體裡撞牆多少次竟然能夠穿牆,這些簡單無聊的測試以前會耗費測試人員大量的時間,并且可能花了大量時間後也無法測試到真正問題的原因。但如果使用接口程式來解決,就可以大量的節省測試時間以及測試的全面性,這樣的效率對于手工測試而言,是完全無法達到的。

未來3-5年内,一些低端的測試人員會被行業所淘汰。軟體的性能測試、需求測試等方面的需求仍然無比巨大,因為這些需要主觀分析總結,用經驗和邏輯分析得出的問題,是算法無法實作無法取代的,正如AI永遠取代不了程式員一樣。

簡單的測試技術已成為軟體開發工程師的必備技能,開發人員将自己打造成複合型人才,具備綜合技能與專精技能;而軟體測試也将慢慢發展為測試開發型複合人才,隻有真正有能力的程式員,才能與行業同行,不被市場所淘汰。

九.你經常懷疑的問題3:軟體測試崗位到底會不會被開發取代?

軟體測試是由于軟體開發程式設計行業高度成熟後所形成的産物。從行業的整體成熟度來講,軟體開發行業的整體成熟度更高,人們對軟體開發的了解也更為全面深入。

故此通常将軟體測試和軟體開發放在一起做比較。縱然二者都屬于産品研發但通常人們的關注點有所傾斜。是以經常用軟體開發設計工程師的要求來評價軟體測試工程師,僅看到軟體測試和軟體開發相比的弱勢卻看不到優勢。

大家對軟體測試崗位甚至還有更深的誤解,比如:

1、測試的工作沒有任何技術含量。

很多人都認為軟體測試就是安裝程式、運作程式、點點滑鼠、按按鍵盤的工作。但這幾年因為使用者要求越來越高,産品變得越來越複雜,測試人員的技術知識體系也需要不斷更新和完善,并且随着新工具、新流程、新設計方法的出現,軟體測試人員也需要像開發一樣持續學習。

2、測試就是找Bug。

找Bug、交Bug是測試人員最基礎的工作,測試工程師需要把控整個産品品質,代表客戶的利益去把控産品、驗收産品,是以他們需要做得不僅僅是找Bug。

如果沒有測試,軟體品質就很難得到保證。近年來由于企業對軟體品質的要求越來越高,測試人員也随之而越來越受到重視,探其原因,主要是:

市場競争激烈,企業對軟體開發的周期和品質要求越來越高,如果沒有專業測試人員,開發很難在短時間内做出客戶滿意的系統。開發很難在自己編寫的程式中檢查出錯誤,開發也會遺漏需求功能或者缺失異常處理,需要測試來幫助他們檢查軟體是否有Bug ,是否符合産品設計,是否符合使用者習慣,異常是否都已經處理。現在的軟體系統越來越複雜,一個軟體可能由幾到幾十個人來開發,單個開發可能隻熟悉他所編寫的子產品,對于其他有影響但不熟悉的子產品,容易産生錯誤。

如今,在每個軟體企業中,測試都處于一個很重要的地位,對于一個合格的測試工程師,不僅要要了解産品想怎麼玩,使用者會怎麼玩,營運想要使用者怎麼玩,還要知道開發怎麼實作,測試如何進行,何為技術難點等等。普通的測試崗位的确很容易被開發所取代,并且也會逐年減少,測試開發才是未來的發展趨勢。測試開發的核心職能依然是測試,隻是通過開發的手段提升測試效率。當然,這也是需要在保障品質的前提下。測試與測試開發的差別就比如同一個人用人肉來分揀快遞,另一個人發明了自動機器人來分揀快遞,看起來後面這位更進階,但是實際目的還是分揀快遞。

軟體測試還有明天嗎?

十.王者和青銅的差別就在這裡了:一個優秀的軟體測試工程師要具備哪些能力?

1、首先必須一定要具備的就是認真、負責、嚴謹、耐心的态度,因為軟體測試工程師吃的就是這口飯,是以必須對你所測試的産品負責。甯可錯殺一千,也不可放過一個,雖然不能做到完全沒有Bug,但一定要盡自己最大的努力保證産品品質。

2、要有過硬的技術本領,技術是為測試服務的,無論是測試理論、測試工具、開發知識、資料庫、作業系統、網絡知識、你都必須精通一門,知曉其它。當然這個做到比較難,什麼都會很難,再者多了之後就不會精,什麼都會也等于什麼都不會,至于最後你選擇深度還是廣度,都由你自己把控。

3、光有技術,沒有業務,再好的技術也很難使上勁,熟練的業務知識會幫助你發現更多的缺陷,進而更好的保證好産品的品質。不懂産品的工程師不是好工程師。測試工程師需要訓練自己的使用者思維、使用者視角,把自己當作真正的使用者去感受産品。同時你還可以收集産品資料來做分析,通過資料再量化産品。甚至你還要去研究競品的相關情況,知己知彼方能百戰不殆。

4、溝通能力超級重要。一個優秀的軟體測試人員除了經常要與開發打交道外,還需要與産品、運維、售前、售後、客服等不同的人打交道。是以如何更準确、更簡潔、更嚴謹的描述Bug,如何讓開發人員接受你發現的Bug,如何讓其他人員了解你的想法等都需要溝通,是以良好的溝通能力顯的尤為重要。

5、缜密的邏輯思維能力。測試人員不僅僅隻是發現問題,找出Bug。更重要的是要去尋找Bug産生的真正原因,精準的找到問題發生的源頭,以便協助開發人員更好更快的徹底解決Bug。這個比較考驗你思維的靈敏度和推理能力。其實測試人員和刑偵有一些點類似,除了要求有缜密的邏輯思維能力,有時候還需要具備逆向反推能力。

6、測試雖然不像開發那樣創造産品,但測試需要保證産品各方面的品質,讓使用者使用産品時覺得舒服、友善,是以大多數測試工程師都需要有一顆追求完美的心。

十二.靈魂拷問:入行軟體測試,是選擇自學還是教育訓練?

自學

對于自學

控制力夠強嗎?

你的了解能力怎麼樣?

優勢:金錢成本較低,能夠按照自己設定的學習計劃進行學習,時間安排也比較自由。

劣勢:自學消耗的時間比較長,如果沒有基礎的話,想要自學也是比較難的,相對于有一定基礎的,一般都是在空閑之餘用碎片化的時間去學習,想要在軟體測試的領域小有所成,找到一份正式工作,怎麼也得一年半載吧。自學需要強大的自制力,需要耐得住寂寞,每天固定的堅持學習,但是遇到技術難點很容易做牛角尖,導緻半途而廢。

教育訓練

優勢:學習時間相對較短,整體學習比較全面,學習内容也比較集中。專業老師按照大綱進行系統授課,在學習中遇到技術問題能夠快速得到解決,同時還有專項的練相對于自學,學習氣氛更加濃厚,跟同期學員對問題的探讨,對拓展思路有很大的幫助。讓學習變成一件很快樂的事情,學習起來也會很有動力,學習的效果會更好。

劣勢:相對于自學,教育訓練是需要金錢成本,一般的教育訓練機構學習費用都在一萬五到三萬不等左右,還要加上學習期間的生活費,學習成本比較高。PS:從時間就是金錢的角度來看,上面說的自學優點反而不成立啦,提前工作半年的薪資估計不止一兩萬吧。

如果你不是一個自制能力很強的人,又想能夠盡快的提升技能,最好是找一家靠譜合适的教育訓練機構進行學習,畢竟教育訓練價格不是小數目,主要是看錢花得值不值,主要取決于教育訓練機構的品質。不過無論是教育訓練還是自學,自己都得努力去學習,不然說什麼也無濟于事。

關于軟體測試的話題就跟大家聊這麼多了,還有問題可以直接私聊。碼字不易,覺得有幫助的,麻煩手動點贊收藏一波!在這裡推薦一個軟體測試交流群,大家可以在群中積極交流技術,另外還有大佬為你答疑解惑。

寫在最後:

前輩曾說:唯有最艱苦的等待,最艱難的堅持,以及最崇高的堅守夢想,才值得獲得最經久不衰的掌聲。

在堅持的路上,你總有撐不住的時候,可以對自己說聲“我好累”,但永遠不要在心裡承認說“我不行”。不要在最該奮鬥的年紀選擇了安逸,沒什麼好說的,一無所有就是奮鬥的理由,我們試着長大,一路跌跌撞撞,然後遍體鱗傷,總有一天,你會站在最亮的地方,活成自己曾經渴望的模樣。是以朋友們加油吧,相信你乘風破浪會有時,直挂雲帆濟滄海。

看完的小夥伴們,記得舉起你那可愛的小手給我點個贊,您的點贊是我更文的不竭動力,筆芯。

軟體測試還有明天嗎?