好的,帶着這個觀點,我們從行業目前的發展來講一下。若是你沒有進入這個行業,那麼有些概念可能不太理解,不要緊,先接觸一下。css
這裏我所說的「測試左移」,也就是指的研發階段的質量保證,「測試右移」也就是發佈後的質量監控,搞明白這連個理念,就能很清晰的明白測試開發具體指的是什麼了。html
若是你是測試人員,你認爲本身的公司不大,這些東西涉及不到我,我不關心。那麼,上面我已經說了什麼是測試開發了,下面就不用往下看了,你選擇坐井觀天,誰也攔不住的。前端
這些狀況不是我一我的得出的,是私下同阿里、360等行業內的測試經理交流所公認的。數據庫
第一個觀點:XP、Scrum、CI/CD/DevOps的項目管理迭代的方法論的流行加大了測試壓力架構
你要是剛開始進入這個行業,可能認爲測試就是找bug,可是測試工程師的核心是質量保證。舉個例子,之前一個項目,按月發佈,兩月發佈一個,一月發佈一個,如今呢,一個月也慢慢變成了兩週,三週,甚至一週,甚至有的時候2天就能夠發佈一個功能,若是是按照這個節奏,研發只須要改一行代碼,你要保證這一行代碼的正確性,你要寫不少的用例,甚至要回歸,幾十條甚至上百條的都有可能。那麼他的改動會愈來愈頻繁,而對於測試來講,每一次的改動,咱們都要去作迴歸的,而這種迴歸,在這種短期迭代愈來愈短的節奏下,其實已經沒有辦法再靠人力去支撐了,到時候必然就會帶來測試工程師要進行加班,並且光加班也是解決不了的問題,因此這個時候,測試的壓力是很是大的。運維
第二個觀點:是原有的質量保證體系缺少能夠融入架構的工程化技術支撐。工具
原有的質量保證體系指的是什麼呢,咱們說最先期的手工測試的方法論,什麼邊界值啦,以及咱們自動化最簡單的一些自動化測試、壓測,全部原來的這一套測試體系其實在當今的這個測試行業下,尤爲是互聯網快速發展的階段裏面已經慢慢的不太適用了。雖說目前它仍然很是的有用,可是這樣的一套體系很難融入已經流行的好比說持續交付、持續集成、DevOps等這樣一個大的環境裏面。你所作的自動化測試,如何融入到這個體系中去,如何能快速的發現線上的問題,以及更早的發現研發級別的問題,靠原有的這些質量保證手段,其實已經有點匱乏了。性能
第三個觀點:行業大量技術根基薄弱的測試工程師面臨淘汰和外包單元測試
這句話聽起來比較殘酷,可是你必需要看到這種變化。經過和一些測試經理進行溝通,也都是認爲如今不少的測試工程師都不及格,要麼是會點點點,要麼是會一點自動化。20%-30%的人懂一點最基礎的自動化,自動化的能力也是屬於一個很薄弱的環節,既解決不了公司裏面深層次的問題,又沒有辦法幫公司支撐和搭建更高的平臺,完善更好的一套測試流程,因此也會致使這一類人也不太及格。測試
好比說阿里的一些現狀,就是招測試開發,或者說招研發作測試,由測試開發以及研發來負責完成公司內的質量體系建設,公司的持續集成,持續交付,DevOps,以及一些質量監控平臺,剩下的點點點,外包給其餘的公司來作,這是他們目前的一個現狀,也就是說,若是大家只是點點點,那麼很快你將失去在大的公司的工做機會,直接會被外包公司吸取過去。
因此,這些也就是爲何不少公司都要招聘測試開發
說到這裏,確定不少會點點點的,都在抱怨爲何招普通的測試,還要會自動化,會語言基礎?若是前面行業發展你能夠理解,那麼你也就能夠懂得,他們對測試是有更高的期待的,已有的測試又不能解決,因此只能在招聘中體現這一點。
----------------------------------------------------此處加個分割線------------------------------------------------
延伸的多說一點吧
這個名詞一開始並不叫測試開發,只是說懂技術,懂研發的測試工程師,後來這個詞又很長,再加上之前測試開發曾經在老的時代是有一個對應的詞的,從微軟的時代的時候,微軟就把工程師稱爲軟件工程師on testing,就是屬於測試領域的一個開發工程師。後來這個詞就慢慢的受到不少公司的採納,以後測試開發這個詞,逐漸的開始流行。
測試工程師須要會多少語言?
2門。第一門,推薦你們使用Python。Python是作自動化工做首選的一門語言,因此Python是第一位的。
第二個語言,等你月薪達到2萬或者2萬5以上的時候,這個時候光靠作測試,已經很難再產生更大的影響力了,這個時候須要怎麼作呢?第一個,在研發角度,去影響研發團隊提升質量,第二個,從運維和線上角度,去影響運維和線上用戶,而後去分析更好的質量。
若是要作這兩個事情,只靠Python,就有些乏力了,好比說全公司都在用Java,go,你用Python對接就會很麻煩,好比你要分析他們代碼的規範,代碼裏面的內存泄漏,多性能的死鎖,各方面的問題,你要發明工具去發現這些問題,技術棧不同,會很麻煩。因此Python是你入門的第一門語言,Python以後能夠走2個方向,一個是Java,一個是go,懂2門語言就夠了。固然像前端,html,js,css,這確定是每一個人都須要去懂的,這些基本上都屬於基礎知識了。
測試開發作到後面,是否是和開發沒有區別了?
測試其實是比開發更牛的,只不過你們礙於現狀,很差意思說這個事情。對測試的能力要求,比開發還要高,只不過是說如今的測試行業裏面,大量的人是沒有成長起來,致使你們以爲開發比測試牛。
舉個例子,開發工程師天天作什麼呢,學網站開發,學數據庫查詢,學各類工具,天天的工做就是產品經理告訴你我要在頁面上加一個好評,有多少人點贊,你給我實現這個功能,開發就去後臺裏面,第一個,數據庫裏面加一個字段,第二個,代碼裏面加一段查詢,第三個,在網頁端,加一個展現的效果。天天,每一年常年的都是在作這樣的事情,你能夠認爲就是數據庫的增刪改查,加上網頁的展示,多數的開發都是這樣,只有少數的開發會走出來,好比說進到更強的架構層去思考解決方案。多數的研發也是困擾於平常的搬磚。
測試作什麼呢?首先是人工的測試須要去作,第二個是自動化的測試要去作,第三個,專項的測試也要去作,以後是什麼呢,測試的左移,對研發質量要提早發現一些問題,同時上線以後的產品要進行質量的監控,發現一些線上用戶的崩潰問題,瞭解全部的業務場景。因此在整體的範圍裏面,測試比研發更有前途的。在技術能力的要求上,也要求測試具有比研發所不知道的一些東西。
舉個例子,耗電量怎麼去測,內存泄漏怎麼去測,一些底層的性能,壓測怎麼去測,這些東西研發平常是接觸不到的,反而是咱們測試常常須要去關注這些指標。測試是比研發更有價值的一個崗位,可是遺憾的是,咱們。行業全部的測試基本上都去忙點點點去了,忽略了對質量體系的建設,以及測試流程的建設。
後面大家會慢慢發現,隨着devops、持續交付這一套東西的流行,測試,運維,會慢慢的去管控整個公司的質量,而後研發只須要負責寫代碼。在目前以及過去的這些年,研發是比測試有優點的,就是由於高階的質量保障,測試行業基本上都沒有作,你們作的都是低端的,不是點點點,就是低端的自動化,而後不多有人往上去走,若是你走上來你會發現,測試比開發更有價值。可是二者都是異曲同工,都是開發工程師,只不過一個專一於測試,一個專一於功能的開發。因此如今不少公司,特別是大的公司,招測試開發以及研發去作測試,而後點點點,外包。
好了,閒扯這麼多,之後我會專門開始說說測試開發的簡歷是什麼樣的,關注我,受益你。