-
1 # 東風高揚
-
2 # 蝸牛學院
軟體測試和開發是產品開發中同樣重要的兩個板塊,有開發的地方就有測試,兩者相輔相成,沒有優劣,無論在哪個領域發展都可以給你實現價值的空間。從收入角度來看,也相差無幾。我們先來了解了解軟體測試和軟體開發分別是做什麼的?
軟體測試主要工作就是測試軟體,但是測試前的測試需求、編寫測試計劃、編寫測試用例,測試後的編寫測試總結報告等,也是必須要做的。測試軟體又分為手動測試和自動測試,自動測試指綜合運用各類測試開發技術和自動化測試工具對軟體進行測試。最後,軟體測試的定義是為了找出軟體中的bug而執行軟體的過程。
軟體測試工程師一般會承擔以下一些具體工作:文件評審,用例評審,需求評審;測試用例設計,自動化測試指令碼開發,測試架構設計、寫作測試文件(測試計劃、測試方案、測試用例等);執行測試,發現軟體缺陷,提交缺陷報告,並確認缺陷最終得到了修正;透過測試度量軟體的質量;迴歸測試等等,工作內容是非常多的。
軟體開發主要是做軟體程式設計(即用程式碼實現需求功能),軟體研發主要流程是:市場或銷售團隊根據客戶需要梳理需求,研發人員拿到需求,根據需求能用程式碼實現出來,交給測試人員測試,測試OK就可以釋出。
軟體開發的內容是:需求、設計、程式設計。當然,這裡就牽扯到用什麼語言的問題了,在此就不展開話題多說了。
其實,開發和測試是矛與盾的關係,兩者相輔相成,沒有優劣,誰都取代不了誰。網路上很多人都在說,軟體測試入職門檻低,軟體開發入職門檻高。其實這個觀點有失偏頗,同樣說的很外行,下面具體來比較。
一個優秀的測試工程師需要的知識結構,從全面性角度來看,包括如下幾個方面:
第一是計算機知識,包括程式語言,掌握至少一門開發語言,比如C、Java、C#等,一門指令碼語言,比如Python、Perl、Ruby、Shell中對於測試工程師未來更廣的職業發展非常有幫助。資料庫知識,對於絕大部分專案或網際網路專案,都會有資料庫,所以掌握至少一門資料庫,比如Oracle、SQl Server,DB2、Mysql等。另外作業系統,比如Linux、Unix,Windows核心命令也非常重要。對於有些涉及到網路的,網路和通訊知識,比如TCP/IP協議也非常重要。
第二部分是軟體測試核心技術,掌握軟體測試核心的方法論,具體包括軟體測試需求分析與軟體測試用例設計核心工程方法。掌握主流的軟體測試工具,比如效能測試工具JMeter/LoadRunner,自動化工具典型代表Selenium/UFT/Appium,測試管理工具等,事實上光有這些工具還不夠,還需要真正理解其背後的實現原理。掌握核心的研發流程,比如RUP,測試流程,比如雙V模型,或者是現在流行的敏捷測試等,也是同樣重要。方法是秘笈、工具是兵器、流程是套路。雖然測試好比武術,棍術好比黑盒測試,劍術好比白盒測試。不同的武術對知識結構要求是不一樣。這個也是前面講到的進入軟體測試領域的方式相比開發要多的原因之一。
第三個部分是行業知識與背景,這個對於有些行業而言,非計算機專業的人會有些相對的優勢。第四部分是英語,英語好對於做好軟體測試也有非常大的幫助,尤其是國際化軟體測試。
一個優秀的軟體開發工程師需要的知識結構,從全面性角度來看,包括如下幾個方面,第一也是最重要的是精通至少一門程式語言語法,比如Java、C、C++、C#等,至少熟悉一個開發平臺或工具,跟具體開發語言對應的平臺,比如Eclipse、Netbeans、VC等。熟悉一門資料庫,比如Oracle、DB2、Mysql等,熟悉作業系統,比如Linux、Unix包括相關的編譯環境,比如gcc等。熟悉軟體工程、熟悉演算法、資料結構。這個方面可以多看看,設計模式方面的書籍。第二部分是英語,英語對於做好軟體開發也有非常大的幫助,因為開發平臺和環境都是英文為主。英語也有助於幫助理解一個程式語言的語法。
嚴格意義上來講,軟體開發和軟體測試都有非常不錯的職業前景。因為IT服務人類,IT改變人們的生活方式,IT對於現代社會而言非常重要。但從歷史的角度來看,軟體測試與軟體開發的職業前景還是有一些區別的。下面再來談談兩者的就業前景。
軟體測試工作無論從行業現狀,軟體測試的重要性,以及軟體測試發展史來看,至少在可以預見的未來10年時間內,整個軟體測試行業應該會處於蓬勃發展這樣一個生命週期中。因為一項職業從孕育、發展、成熟、穩定需要一定的時間來承載。這點,大家也可以從一些官方的資料來看到。
軟體開發工作從長遠來看,還是不錯的,但是相對於生命週期來看,軟體開發早已經不是以前很多企業只是關注把軟體做出來,就像現在要做出一個類似於淘寶的電子商城,其實從功能上,從程式碼實現上來看,已經很成熟了,花幾千塊可以買現成的模板,定製下,就可以。所以開發模式在改變,工廠化,模組化思想已經很成熟。所以將來的軟體開發一定會關注,個性化、差異化。從這個意義上來看,軟體開發的職業前景會受到需求的影響。另外,從行業資訊來看,比較新的開發技術會得到關注。老的慢慢會淡化。
總體而言,如果非得要在軟體開發和軟體測試做一個結論性的比較,還是比較困難的,所以給每一位看到此文章的人一個建議,如果你很難選擇把哪個作為自己的職業來思考。就強烈建議你可以問下這兩個領域資深的人,他們的建議對於你來說應該比較關鍵。另外,清楚地問下如下幾個問題:
第一,你的優缺點是什麼?
第二,你想做什麼樣的工作?
第三,有哪些事情是一定要靠自己的,有哪些事情是一定要藉助外力?
所以,有時我們不僅僅是要埋頭幹活,也需要抬頭看路,另外,人生沒有捷徑可走,但要懂得借勢而上。如果你對你的職業不滿意,轉行是一種選擇,樹挪死,人挪活。只是在挪的時候,分析下自己,因為你可以改變你自己。分析下外部的環境,因為你需要去適應環境。至於那個更可行,沒有答案。
關於如何入行這個問題,不管是培訓還是自學都只是一個入門的手段,殊途同歸罷了。
先說自學:
如果能夠自學入行可能基礎薄弱,但是就長期的職業發展而言是很好的,自學能力在這個迭代快速的行業是很重要的。自學的優點很多,良好的自學能力利於日後發展,自學能力強的人其他各方面的素質也不會差,意志力,決策力,執行力等等,而這些是影響你職業走向的東西。缺點也很明顯,不容易堅持。但是話又說回來了,沒有毅力的人還真要回到第一個問題好好考慮一下了。容易鑽牛角尖,效率慢,耗時太多,也學不深。再說培訓:
你要清楚的是培訓最大的優勢是: 在正規的培訓機構有一套完善的學習就業流程,也就是說提供的是一個學習-就業一條龍服務。缺點的話也有,不贅述,自行檢索。然而不管是自學還是培訓,都是建立在你決心轉行之後的,不要本末倒置了。而在這個問題上沒有人能夠對你做出指導,需要自己根據自己的實際情況自行分析。夢裡走了很多路,醒來依然在床上。如果決定轉行了,就開幹吧。但是,在決定轉行之前,慎之又慎!
回覆列表
軟體開發是不是比軟體測試更有前景?這兩個崗位的工作內容不一樣,這個最重要的是看自己的發展方向。軟體開發的就業量大,其實軟體測試的就業量也大,只是相對來說軟體開發人員的需求量大些。待遇來說,軟體開發的薪資普遍高一些,但在有些企業,軟體測試的待遇也是不錯的。
至於前景,還是主要自己願意朝哪個方向發展。自己能做什麼,想做什麼。至於待遇方面,可以看看下面工作年限差不多的待遇比較。
北京軟體測試開發工程師:薪資1-1.5萬/月
要求:本科學歷及必要的資格證書、技能以外,工作經驗三年。
北京JAVA開發工程師:薪資1.5-2萬/月
要求:必須的Java相關開發技能、本科學歷以外,工作經驗三年。
上面可以看出,相應的工作經驗的前提下,軟體開發工程師的薪資是要比軟體測試工程師的薪資要高一些的。但技能要求更多,範圍更廣。軟體開發技術性更強,測試工作技術性稍弱,但量也是比較大,工作比較繁雜,特別是如果是各種Case,各種資料都要自己寫的情況下。