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