軟體開發和軟體測試,我該從事哪個方向?
我是一名大四應屆畢業生,馬上就要出來實習了,但是我們專業軟體開發和測試都有學習到,我到底該選擇哪個方向實習並未來從事,很迷茫,希望大神為我指點一二。
二選一的話能做開發就開發
再說詳細點,選開發是因為早晚你都會碰到開發的事如果你測試繼續做,自己感受一下,如果你發現一個bug看不懂開發人員的代碼無法直接找到問題的源頭那你的作用究竟大不大,是不是明天來個人你就被換了他們繼續幹活。不要聽某些手工測試說的業務很重要,業務熟悉了也很厲害,鬼扯淡,目前的趨勢就是業務開發自己要熟悉業務自己提出業務的不合理和建議而不是悶頭做,最大限度調動員工的積極性,並且做過開發的業務人員肯定也能在早期就預計到項目的潛在危險和難點在哪裡。你知道騰訊的張小龍嗎?
然後說自動化測試,無非就是用過幾個庫,調用過幾個API,讓大多數這種人去做個工具開發,一下就找不到北了。目前開源的東西確實很完善了,沒錯,但是萬一萬一你用到了bug呢?指望自己提個github issue等那些木熊熊的人來幫你修嗎?省省吧,還不如自己debug自己改了提PR。還有很多自動化測試的,問他們Robot Framework,用的地方說的頭頭是道,然後提到缺點有嗎?一下悶了,這要是有做過不少開發經驗的,立刻就能發現這貨竟然只能一個個執行case,所以你真的充分使用了Python嗎?
再說測試開發,到這一步你就是開發,只是你的知識儲備都是在做工具上,比如測試工具和運維工具,所以如果你做過開發再殺回來做測試,有什麼不好的嗎?並沒有啊,而且正經的測試開發現在可是搶手貨,到時候選擇權在你手裡,心裡別提多樂呵了。
最後總結,未來就是測試開發重要,自動化測試只是個過渡階段性職位,但是我並非不看好測試,測試很重要,但是重要的是有潛力有想法有行動力的測試開發,手工測試的時代過去了,自動化測試的熱潮也會逐漸退潮的。所以,二選一做開發,以後你覺得開發競爭壓力大了再殺回來做測試開發也不是不行誒。這個問題問的好。
今天下午信心滿滿的提測了,沒想到被測試啪啪啪打臉。雖然挑出的問題看上很小,改改也就完了,但是確實最影響用戶體驗的問題,雖然也確實是黑盒測試,但其實黑盒能做好也很不容易,這個問題對於我來說也很複雜。
之前我一直以為開發應該兼容測試,甚至去擴展測試技能,但是經歷過今天下午,慢慢的發現,其實測試也是一門值得花非常多心思去好好研究的。尤其是黑盒。RD都是在黑盒和白盒之間來回切換,但是這種切換的流程進容易導致疏漏,所以需要進行走廊測試、單元測試等,切記,尤其是走廊測試,說白了就是隨機拉個人立馬測試你做完的功能,這樣就能夠避免大部分的低級bug而導致的高級bug出現。
總之就是一句話:不會測試套路的RD不是好的Coder。(現在我只能說自己是Coder)
謝邀。開發創造了世界,測試改造了世界。不懂兩者關係的路人甲們(自我認為是程序員的程序員),就別BB了,以管窺豹,貽笑大方。
知乎從來都是開發的天下,各路人馬,不管是真懂的還是假懂的,已經把開發的前景介紹的很透徹了,我今天不想過多談論,就著重聊下軟體測試吧。
以前和一個在華為做測試的朋友聊天,他也和我說,在歐洲,測試人員的「地位」比開發人員要高。也許真的是這樣,在我國,也許某些企業里某些時候,真的測試人員整體待遇高一些,不過……
測試人員工資差別極大,只會在屏幕上點點點的測試人員年薪也就四五萬,這是不爭的事實。同時,年薪20W+的測試工程師也是大量存在的。
我曾經帶過的測試團隊不算管理崗只說技術崗,既有月薪三、四千的也有月薪超過二萬的。主要還是看本事。
測試崗位分類:功能測試、性能測試、安全測試、黑盒測試、白盒測試、灰盒測試、自動化測試、測試開發、測試經理。
測試技術崗位級別:初級、高級、資深、專家。測試管理崗位:測試組長、測試經理...這上面的崗位很多都比開發的工資高,關鍵還是在於自己在做的是什麼類型的測試。
- 如果你是手工方式執行別人設計的測試案例,那麼你的工資可想而知會比最初級的研發人員要低很多,因為最初級的研發人員也在產生代碼,而你僅僅是在手工方式執行別人設計好的東西。
- 如果你業務比較熟悉,可以設計很好的測試案例,系統的缺陷率、逃逸率等各項指標都非常優秀,系統運行正常無缺陷,那麼你有可能拿到比初級開發人員高的工資。
- 如果你可以藉助自動化測試工具,開發自動化測試腳本,大大提高測試覆蓋和回歸測試效率,那麼你很可能拿到普通開發人員一樣或者更高的薪資。
- 最後,如果你可以定製和開發測試工具,如果你精通白盒、灰盒、性能、安全等測試技術,如果你是某領域的業務/行業專家,如果能夠指導和管理測試人員完成大型系統的測試工作,估計很多研發人員都會羨慕你,包括你的工資。
總體而言,測試沒有開發工資高,這幾乎是全球範圍都存在的共性,在我國有80%的軟體測試人員其實不是真正意義上的軟體測試工程師(我也不知道該怎麼稱呼這批人,有人提議叫測試員)。我分析主要原因如下:
1)軟體測試入門檻低,吸引了很多技術水平較差的從業人員,從而拉低了整個行業對測試的評價,而這批人往往大都不思進取;
2)開發直接創造價值,而測試的價值很難直接衡量,從人的本性講更願意為直接創造價值的人和事付費,同理銷售人員普遍也比技術人員掙錢多;
一個優秀的測試工程師需要的知識結構,從全面性角度來看,包括如下幾個方面。那些認為軟體測試簡單或者覺得沒有開發有技術含量的人也好好看看(開發講求深度,測試講求廣度)。
第一是計算機知識,包括編程語言,掌握至少一門開發語言,比如C、Java、C#等,一門腳本語言,比如Python、Perl、Ruby、Shell中對於測試工程師未來更廣的職業發展非常有幫助。資料庫知識,對於絕大部分項目或互聯網項目,都會有資料庫,所以掌握至少一門資料庫,比如Oracle、SQl Server,DB2、Mysql等。另外操作系統,比如Linux、Unix,Windows核心命令也非常重要。對於有些涉及到網路的,網路和通信知識,比如TCP/IP協議也非常重要。
第二部分是軟體測試核心技術,掌握軟體測試核心的方法論,具體包括軟體測試需求分析與軟體測試用例設計核心工程方法。掌握主流的軟體測試工具,比如性能測試工具JMeter/LoadRunner,自動化工具典型代表Selenium/UFT/Appium,測試管理工具等,事實上光有這些工具還不夠,還需要真正理解其背後的實現原理。掌握核心的研發流程,比如RUP,測試流程,比如雙V模型,或者是現在流行的敏捷測試等,也是同樣重要。方法是秘笈、工具是兵器、流程是套路。雖然測試好比武術,棍術好比黑盒測試,劍術好比白盒測試。不同的武術對知識結構要求是不一樣。這個也是前面講到的進入軟體測試領域的方式相比開發要多的原因之一。第三個部分是行業知識與背景,這個對於有些行業而言,非計算機專業的人會有些相對的優勢。第四部分是英語,英語好對於做好軟體測試也有非常大的幫助,尤其是國際化軟體測試。
軟體測試工作無論從行業現狀,軟體測試的重要性,以及軟體測試發展史來看,至少在可以預見的未來10年時間內,整個軟體測試行業應該會處於蓬勃發展這樣一個生命周期中。因為一項職業從孕育、發展、成熟、穩定需要一定的時間來承載。這點,大家也可以從一些官方的數據來看到。
如果非得要在軟體開發和軟體測試做一個結論性的比較,還是比較困難的,所以給每一位看到此文章的人一個建議,如果你很難選擇把哪個作為自己的職業來思考。就強烈建議你可以問下這兩個領域資深的人,他們的建議對於你來說應該比較關鍵。
非要我給出你最終的建議,那就是:遵從本心,自己擅長哪個就做哪個,只要做,就深入的做,工資只是技術的具體體現而已。
前段時間強哥剛整理髮表了一篇 軟體開發和軟體測試,我該如何選擇 在此就搬用過來回答你這個問題。我一直認為,在開發領域,強哥的測試技術非常紮實,在測試領域,強哥的開發能力實在牛逼。如果我天天糾結到底是開發好還是測試好,還活不活了?
我們先來談談技術追求這個事情,就像強哥學院的LOGO一樣,「工匠精神」這個詞,自從被羅胖(強哥為數不多的幾個比較認可的偶像,當然,強哥現在也使用鎚子手機,很不錯,軟體應用細節處理得很好)提出來以後,現在全民都在提,這不是什麼壞事。至少,讓浮躁的人們知道了,「工匠」其實是最受人尊敬的,也是最有尊嚴的一個群體,就像現在丈母娘都越來越喜歡IT宅男一樣的道理(錢多,事兒少,脾氣好,俗稱「經濟適用男」)。所以,偶你還在糾結做開發還是做測試,證明你其實是沒有技術追求的,這一點你不一定會承認,但是身體是誠實的。
為什麼這麼說,其實道理很簡單,我們來設想這樣一個場景:如果你是一個爺們兒,突然在你的生命中出現了一個美麗的姑娘,你會怎麼辦?你會糾結嗎?你糾結什麼?假設正常情況下,你不糾結,為什麼呢?因為你內心很篤定,就是她了,你一定不會跑來問強哥的。我們選擇職業,道理也是差不多的,人為什麼會糾結,只是因為不夠堅定而已。就像到底學Java好還是學Python好這樣的問題,每天充斥著QQ群或者交流論壇中。現實的情況是,測試也好,開發也罷,如果你不去執著於對技術的追求,你相信我,你一樣都干不好,建議你也別干這行了。就像很多人之所有選擇測試,是因為害怕編程,基本上來說,不懂編程,要想在測試技術領域有所作為,很難,30歲以後轉行的不少,中年危機更甚。
人性就是這樣,這山望著那山高,老婆總是別人的好,那個優秀的孩子總是別人家的,或者經常聽到一些自我催眠的話,哥的人生哥作主,等等言論。我們不談對錯,只談現象。強哥接觸的人,特別是學生,各種風格,各種性格,形形色色,當然也有各種奇葩,基本上,我在很多人身上,都能夠感受到一點:很多人總是把希望寄托在一些不切實際的未來,而不是把握當時當下確定的現在。得不到的永遠是最好的。這些都是人之常情。
強哥也是熱愛技術,大學一直自學編程,但是,當第一家公司安排我去做測試工作時,我想都沒有想,我要做程序員,還是接受公司的安排,做軟體測試。因為原因很簡單,我只想搞技術,我必須要進入IT這個行業,特別是當年我還是一個小菜鳥的時候,尤其又是一個統計學的學生。至於IT這個行業未來會怎樣,管它呢,我又掌控不了,我唯一能確定的是,我喜歡這個行業。再退一步,無論我做什麼工作,誰都阻擋不了老子寫代碼的熱情。所以,強哥現在仍然保持足夠的代碼量,所以我能寫書,出視頻,寫教材,所以我能在公司裡面保持技術的領先地位,即使現在我是一個CEO,很多朋友都勸我作為一個CEO,要做好三件事情:「找人,搞錢,定戰略」,去他媽的三件事,老子就想做好一件事:「用技術去征服世界」。讓技術,成為蝸牛學院的定海神針,建立培訓機構的技術壁壘。為什麼強哥要去找人,要去搞錢?為什麼我們不能強大到讓人來找我,讓錢主動送上門,這才是格調。
回到本話題的出發點,學開發還是測試?
強哥給你的建議就是兩句話。第一句:「做任何你周邊的朋友不敢做的事」。第二句:「做你認為你自己最想做的那件事」,強哥怎麼建議你,不重要,朋友怎麼建議你,不重要,老師怎麼建議你,不重要。當然,如果你仍然無法抉擇,那麼你就跟隨強哥吧,把測試和開發,前端和後端,管理和技術,通吃。走向人生巔峰,指日可待。
這個世界上,為什麼成功的人總是少數?
可能只有1%,強哥來告訴你,因為那99%的人都選擇走大路,走一條容易走的路,只有1%的極少數人,走的人別人從未走過的路,是一條難走的路,他們不成功,天理難容。
註:本文為資深IT屌絲,蝸牛學院CEO鄧強老師原創,首發自http://www.bossqiang.com/article/3,轉載請獲得授權並註明出處。希望繼續在IT行業突破提升自己的各位朋友,歡迎加群384053806,不管你自我感覺牛不牛B。
謝邀。
我大二,指導不了你哇。
測試應該不敲代碼哈。無法提供建議,推薦看其他回答。抱歉。開發我的個人項目還要自己寫單元測試以驗證typesystem正確性可見測試是包含在開發過程中的
開發,顯然你沒有意識到,測試其實是開發的一部分,至少在我們公司是這樣,或者測試本身也包含有開發,現在很多公司要求測試人員會寫腳本
先做開發。
以後再選擇會從容些
結合自己的能力去選擇,而不是你憑空想像
謝邀,看到其他小夥伴的回答已經很全面了。我再簡單說一下:
1.你要確定自己對開發和測試哪個更感興趣;
2.藝多不壓身。如果從事測試的話,建議在提升自身測試技能的同時,也學一學開發,對以後職業發展有好處。
3.實習是個好機會,可以分別選軟體開發和測試崗去實習幾個月,自己親身體驗一下。才知道哪個更適合自己。年輕不要怕試錯。
4.最後小小案例一下,可以來接我們的專業測試任務來提升自己的動手能力和直觀感受哦。
祝你有個好前程,加油!
直接說答案好了,先做開發。
我不知道為什麼會有這麼多人認為開發就是好,都讓題主選擇開發。
在一個軟體生命周期中,測試的地位絕對不會低於開發。有些測試甚至從需求階段就已經開始。 我倒是希望題主可以多考慮一下測試,尤其是多多關注自動化測試。簡單來講,測試分為兩大類,第一類是人工(手動)測試,第二類是自動化測試,兩者在測試過程中都很重要。
手動測試理解起來比較簡單了,掌握基本的測試方法理論,基本上就可以上手操作了,沒什麼技術含量。但是自動化測試的難度和工程量就比較大了。 幾年前自動化測試在國內可以說基本上是空白,目前來看自動化測試在國內也只能說是剛剛起步的狀態。可是國外的軟體行業非常注重自動化測試的發展,題主如果有興趣的話可以稍微關注一下每年的Google的自動化測試大會,大會每年都會提出很多自動化相關的先進理論和思想。說了這麼多,啥意思?就是說自動化測試現階段在我國還屬於一個萌芽狀態,能夠掌握一些自動化測試技術的人在軟體行業會比較吃香,而且現在結合上一些智能機器人等介面複雜多樣、環境部署複雜的軟體系統,自動化測試技術更是顯得尤為重要。題主可能比較關心測試和開發的工資吧。其實,由於現階段越來越多的公司,尤其是像bat、京東等大一些的互聯網公司對自動化測試的關注度越來越高,對測試人員的要求也越來越高了。有些時候,測試開發崗的工資會比傳統的開發崗(比如Java工程師等,演算法類除外)要高一些。
自動化測試可以說是軟體行業內的朝陽崗位了。利益相關:曾在某大型網路安全公司擔任自動化測試工程師,畢業後將繼續從事自動化測試開發。選擇適合自己性格的職業方向能夠少走不少彎路。
首先來個測試題
如果你心情不好,你會傾向於以下哪種做法:
A 和朋友在一起 B自己靜靜 C 前二者都可
如果選A:那麼你較適合 測試。
因為你的性格是向外的,就是能從人群中獲得能量。做軟體測試從初階到進階,其實是不斷地與人溝通的過程。
如果選B:那麼你較適合開發。
開發從初階到進階,更適合在獨處中鑽研,包括深夜敲下一行行代碼。
(當然二者發展到高階,都是需要溝通,對於選B的人來說,是消耗能量的,但那時候已然都是老鳥了,所以也不怕不怕的)
如果選C:那麼恭喜你,不管開發和測試,選『』給錢多的「
你很小的幾率會出現因為性格不合而對某個崗位特別厭煩的情況。
給錢多的崗位,說明人會用得比較狠,而初入職場的年輕人,
鍛煉和成長還是很必要的。
等你積累足夠多,到時候你願意開發轉測試還是測試轉開發還不是都隨你
謝邀
樓上已經有如此多的精闢的回答了。在這我也不再過多的講解什麼了,就默默的跟上一句,開發+1~
謝邀。如果你本身沒有很明顯的傾向,那麼個人建議做開發吧,無論從現實還是薪資角度來說。。。
測試相對開發來說,入門相對簡單點,但也絕非很多人所認為的點點點(那不叫測試工程師,只能叫點工),誠如上面某個哥們說的,測試要求廣度,開發要求深度,這也是相對來講,等相對進入高級的時候,測試和開發其實沒太多分別,工作的對象都是代碼(這個沒毛病吧),只不過一個產出,一個測試。。。
個人認為軟體測試的發展前景還是蠻不錯的,整個互聯網行業漸漸趨於理性,無論是崗位需求還是行業成熟度,當然,技術能力,思維邏輯能力,跨領域思考能力也再潛移默化中不斷要求成為一個工程師的必備技能,參考參考講國外還是國內的軟體測試工程師是怎麼樣之類的書就行了,你要明白的一點就是:很少有人在一個行業從事一生,特別是現在這種變化越來越快的時代,你需要的是不斷提升自身的核心競爭力,快速學習能力,思考能力,無論是做測試還是做開發,最終的目標都是產出優秀的可用的產品給用戶提供服務!
竊以為,未來的不久,軟體測試崗位會越來越模糊化,定位泛化,而不像現在這樣區分很多的崗位,自動化和專項測試是占很大部分的發展方向。。。
當然,只針對你問題本身的話,建議你做開發吧,測試相比開發,瓶頸來的更快,而且開發做不了可以轉測試啊,雖然不想承認,但目前好像大家都覺得測試沒什麼技術含量(有點悲哀的是很多測試人員自己也這麼想)。。。
抱歉瞎扯這麼多,個人建議,轉開發,入行後,你就明白了
妥妥的開發啊~~~~~~
純瀉藥,選開發,開發干不下去了還可以轉測試,測試干不下去了……什麼你測試點點點都不會了么……
瀉藥,題主的這個問題6年前的我面臨過,那時候我剛剛畢業,在武漢,學的軟體工程,那時還沒特別多的測試需求,大部分都是開發,沒有實習經驗,工資開1800都沒人要。後來到上海選擇了測試,一直走到今天。
回答問題:我建議先從開發做起,再跟隨自己喜歡的錢途進行選擇。
由開發轉測試的難度相對於測試轉開發的難度要小很多,在你沒有考慮清楚前,不要放棄開發的技能成長。
一個好的開發要有全局思路
一個好的測試要善於通過開發的實現方式結合自己的業務能力去尋找缺陷
如果你喜歡測試,也要從白盒和灰盒入手
最後,題主你的性格會決定你今後的發展,也註定你會適合哪些方向,這個需要你自己仔細思考
謝邀, 開發崗位你自己要選擇一門語言去發展,測試的話有實習機會直接去就行,就現在各大公司招聘需求和崗位競爭而言,前期測試比開發稍微好一些,開發的話前期入門難,後期會越走越順
推薦閱讀:
※如何看待CCF在每年選擇最後一題的賣萌行為?
※圖形學初學者,如何學習Polygon Mesh Processing這本書?
※編程有可能娛樂化(遊戲化)嗎?
※排序演算法中的「穩定」和「不穩定」,有沒有一個結論性的因素導致該演算法穩定或不穩定?