01、什么是軟體測驗?
軟體測驗是通過手工或自動的方式,來運行或測定某個系統/程式,用來保障軟體質量、增加用戶體驗、降低開發成本的一種技術手段,它貫穿于整個軟體產品的開發周期,目的在于檢驗產品是否滿足規定的需求,

02、什么是軟體測驗工程師?
軟體測驗工程師(Software Testing Engineer)指理解產品的功能要求,并對其進行測驗,檢查軟體有沒有錯誤(Bug),確定軟體是否具有穩定性(Robustness),寫出相應的測驗規范和測驗用例的專門作業人員,
軟體測驗人員的職責在于協助開發人員盡可能地在早期發現并提出問題,提高產品在用戶體驗、安全性、穩定性、功能性等各個方面的質量,確保產品的正常運作,
按其級別和職位的不同,分為初級、中級、高級三類,
03、為什么企業需要軟體測驗?
隨著互聯網快速發展,軟體系統越來越復雜,一個產品不再是由1-2個開發人員單獨完成,而是團隊配合,可能每個人只負責其中一個模塊,對于產品全域沒有全面的了解,所以軟體在運行時非常容易出錯,也就是俗稱的Bug,
而且每一個開發工程師都會有自己的思維局限,自己的錯誤自己很難檢查出來,所以這時就必須要有專門的測驗工程師用專業的方法來檢查產品,否則會給企業帶來巨大的損失,
作為IT公司內部必不可少的重要組成部分,軟體測驗是保障軟體質量的重要手段,被譽為“軟體質量把關的最后的一道生命防線”,
給大家推薦一個軟體測驗技術交流群:1079636098 群友福利免費領取
現實案例
2017年3月,摩拜單車安卓最新版本出現技術漏洞,用戶充值1元,竟然返現110元;
2018年,淘寶雙11剛開始的幾分鐘內,下訂單時選擇識訓地址時系統出現癱瘓;
《王者榮耀》最新上線的英雄馬超連續位移bug,且傷害恢復能力降低;
星巴克咖啡由于POS系統的軟體故障無法處理交易,因此被迫關閉了美國和加拿大約60%的商店;
亞馬遜的第三方零售商看到他們的產品由于軟體故障價格全部被降至1英磅,由此導致慘重損失,
以上案例都是因為測驗沒有把好關,以致于讓存在問題的系統照常上線,最終給用戶帶來極差的體驗,給企業帶來巨大損失,由此可見軟體測驗的重要性,
04、軟體測驗人員的從業方向

技術方向
功能測驗工程師
自動化測驗工程師
性能測驗工程師
測驗開發工程師
測驗架構師
資深測驗架構師
業務方向
業務咨詢顧問
行業咨詢顧問
技術咨詢顧問
專案經理
質量保證工程師
軟體質量管理專家
管理方向
測驗組長
測驗經理
測驗主管
專案經理
產品經理
產品總監
05、軟體測驗“錢”景如何
廣州軟體測驗工資收入

全國軟體測驗工資收入
1-3年作業經驗軟測工程師招聘薪資

3-5年作業經驗軟測工程師招聘薪資
06、軟體測驗行業的現狀
1、據2019年軟體測驗現狀調查報告顯示,目前測驗人員所屬公司集中在通信及互聯網行業、應用軟體行業和金融行業,占總體70.7%,其它行業的比例相差不大,預計在未來的十幾年內,物聯網/互聯網、應用軟體行業和金融行業這三個行業還是測驗人員所在的主要領域,

2、測驗團隊規模正呈兩極化發展,要么在中小企業,要么在大型公司,因為中小型企業主打小型專案,專案類別相對單一,研發周期較短,且專案經費有限,小型測驗團隊即可滿足日常測驗需求,
而在大型公司,尤其是互聯網行業,大中型專案居多,專案涉及范圍廣,類別覆寫各個領域,產品更新迭代快,對于軟體質量要求更高,因此需要大量測驗人員才能滿足專案需求,這也是為什么軟體測驗人員比開發人員更有機會進大廠的原因,
3、軟體測驗行業目前男女比例為6:4,性別比例相對均衡,并非是大家印象中女多男少的情況,
07、關于軟體測驗的幾個誤解
1、人人都可做測驗?
不可否認,相比于軟體開發和設計,軟體測驗的入行門檻確實比較低,但就好比"人人都會寫文章,但不是所有人都能成為作家"一樣,人人都可以做測驗,但不是誰都能扎根在這個行業、持續長久地發展下去,不管做什么作業,能否取得成果,最終看的還是個人特質和用心程度,
如果你只注意到“軟體測驗門檻低”,而忽略了努力的重要性,那是沒辦法成為一個合格的測驗人員的,
2、直接讓開發去測驗不行嗎?
再次強調,測驗是一項精細化的工程,需要計劃、策略、方案、實施、總結、分析、反饋、需要對產品有非常透徹的了解、需要對用戶有同理心、需要對市場有很好的敏銳度、需要有足夠的大局觀、需要有寬泛的知識面、需要良好的溝通協調能力,還需要一定的技術功底,
也就是說,做測驗作業不僅要有方法論,還要真正落地實行,是需要長期學習和經驗積累才能做好的,

非測驗人員或許能在不經意間碰到bug,但不代表他一定能測出所有bug,就好比:一個普通人在戰區可能會踩到地雷,但不代表他能像專業的排雷戰士一樣,排查出所有的地雷,
因此,測驗作業不直接交給開發、產品,或者花錢找用戶去測驗,而是要聘請專業的測驗人員,
3、測驗崗行業地位低?
有些人覺得,測驗不參與軟體開發,技術含量不大,在業內應該會不受重視,這個想法完全是錯誤的,由于作業特殊性,測驗人員不僅需要對軟體的質量進行檢測,還要參與軟體的立項、管理、售前、售后等,在這個程序中,測驗人員接觸到的是公司專案的核心部分,其重要性不言而喻,
隨著科學技術的進步和發展,測驗技術已逐步滲透到國民經濟建設的各個領域,為各行各業提供強有力的技術支撐,所以,軟體測驗行業的發展和壯大也是當前時代驅使下的必然趨勢,
如果你不想再體驗一次自學時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以關注我一起討論,
在早期的軟體開發中,軟體大多是結構簡單、功能有限的小規模軟體,那個時候的測驗就等同于除錯,隨著計算機軟體技術的發展,除錯慢慢成為軟體開發不可或缺的作業內容很多開發工具都集成了一些除錯工具,但這個時候的除錯還僅僅傾向于解決編譯、單個方法的問題,

到20世紀50年代左右,隨著軟體規模越來越大,人們逐漸意識到僅僅依靠除錯還不夠還需要驗證介面邏輯、功能模塊、不同功能模塊之間的耦合等,因此需要引入一個獨立的測驗組織進行獨立的測驗,在這個階段,人們往往將開發完成的軟體產品進行集中測驗,由于還沒有形成測驗方法論,對軟體測驗也沒有明確定位與深入思考,測驗主要是靠猜想和推斷,因此測驗方法比較簡單,軟體交付后還是存在大量問題,
經歷這一階段后,人們慢慢開始思考軟體測驗的真正意義,1973年,黑澤爾(Hetzel博士第一次對軟體測驗進行了定義:軟體測驗是對程式或系統能否完成特定任務建立信心的程序,這個觀點在一段時間內比較盛行,但隨著軟體質量概念的提出,它又不太適用了,1983年,黑澤爾(Hertel)博士對其進行了修改:軟體測驗是一項鑒定程式或系統的屬性或能力的活動,其目的在于保證軟體產品的質量,思想一旦爆發,就會呈現出百家爭鳴的景象,這一時期,很多軟體工程師或博士都提出了自己對軟體測驗的理解與定義,

G.J.梅耶斯(G.J.Meyers)博士認為“軟體測驗是為了尋找錯誤而執行程式的程序”,相對于測驗是為了證明程式中不存在錯誤,他的觀點是正確的,
1983年,IEEE在北卡羅納大學召開了首次關于軟體測驗的技識訓議,然后對軟體測驗進行了如下定義:軟體測驗是使用人工或自動手段運行或測定某個系統的程序,其目的在于檢驗它是否滿足規定的需求或是弄清楚預期結果與實際結果之間的差異,
IEEE定義的軟體測驗非常明確地提出了測驗是為了檢驗軟體是否滿足需求,它是一門需要經過設計、開發和維護等完整階段的程序,
此后,軟體測驗便進入了一個全新的時期,形成了各種測驗方法、理論與技術,測驗工具也開始廣泛使用,慢慢地形成了一個專門學科,
雖然軟體測驗得到了長足的發展,但相比于軟體開發,它的發展還是相對不足,測驗作業幾乎全部是在軟體功能模塊完成或者整個軟體產品完成之后才開始進行,這樣發現軟體缺陷之后,開發人員再進行修改,會消耗大量的人力、物力成本,20世紀90年代后興起敏捷模型的軟體開發模式,促使人們對軟體測驗重新進行了思考,更多的人傾向于軟體開發與軟體測驗的融合,即不再是軟體完成之后再進行測驗,而是從軟體需求分析階段,測驗人員就參與其中,了解整個軟體的需求、設計等,測驗人員甚至可以提前開發測驗代碼,這也是我們在敏捷模型中所提到的“開發未動,測驗先行”,軟體開發與測驗融合,雖然兩者的界限變得模糊,但軟體開發與測驗作業的效率都得到了極大的提高,這種作業模式至今依然盛行,
歸結起來,軟體測驗的發展程序可使用下面的一張圖來表示,

如今,隨著人工智能與大資料時代的到來,軟體測驗更是受到越來越多的重視,但現在軟體測驗作業還依然沿用20世紀的方法、理論與思想成果,并沒有突破性、革命性的進展,未來,隨著軟體開發模型與技術的發展,軟體測驗的思想與方法勢必也會出現里程碑式的變化,這需要更多熱愛軟體測驗的人員積極投入研究,
如果你不想再體驗一次自學時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,可以關注我一起討論,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/247323.html
標籤:其他

