前言:
最近有很多考慮轉行做測驗的朋友問我一些軟體測驗的問題,雖然問法五花八門,我仔細梳理了下,問題呢過大同小異,也就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:從時間就是金錢的角度來看,上面說的自學優點反而不成立啦,提前作業半年的薪資估計不止一兩萬吧,
如果你不是一個自制能力很強的人,又想能夠盡快的提升技能,最好是找一家靠譜合適的培訓機構進行學習,畢竟培訓價格不是小數目,主要是看錢花得值不值,主要取決于培訓機構的質量,不過無論是培訓還是自學,自己都得努力去學習,不然說什么也無濟于事,
關于軟體測驗的話題就跟大家聊這么多了,還有問題可以直接私聊,碼字不易,覺得有幫助的,麻煩手動點贊收藏一波!在這里推薦一個軟體測驗交流群,大家可以在群中積極交流技術,另外還有大佬為你答疑解惑,
寫在最后:
前輩曾說:唯有最艱苦的等待,最艱難的堅持,以及最崇高的堅守夢想,才值得獲得最經久不衰的掌聲,
在堅持的路上,你總有撐不住的時候,可以對自己說聲“我好累”,但永遠不要在心里承認說“我不行”,不要在最該奮斗的年紀選擇了安逸,沒什么好說的,一無所有就是奮斗的理由,我們試著長大,一路跌跌撞撞,然后遍體鱗傷,總有一天,你會站在最亮的地方,活成自己曾經渴望的模樣,所以朋友們加油吧,相信你乘風破浪會有時,直掛云帆濟滄海,
看完的小伙伴們,記得舉起你那可愛的小手給我點個贊,您的點贊是我更文的不竭動力,筆芯,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/252506.html
標籤:其他
