軟件測試與軟件開發(fā)的職位對比
軟件測試的核心在于檢驗被測對象是否滿足用戶的要求,從這一目標不難看出,測試者一定要站在用戶的角度思考問題,從用戶的實際使用環(huán)境、習慣著手驗證被測對象應用表現(xiàn)。只有這樣,才能滿足用戶需求,輔以高質(zhì)量的產(chǎn)品設計、高效的生產(chǎn)過程,研發(fā)出來的軟件才是高質(zhì)量的產(chǎn)品。因此以最終用戶身份進行軟件產(chǎn)品測試將是未來一段時期內(nèi)主要的測試思路。
與軟件開發(fā)的創(chuàng)造性相比,軟件測試活動需具有破壞性思維。被測對象不僅能處理正確、正常的業(yè)務操作,也需經(jīng)得起異常輸入、異常操作的考驗,軟件系統(tǒng)應當具備某種程度的健壯性要求。

軟件測試相比其他IT工作,行業(yè)進入門檻低。從業(yè)務測試角度考慮,從業(yè)人員僅需掌握被測對象的業(yè)務知識,了解一些基本的測試方法,以最終用戶身份去使用檢驗被測對象即可勝任。
如果需要完成自動化、性能測試,甚至是白盒測試,也只需學習一門編程語言和一些工具即可勝任。當然,還可能需要其他一些輔助知識,如數(shù)據(jù)庫、操作系統(tǒng)(Linux/Unix)、服務架構類(Web Server、中間件、網(wǎng)絡硬件等),當然隨著IT技術的迅速發(fā)展,測試工程師所需掌握的技術也越來越多。
行業(yè)沒有好壞,只有是否適合自己,軟件測試工作進入門檻低,技術升級相對緩慢,隨著測試經(jīng)驗和技術能力在實際工作中的不斷加強,提升相對容易,價值體現(xiàn)在腦力活動上,但軟件測試工作也是一個細心、耐心活,對從業(yè)者的職業(yè)素質(zhì)要求較高。
軟件測試職業(yè)發(fā)展中,從職業(yè)技術要求角度,可分為手工測試、自動化測試(包括自動化功能、性能)、白盒測試等幾個方面。從業(yè)務知識角度,可分為金融產(chǎn)品、電 子商務、移動互聯(lián)等業(yè)務方向,從測試管理角度,則有測試主管、測試經(jīng)理、測試總監(jiān)等之分,從測試資歷來分,則有初級測試工程師、中級測試工程師、高級及專家級測試工程師。
軟件測試在軟件生產(chǎn)分工合作細化的發(fā)展進程中,其職業(yè)崗位要求不斷被細化,新入行的讀者可根據(jù)自己的興趣愛好及性格特點選擇適合自己發(fā)展的職位。
軟件測試工作與軟件開發(fā)工作相比,主要有以下幾點不同。

1.知識體系要求不同
從軟件生產(chǎn)活動分工來看,軟件開發(fā)與軟件測試是軟件生產(chǎn)過程中非常重要的兩個環(huán)節(jié)。
軟件開發(fā)人員需要了解業(yè)務背景、需求、編程語言、數(shù)據(jù)庫、操作系統(tǒng)等知識,在整個知識體系中是偏向于產(chǎn)品構建型知識。
軟件測試人員則不然,在日常測試工作中,需要站在用戶的角度思考問題,可以對軟件開發(fā)及軟件內(nèi)部知識不做太多了解,更多地偏向于應用產(chǎn)品、破壞產(chǎn)品。在工作中可能同時測試若干項目,可能面臨著不同編程語言編寫、不同架構平臺、不同業(yè)務知識背景,甚至完全不同的操作模式(網(wǎng)頁游戲和手機游戲),因此測試工程師需要知識的廣度,在知識廣度增加的同時提高技術深度。
2.技術技能要求不同
軟件開發(fā)工程師需掌握一系列專業(yè)的編程語言、數(shù)據(jù)庫、操作系統(tǒng)、服務器管理等知識,編程技能,如C、C++、Java等,數(shù)據(jù)結(jié)構、算法,常用的IDE平臺,如VS、Eclipse等,數(shù)據(jù)庫如MySQL、SQL Server、Oracle、MangoDB等,操作系統(tǒng)如Windows Server、Linux/UNIX等。
開發(fā)知識更新相對較快,對腦力要求較高,隨著年齡的增長,精力逐年下降,因此很多開發(fā)工程師做到一定年限后基本都轉(zhuǎn)向管理崗位了。
軟件測試掌握的技能相對要簡單些,基本都是圍繞應用層面考慮,如測試理論、測試流程、測試用例設計方法、缺陷管理知識。如果需要實施自動化或性能測試,可利用Selenium、Appium、Jmeter、LoadRunner等工具,掌握通用的編程語言,如C、C++、Java、Python語言等,即可滿足大部分需求,也可以學習些腳本語言,如js、vbs、Python等,而數(shù)據(jù)庫、操作系統(tǒng)等方面的知識僅在實現(xiàn)性能測試或其他測試目標時需要。
3.問題思維模式不同
軟件開發(fā)工程師的問題思維模式是創(chuàng)造性的,關注重點是如何構造,如何實現(xiàn),如何編寫高質(zhì)量的代碼。
軟件測試工程師的思維模式則是破壞性的,會想方設法從用戶的使用角度破壞系統(tǒng),構建正常、異常輸入,發(fā)現(xiàn)被測對象表現(xiàn)特性與用戶需求的偏離現(xiàn)象。
因而,選擇軟件測試還是軟件開發(fā)崗位,除了崗位性質(zhì)分析外,還需結(jié)合自身情況來考慮!

