軟體開發和測試工作似乎被分等級了,請教各位,在你們眼中,測試工作的地位如何?
至少,我身邊的同學在就業時,都盡量避免測試職位,覺得辛苦和乏味,甚至覺得只有不夠牛的人,才會去找測試的職位,這個現象讓我糾結
軟體開發工程師與軟體測試工程師都是軟體開發過程中不可缺少的.分工不同而已.
現在很多公司對測試工程師的要求也頗高,白盒測試需要具備的編程功力並不比普通的開發工程師低.
比如這一題的答題者中有人的簡介是SDET(software develop engineer in test) 這個名稱就很能說明問題了.
我覺得大家回答了那麼多,我就不多說了。但是有這樣兩點希望你借鑒。
其一,別人怎麼看是別人的事情,你怎麼看是你的事情。
其二,任何一個職業選擇去做都是要有興趣,要有熱情。軟體測試更是如此。
被分等級很正常,這就是現實,接受它吧。
測試工作不如開發重要,不管這種觀點是如何形成的,原因何在,那都是前人種下的果。或許是因為他們還沒有意識到到底軟體測試包含哪些內容、有什麼價值、重要性又有多少,因而產生誤解。也許也是因為他們曾經滿懷希望地招聘過很多測試人員,予以優厚待遇,卻被深深地傷害了一把,並沒有看到這些測試人員為產品為公司貢獻多少價值,因而開始刻意地區分開發、測試的等級。
如果我們想改變這種情形,真正有志於改善測試、開發分等級情況的我們,不應該顧忌這樣的「不公平」對待,恰恰應該向著這樣的困境前進,用實際行動讓他們知道,測試的價值和意義,以及測試人員的能力。為自己拼搏的同時,也為未來的測試人員們創造更加良好的就業環境。現實的講,測試工程師的地位是較開發略低。
這個有其歷史原因,優秀的學生通常不願意做測試,從而導致招聘的時候相對難找到好的人才,因此測試隊伍整體水平不高,反過來有導致了測試被開發看低。不只是在軟體,甚至在硬體行業也是這樣的。
測試工作,特別是黑盒測試中有很大部分較為重複枯燥的工作,相對是勞動密集型的,因此很多大企業會外包這部分工作,或者用Vendor來做。這部分職位本身是低端的。
在大企業,比如IBM,如果是應聘,其實不用執著於開發還是測試。因為在這樣的企業中經常調整工作,並沒有說只能專職做測試的。如果感覺自身實力競爭力不夠又想進大企業的話,測試是個好的敲門磚。所謂的地位高低,個人覺得都是心理原因,有些開發總覺得自己開發出來的東西很牛沒測試照樣能上線,有些測試覺得開發能寫代碼很牛逼,個人觀點是,只要測試能力強,技術過硬,在整個工作過程中積極主動,引導開發去工作,當兩者出現意見分歧時,你足夠能扯,有充分的理由讓開發心服口服,那麼你在工作中就處於優勢,也就是所謂的地位高
開發創造了世界,測試改造了世界。不懂兩者關係的路人甲們(自我認為是程序員的程序員),就別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。
修改一下答案,重要的不是別人怎麼看,或者怎麼說,而是在你自己,你覺得測試是不是枯燥沒有意思的,覺得對開發更有興趣,還是覺得測試其實還是挺有意思的,能做的事情很多,成長空間也很大。如果是前者,建議還是做開發比較好,如果是後者,建議不必太在意其他人怎麼想,確實有很多公司,有很多經理,有很多開發人員都有輕視測試的想法,甚至整個行業內都會覺得做產品,做經理,做開發更有前途更有價值,但那些都只是他們的想法,並不代表你自己的職業生涯會怎樣的發展,就算別人都不看好這個職業,但是你用心去學習努力去工作,一樣也可以做出你自己的成績。每個人的工作都是一個角色,做測試也好做開發也好產品也好,都是為了這個產品能夠順利的發布,每個人做自己擅長的事情,更重要的是產品,團隊而非個人
一言蔽之,神馬都要信任+爭取
我覺得這事從你做測試的那一天起就很明顯的擺在眼前了,糾結無意義。可以說說為什麼感覺不是一個等級。我的例子是指基礎職位,一般公司,別拿什麼IBM來噴我。
對公司而言,核心關鍵必然是能掙錢的人更加重要。銷售之類的能直接掙錢的就不用說了。技術之類必然是能生產出賣錢的東西的人更重要些。產品,研發,設計,必然是首當其衝,沒他們東西生不出來,而測試反而可有可無了。很多公司的初期是沒有測試的,或者研發自己就兼職測試了。還有個關鍵點,測試的可替代性超級高。產品啦,研發啦,設計啦,人家手握命脈,重新來個人走入正軌需要一定的代價。測試,就算你不熟悉產品,就算沒有需求,你不也能拿著陌生的軟體開始測試么?這就導致了測試人員流動性大,公司也不會使勁挽留。
對一般的測試工作而言,實話就是入門很容易。我曾經供職的一家公司僱傭二十多名中專畢業生,分成三組三班輪換隻執行測試用例。他們每個人只負責自己手裡的那百十來條case,就像機器人一樣,不停地執行。用例寫的超級詳細,只要一個小時,就能上手。這個例子可能有些極端,但測試就是這樣,門檻很低。這就導致了一個問題,初級測試真的是什麼人都有,龍蛇混雜。
-------華麗翻身--------
難道就沒有翻身之日么?我只能說,全看個人努力。關鍵點在兩個,一個是是否產生價值,一個是是否容易替代。
你想要有地位,先和你打交道最多的研發同學,形成平等關係吧。
其實你做測試時間越久,就越會發現,測試和研發的地位會越來越平等。
我說的還是一般的公司,項目周期短,時間緊任務重,開發過程中需求偶爾還會變一變。
研發會信賴測試人員對其的代碼進行驗證,而測試人員必須掌握更多知識,承擔這份信賴。
你發現的問題,研發不會第一反應是你環境有問題吧,而是直接開始處理問題。
研發會與你溝通他的實現方式,你也會跟他討論你的測試重點,什麼地方風險更大,更容易出現問題。大家彼此互補,共同合作。
這樣的好處是不言而喻的,研發在開發階段更好的處理風險,測試在測試階段更有針對性的進行測試。甚至是針對研發的開發風格進行針對性測試。合作久一些的研發,我都知道他們老愛在什麼地方出問題,沒事提醒一下,減少不必要的bug。有的研發願意先吧整個流程打通,再開始處理各種功能細節,最後處理UI。基本在測試的時候,我也會按照他的習慣來,省的他找來找去,思路也就亂了。改bug也很痛苦的,誰都會犯懶,看見改個文本啊,調個控制項啊,肯定就先處理了。反而關鍵bug就被延後解決了。
能多做一步,就別少做一步。bug title 把bug相關信息都體現出來,bug描述最起碼做到沒錯別字,別讓人看不懂。UI的問題就截圖,放上設計圖圈出問題所在,能配上設計圖路徑那自然是最好。流程不對的,直接把相關需求附上。崩潰的問題,附上log。web端的問題,附上鏈接,標籤,id。單機問題告訴他設備在哪。特殊數據,告訴他數據怎麼獲得,或者直接上傳數據。
你可能會覺得這麼做有什麼意義,研發是覺得這個測試不錯。可是對公司而言,並沒有提供什麼價值。
其實價值體現在兩個方面,一個是開發周期的縮短,一個是產品質量的提升。
研發看你寫的bug就是時間成本,看不懂還得多看兩遍,把你找來問,還得耽誤兩份的時間,沒準還得影響心情,改一個bug多出5個bug。。。
除了研發還有什麼是能做的?真心說,多了。測試在整個項目周期中時刻都有參與的地方。
跟產品多多溝通,充分理解他想要的是什麼。給需求文檔找bug,產品經理們也是風格各異,有的不處理異常情況,有的不考慮相關模塊,有的老忘了不同平台之間的差異。產品與研發有分歧的時候,以中立的角度給出建議。
主動找設計師檢查一下UI,就算你的眼睛是像素級別,他們的眼睛是納米級別的。。。有的顏色,在iPhone上看著好看,Android上就只能呵呵。有的UI風格,不同平台,還是有些差異的。設計師天馬行空,有時候真的會考慮不到。
1、所有軟體企業老闆聲稱自己企業對產品質量十分重視,同時,把用戶當測試員的企業大量存在。
2、在實際開發活動中,企業對產品質量的重視程度同該產品的用戶數量是正向相關的。
2.1 對用戶數量較少的產品(特別是定製軟體)來說,用戶要求改需求都很常見,更何況一些Bug,導致產品製造者對產品質量重視程度降低。
2.2 在有大量用戶使用的該產品的情況下,為避免售後服務崩潰,企業管理者和產品開發者都會有相當程度的重視質量。此時,需求評審、設計評審、走查、單元測試、測試用例設計、模塊測試、集成測試、性能測試等工作都會一絲不苟的得到執行。
所以,測試工作的地位不能一概而論,是同具體的開發項目有關的。測試地位高低,覺大部分公司都是開發佔優勢,測試占弱勢,因為開發懂開發知識,而測試是不懂代碼的。這也是中國測試的悲哀……不懂開發知識,也怨不得別人嫌棄你。但是如果你懂開發,又懂測試,那你的地位就不可了不得了,所有開發都供著你,害怕你,生怕你測出他的bug,想要人尊重你,得有你的獨特能力,即使是做黑盒測試……
同意張麗萍的說法,所謂地位是要爭取的,你測試的技術過硬,能指出開發的問題,別人自然信服,如果只是默默的測一下提交個BUG然後發個測試報告,自然不會有人去關注
軟體開發與軟體測試關注點不同而已;軟體開發更多地關注於產品的功能實現,而軟體測試關注於產品質量,技術技能上沒有所謂的高低,能夠把辛苦和乏味通過自動化技術來解決同樣需要很高的技術含量,並且軟體測試關注的是整個系統的質量,對整體架構、功能、性能、產品需求的理解上比開發人員有更多的機會去了解。牛不牛,都是因人而已的。
測試工作至關重要,我見過非常優秀的測試人員,他們有天賦,他們喜愛測試,他們能發現不尋常的bug,能夠從用戶的角度看待產品,指出產品設計本身的問題,指出需求存在的問題,甚至還提出解決方案。
分等級是低水平開發管理的表現,是很stupid的做法。國內一般的互聯網公司的黑盒測試居多,流程不規範,重複勞動多,成長空間小。
有些公司如微軟、IBM測試水平極高,從中可以學到很多。
有個指標可供參考:同層級的測試和研發的薪水是否相當,可以看出領導層對測試的重視程度^_^
國內很多軟體公司還是項目導向,別說測試,很多項目就連需求也是在試運行或者運行期間才收集到,輕測試也體現了軟體行業的成熟度相對較低、軟體生命周期較短的現狀
作為一個測試工程師,我從來不曾看低過我自己的工作,我認為沒有其他角色能夠取代我的工作。不過一個不爭的事實是,測試會被領導忽視,尤其是領導本身做開發的,或者是因為認為你某些代碼層次你觸摸不到緣故,而在開發過程中忽略。
我的想法是,修好內功後,測試,比開發牛
測試和開發在實際工作是相互依賴的,目標一致,行為對立,並行工作。開發需要精通開發語言,測試需要掌握計算機方面的知識,而且越全面越好,做得越久經驗越豐富。積累的是思想和方法。應根據自己的愛好和特點選擇。
測試和開發就和兩隻手一樣,缺一不可啊,只要你提高自身的能力不論是開發還是測試,地位都是大大的高!-----術業有專攻
被認為是,畢業生只有不夠牛才會去找測試的職位。
可能因為真正夠牛的測試職位不會從畢業生中去招。這是一個開發和測試技術曲線成長不同的問題。
測試可大可小,某些企業的測試人員甚至還需要額外的產品領域相關知識,從而能從大方向制定測試方案。
推薦閱讀:
※公司想把技術研發部的開發機都換成虛擬桌面連接到公司的伺服器上,這事靠譜嗎?
※中國IT行業的「好工程師」應該是什麼樣的?有哪些客觀標準可供自我評估?
※開發一個網站需要什麼會哪些技術?
※軟體版本號命名的依據有哪些?
※大型公司開發軟體的流程是怎樣的?