軟件測試工程師在工作中常常扮演著用戶的角色,但是大家千萬不要一看到“用戶”就馬上聯(lián)想到“上帝”,認(rèn)為軟件測試工程師的工作很舒服。在實(shí)際工作中,每個(gè)產(chǎn)品在發(fā)布前都會(huì)有很多版本,軟件測試工程師在每個(gè)版本中都要模擬用戶使用的各種場景,遍歷用戶可能會(huì)使用到的各種輸入參數(shù),通過系統(tǒng)輸出來判斷這些操作結(jié)果是否能夠滿足預(yù) 期。其中很多操作都是重復(fù)的,這就需要軟件測試工程師有一份“外在”的細(xì)致和耐心。
除了“外在美”,軟件測試還要求軟件測試工程師有“內(nèi)涵”——懂用戶。他們不僅要保證產(chǎn)品滿足用戶明確提出的功能需求,還需要理解在這些功能背后隱藏的“潛在”需求,如性能、可靠性、易用性、可操作 性、可移植性等??梢姡雰?nèi)外兼修,真正做好做深軟件測試,絕對不是一件容易的事情。
軟件測試在“入門”上相對軟件開發(fā)的確要容易些,但是軟件測試和軟件開發(fā)不同的是,軟件開發(fā)人員只需要理解自己負(fù)責(zé)的模塊就可以勝任工作,而軟件測試則需要對整個(gè)系統(tǒng)都要有整體的把握,需要站在用戶的角度去理解需求,所以軟件測試比軟件開發(fā)更難深入。
但現(xiàn)實(shí)是,測試“深入難”的這個(gè)特點(diǎn)往往被忽視,“門檻低”卻被放大?!伴T檻低”的另一層意思就是“誰都能做”,技術(shù)含量不高。在這種背景下,軟件測試工程師在職業(yè)發(fā)展上自然很難受到重視
對那些工作了兩三年的軟件測試工程師來說,他們在產(chǎn)品和軟件測試技術(shù)上都有了基本的認(rèn)識(shí),足以勝任每天的日常工作后,很自然就會(huì)開始尋找新的發(fā)展方向和目標(biāo)。
一個(gè)發(fā)展方向是軟件測試管理。但軟件測試的管理職位其實(shí)并不 多,即使是有獨(dú)立測試部門的大中型公司,也只會(huì)到高級測試經(jīng)理級 別,更別提那些沒有獨(dú)立測試部門的小企業(yè)了。所以軟件測試工程師在測試管理方面想要有所發(fā)展,不僅需要能力,還需要機(jī)遇。
軟件測試在技術(shù)方面又有哪些發(fā)展呢?
要想在技術(shù)方面有所發(fā)展,“深入”是必需的。這本來就不是一件容易的事情,而軟件測試技術(shù)在“深入”上又比其他領(lǐng)域更難一些,可謂“難上加難”。當(dāng)軟件測試工程師開始進(jìn)入軟件測試職業(yè)發(fā)展的平臺(tái) 期,變得迷茫、困惑,看不清自己未來的發(fā)展方向,需要指引時(shí),又往往找不到方向。我的一位前輩曾經(jīng)拿“布朗運(yùn)動(dòng)”來形容他自己在平臺(tái)期的感覺,我覺得這個(gè)比喻是非常貼切的。正如《奧德賽》中描述的一樣,還有什么比徘徊不前更讓人感到難受的呢?
職業(yè)發(fā)展遇到“瓶頸”本來是一件非常正常的事情,但是如果這種情況得不到改善,老是處于平臺(tái)期的狀態(tài),卻是“致命”的。在我身邊,就有很多從事測試工作3年左右的同事離職或者轉(zhuǎn)崗。《中國軟件測試從業(yè)人員調(diào)查報(bào)告》(2011年)也指出,中國軟件測試行業(yè)有超過七成的從業(yè)人員工作年限是0~3年,只有18%的人是3~5年。需要注意的是,這個(gè)比值從2009年開始就沒有發(fā)生過變化。這說明中國軟件測試人員在工作經(jīng)驗(yàn)的分布上并不合理,缺乏持續(xù)性。我們在不斷“丟失”工作3年左右的、有經(jīng)驗(yàn)的測試工程師,如果這種情況一直持續(xù)下去,很難說中國的軟件測試不會(huì)“青黃不接”。
所以我想對中國的軟件測試來說,引進(jìn)測試技術(shù),提升產(chǎn)品知識(shí), 追求更完美的測試流程,或許都不是最重要的。我們需要討論“發(fā)展”, 在軟件測試工程師職業(yè)發(fā)展出現(xiàn)困惑迷茫的時(shí)候,可以為他們解惑。
認(rèn)識(shí)軟件測試的優(yōu)勢和劣勢
我們需要先對軟件測試進(jìn)行一場“再”認(rèn)識(shí)。
從“成熟度”來講,軟件開發(fā)行業(yè)的整體成熟度更高,人們對軟件開發(fā)的理解也更為全面深入。正因?yàn)檫@樣,人們也更習(xí)慣將軟件測試和軟件開發(fā)放在一起比較。雖然軟件開發(fā)和軟件測試都屬于產(chǎn)品研發(fā),但是人們的關(guān)注點(diǎn)是不同的。軟件開發(fā)偏向“創(chuàng)造”,而軟件測試卻偏向“驗(yàn)證”和“確定”,所以軟件開發(fā)和軟件測試對技能要求也是不同的。但是 要廣度和深度的認(rèn)識(shí) ‘’軟件‘’ 開發(fā)能力必須具備
人們將軟件測試和軟件開發(fā)放在一起比較的時(shí)候,容易陷入“用軟件開發(fā)的要求來評價(jià)軟件測試”的思維中,只看到軟件測試和軟件開發(fā)相比的弱勢,卻看不到軟件測試自身的優(yōu)勢。
那么作為軟件測試,和軟件開發(fā)相比,又有哪些優(yōu)勢呢?
雖然軟件測試存在不少困境和迷局,但是這并不能掩蓋軟件測試自身的優(yōu)勢。
和軟件開發(fā)相比,軟件測試入門相對更容易些。這是軟件測試行業(yè)的一大特點(diǎn),其實(shí)也是軟件測試的優(yōu)勢之一。較低的“門檻”給了軟件測試行業(yè)和軟件測試從業(yè)者更多的選擇余地。一些企業(yè)在招聘軟件測試人員的時(shí)候,不一定只招聘有計(jì)算機(jī)、通信相關(guān)經(jīng)驗(yàn)的人,他們可能會(huì)根據(jù)產(chǎn)品的特點(diǎn),招聘一些更能理解產(chǎn)品和用戶需求的人員,如金融、財(cái)會(huì)專業(yè)的人等,所以軟件測試從業(yè)者可以是“雜家”,或者說對某些領(lǐng)域來說,“雜家”反而更適合軟件測試。從軟件開發(fā)相對“封閉”的行業(yè)特點(diǎn)來說,軟件測試就要“開放”多了。另外對想改行從事軟件研發(fā)工作的人來說,選擇“軟件測試”作為轉(zhuǎn)型的切入點(diǎn)也是比較合適的。
在軟件開發(fā)項(xiàng)目中,大多數(shù)軟件開發(fā)工程師都會(huì)被分配一個(gè)或幾 個(gè)“模塊”來編碼實(shí)現(xiàn),幾個(gè)軟件開發(fā)工程師合作才能完成一項(xiàng)功能是非常普遍的現(xiàn)象。這種割裂式的開發(fā)工作模式,讓其中的軟件開發(fā)工程師很難理解產(chǎn)品的全貌,甚至不知道最終用戶會(huì)如何使用自己的產(chǎn)品。相對來說,軟件測試人員是產(chǎn)品研發(fā)團(tuán)隊(duì)中最理解產(chǎn)品全貌、最理解用戶的人,這是由軟件測試的工作內(nèi)容決定的。
軟件測試人員不必關(guān)心產(chǎn)品究竟是如何編碼實(shí)現(xiàn)的,不必關(guān)心用的是C語言還是C++,不必關(guān)心這部分代碼是軟件開發(fā)人員從網(wǎng)上復(fù)制下來的還是自己原創(chuàng)的;他們需要關(guān)注的是“產(chǎn)品的實(shí)現(xiàn)是否和開發(fā)承諾要實(shí)現(xiàn)的功能是一致的”,這讓測試人員自然會(huì)去關(guān)注“功能”,理解產(chǎn)品的全貌,而不會(huì)陷入實(shí)現(xiàn)細(xì)節(jié)。
軟件測試人員還會(huì)對產(chǎn)品進(jìn)行“黑盒測試”,這種看似“摸瞎”的系統(tǒng)測試方法,需要站在用戶的角度分析用戶使用場景,所以軟件測試人員必須想辦法去全面理解用戶,不僅要理解用戶明確的需求,還要理解用戶“隱形”的需求,如用戶的使用習(xí)慣、用戶行業(yè)潛在規(guī)則等。所以在產(chǎn)品研發(fā)領(lǐng)域,測試人員才是最理解用戶的人。
在大多數(shù)人的印象中,軟件開發(fā)整天面對著電腦,兩耳不聞窗外 事,十指翻飛只為編寫程序,是一個(gè)很“宅”的職業(yè)。你千萬不要以為軟件測試也是一樣的,和軟件開發(fā)相比,軟件測試人員需要有一定的溝通交流能力,這不僅有助于就產(chǎn)品測試中發(fā)現(xiàn)的bug和開發(fā)人員進(jìn)行溝通,更重要的是,在很多企業(yè),軟件測試人員都會(huì)作為產(chǎn)品研發(fā)的接 口,在用戶出現(xiàn)問題的時(shí)候和用戶進(jìn)行溝通。除此之外,想要做好測 試,協(xié)調(diào)能力、風(fēng)險(xiǎn)評估能力、數(shù)據(jù)統(tǒng)計(jì)分析能力和報(bào)告撰寫能力都是必不可少的“軟技能”。所以和軟件開發(fā)要求“深度”不同,軟件測試更注重“廣度”,要求軟件測試人員是“多面手”,有很強(qiáng)的綜合能力。
軟件測試的這一特點(diǎn),讓軟件測試人員可以有更多的職業(yè)外延可供選擇。換句話說,即使一名軟件測試工程師在從事了幾年軟件測試工作后轉(zhuǎn)行,無論他是改行做銷售、客服或其他工作,都可以很快上手,得到認(rèn)可。這是因?yàn)檐浖y試人員對產(chǎn)品理解,在研發(fā)領(lǐng)域可能不夠“深入”,但是在非研發(fā)領(lǐng)域卻做得很好。在廣度方面,軟件測試人員不會(huì)輸于其他非研發(fā)領(lǐng)域的從業(yè)人員;對用戶需求的理解,軟件測試人員也不會(huì)遜色;而溝通協(xié)調(diào)、分析總結(jié)、風(fēng)險(xiǎn)意識(shí)等軟能力也能幫助軟件測試人員很快掌握新領(lǐng)域的知識(shí)技能。所以相對來說,軟件測試人員其實(shí)更能適應(yīng)這個(gè)復(fù)雜多變的社會(huì)。
軟件測試的劣勢
客觀來講,和軟件開發(fā)相比,軟件測試也存在很多劣勢。
雖然軟件測試的“出口”看起來很廣闊,但是和同在軟件研發(fā)領(lǐng)域的軟件開發(fā)人員相比,軟件測試在軟件研發(fā)領(lǐng)域的發(fā)展卻比軟件開發(fā)人員有限得多,至少這是現(xiàn)狀。我們很少看到軟件測試人員去做產(chǎn)品研發(fā)管理工作,成為開發(fā)代表、產(chǎn)品線經(jīng)理或研發(fā)總監(jiān);很少看到軟件測試人員去做系統(tǒng)架構(gòu)師(SE)。很多企業(yè),軟件測試在管理上的職位,最高就是測試代表或測試經(jīng)理,在技術(shù)上甚至沒有職位,沒有發(fā)展方向。
車開到這里,有人會(huì)反駁我,說不是有 開發(fā)測試么;開發(fā)測試也是測試,并不是全棧開發(fā),崗位職責(zé)的烙印 ‘測試’依舊在身上;不要忘卻了,你是測試開發(fā),就不是測試了
-
測試工程師
+關(guān)注
關(guān)注
6文章
124瀏覽量
12494
發(fā)布評論請先 登錄
相關(guān)推薦
![](https://file1.elecfans.com/web3/M00/05/24/wKgZPGd9BIKAasMYAAP9Ml_injM792.jpg)
不同時(shí)期的硬件工程師,最怕發(fā)生的事 #電子工程師 #硬件工程師 #內(nèi)容過于真實(shí) #YXC晶振 #揚(yáng)興科技
嵌入式工程師常用的開發(fā)工具有哪些?
嵌入式職業(yè)規(guī)劃雜談 如何學(xué)習(xí)與職業(yè)規(guī)劃
![嵌入式<b class='flag-5'>職業(yè)規(guī)劃</b>雜談 如何學(xué)習(xí)與<b class='flag-5'>職業(yè)規(guī)劃</b>](https://file1.elecfans.com/web1/M00/F5/BD/wKgZoWdD2NeAdwkNAAARKxJGegI699.png)
Keysight助力提升工程師的測試測量知識(shí)水平
![](https://file1.elecfans.com/web2/M00/07/FB/wKgZombz6VuAFeotAAIjSCj1HKI007.jpg)
硬件工程師VS軟件工程師|硬件工程師看到這都淚目了!#硬件設(shè)計(jì) #硬件工程師 #電子工程師 #軟件工程師
![](https://file1.elecfans.com/web2/M00/FF/40/wKgaomahti2AV26dAAMiNIjdnKg435.jpg)
硬件工程師如何做元器件變更的決策
![硬件<b class='flag-5'>工程師</b>如何<b class='flag-5'>做</b>元器件變更的決策](https://file.elecfans.com/web2/M00/3F/CE/pYYBAGJqCX2AbtM8AAANJ1_N7GA875.jpg)
找STM32硬件開發(fā)兼職工程師
嵌入式軟件工程師如何提升自己?
嵌入式軟件工程師和硬件工程師的區(qū)別?
![](https://file1.elecfans.com/web2/M00/E5/09/wKgZomZB1aqAfoLMAALwKMk88bw153.jpg)
![](https://file1.elecfans.com/web2/M00/DE/DE/wKgZomYwuQ-AegjsAAISSibiD4I286.jpg)
嵌入軟件單元測試工具的作用
![嵌入<b class='flag-5'>軟件</b>單元<b class='flag-5'>測試工</b>具的作用](https://file1.elecfans.com/web2/M00/D7/40/wKgaomYnY3KAaDhSAABegnWWiAI809.png)
評論