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