測試工作是一項極其重要的質(zhì)量保證活動,匯智動力認為因此測試部門既是軟件發(fā)布質(zhì)量把控的出口,也是客戶意見反饋的入口。但是因為之前的不重視,導(dǎo)致了軟件測試行業(yè)的發(fā)展相對滯后,優(yōu)秀的軟件測試工程師非常難得。

 

一個優(yōu)秀的測試工程師要對一些不易重復(fù)出現(xiàn)的錯誤找到規(guī)律,要能夠幫助開發(fā)人員定位問題,能夠?qū)Υa進行一定的檢查,將錯誤盡可能在項目生產(chǎn)的早期階段發(fā)現(xiàn),同時,測試工程師還要對各種編程語言、數(shù)據(jù)庫都有一定的了解,要有編程的概念。

那么,什么樣的人才適合做軟件測試工程師呢?

一般情況下,分為技術(shù)技能需求和職業(yè)素質(zhì)需求。

一、基礎(chǔ)要求(技術(shù)技能需求):

 軟件測試工程師崗位基礎(chǔ)要求一般包括以下幾個方面。

1. 學歷

學歷,代表學習的能力。軟件測試工程師的最低學歷要求一般是??埔陨蠈W歷,有個好的基礎(chǔ),才可能有好的結(jié)局,因此,很多公司對學歷有一定的要求。

2. 專業(yè)

專業(yè)基本無要求,當然要是計算機及相關(guān)專業(yè)更好。不過特殊的行業(yè)可能有特殊的需求,例如做筑軟件的公司,招聘測試工程師傾向于招聘土木工程專業(yè)的;做醫(yī)療軟件的公司,則傾向于醫(yī)療專業(yè)畢業(yè)生,因為這樣專業(yè)更對口。對于基礎(chǔ)技術(shù)而言,因為軟件測試本身就需要從最終用戶的使用角度考慮,所以專業(yè)往往沒有特別的要求。

3. 經(jīng)驗

很多公司在招聘測試工程師時希望應(yīng)聘者具有12年以上的測試經(jīng)驗,企業(yè)要求具有一定經(jīng)驗的目的在于,降低員工工作風險、縮短員工適應(yīng)周期、減少員工培訓成本。如果應(yīng)聘人員具有對口的問題解決能力,則是否有軟件測試工作經(jīng)驗不是關(guān)鍵問題。

 

4. 測試技術(shù)

了解軟件工程、軟件生命周期基礎(chǔ)知識,了解軟件配置管理;

能夠根據(jù)不同企業(yè)的產(chǎn)品特點快速解需求;

了解相應(yīng)的開發(fā)、測試模型,如SCRUM、敏捷測試等;

熟悉軟件測試的常用技術(shù)、方法、流程;

熟練掌握軟件測試文檔寫作,如測試計劃、測試方案、測試用例、缺陷報告、測試報告等。

熟悉自動化測試的流程、管理及深層開發(fā)(包括測試驅(qū)動、測試框架等)。

了解若干主流測試工具,如接口測試工具JmeterPostMan、SoapUI等,功能自動化測試工具Selenium、Appium等,性能自動化測試工具LoadRunnerJmeter等,測試管理工具Quality Center、Application Lifecycle ManagementALM)、ClearQuest、禪道等。

5. 開發(fā)技能

對于資深的測試工程師,需要一些開發(fā)知識,如編程語言C、C++、Java等,在測試過程中開發(fā)一些測試工具、測試腳本等。在此過程中,需要掌握數(shù)據(jù)庫(MySQL、SQL ServerOracle、MangoDB)、操作系統(tǒng)(Windows Server、Linux/UNIX)等。

6. 業(yè)務(wù)知識

因為不同業(yè)務(wù)有不同的測試方法,所以企業(yè)招聘測試工程師時,一般需要應(yīng)聘者具有招聘企業(yè)的業(yè)務(wù)背景知識,目前一般集中在金融證券類、移動通信、電子商務(wù)、頁游手游、移動互聯(lián)、Web門戶等系統(tǒng)。

二、職業(yè)素質(zhì)要求

軟件測試工程師所需具備的基本職業(yè)素質(zhì)為:

1. 責任心

大多公司以缺陷的多少來衡量軟件測試工程師的工作質(zhì)量。但是測試工作,在不同時段,其特點不同。如在測試工作開展初期,被測對象中存在大量的缺陷,測試工程師毫不費力,即可找到很多缺陷。隨著測試工作不斷深入,測試版本不斷迭代,不論測試工程師再怎么用心,也不一定能找到更多的缺陷。因此,以缺陷的多少來衡量軟件測試工程師的工作質(zhì)量,并非一種明智、公平的考核方法。

 

在實際工作中,如果沒有明確的測試需求,沒有完善的測試用例,軟件測試活動在很大程度上就依賴于測試工程師的責任心,主動完成測試任務(wù),確保自己的工作質(zhì)量。

2. 溝通能力

軟件測試活動中,溝通能力并不是通常意義上所講的交流,其包含的更多成分是技術(shù)含量以及服務(wù)意識。

 

測試是連接開發(fā)和客戶的紐帶,與開發(fā)人員溝通,需要從專業(yè)知識角度考慮,當發(fā)現(xiàn)的缺陷開發(fā)人員不認可時,如何從理論、實際應(yīng)用以及缺陷可能引發(fā)的后果等角度去闡述缺陷,使研發(fā)人員認同測試工程師的判斷,所做出的闡述要有理有據(jù),而不是強詞奪理,更不是爭吵。

時刻記住,缺陷很大程度上是開發(fā)人員犯下的錯誤,令人承認自己犯錯通常都是一件困難的事,這就需要軟件測試師具有一定的溝通能力。

3. 團隊合作精神

軟件產(chǎn)品研發(fā)活動,需很多部門協(xié)同工作,市場部、研發(fā)部、測試部、售后服務(wù)部、運維部等。一個高質(zhì)量的軟件產(chǎn)品從設(shè)計、生產(chǎn)到發(fā)布,是眾人努力勞動、智慧的結(jié)晶。單槍匹馬闖天下的局面已經(jīng)不復(fù)存在,現(xiàn)在幾乎每家公司都在強調(diào)這種精神。例如,華為公司,在新員工入職培訓中,會通過多種形式,如演講、相聲、小品等來培養(yǎng)、增強員工團隊合作意識。

 

軟件測試工作從其工作內(nèi)容來看,是極具破壞性的工作,開發(fā)活動則是建設(shè)性的,從這點可以看出,如何溝通,如何妥善地協(xié)調(diào)開發(fā)與測試同事的工作關(guān)系,將決定軟件生產(chǎn)活動的工作質(zhì)量。因此,軟件測試工程師需要具備高度的團隊合作精神,與其他同事一起努力,為保證軟件產(chǎn)品的質(zhì)量做出貢獻。

4. 耐心、細心、信心

軟件測試工作中,需要測試工程師有極大的耐心、細心、信心,與性別無關(guān)。隨著測試的深入,發(fā)現(xiàn)缺陷越來越難,不是所有的缺陷都能容易地找出,這個時候,就需要耐心、細心了。

人無完人,在項目管理不規(guī)范,文檔不齊全等客觀因素,增加了軟件測試工程師犯錯的幾率。對需求的誤解,業(yè)務(wù)知識的缺乏等原因,可能會提出一些不是缺陷的缺陷,研發(fā)人員可能對此類測試工程師存在一些看法。此時測試工程師應(yīng)對自己的觀點有足夠的自信心,謙虛地接受研發(fā)人員提出的意見和建議,提高自身發(fā)現(xiàn)問題并解決問題的能力。

5. 風險防范意識

軟件測試與軟件開發(fā)工作內(nèi)容的不同,導(dǎo)致了在某些時候測試工程師發(fā)現(xiàn)缺陷后,開發(fā)人員會以各種借口將該缺陷掩飾過去。測試工程師則需從測試理論、測試技術(shù)、實際用戶需求角度出發(fā),采用一定的策略去準備各種測試數(shù)據(jù),從每個細節(jié)上設(shè)計不同的用例,去證明缺陷確實存在,或者確實可能造成比較嚴重的不良后果。

 

從事實出發(fā),盡可能多地找出軟件缺陷,協(xié)助開發(fā)人員定位問題,以求解決問題,這樣才能不斷地發(fā)現(xiàn)問題、解決問題。

軟件測試工程師作為軟件質(zhì)量保證活動實施的主體,一定要有風險防范意識。當發(fā)生過的缺陷再次重現(xiàn)后,需分析其重現(xiàn)的原因,找出解決辦法,從而避免再次出現(xiàn)。要善于分析測試結(jié)果,缺陷分布情況等。只有不斷地總結(jié),加強缺陷預(yù)防的能力,才能提高軟件測試的工作效率。

6. 持續(xù)學習能力

大多數(shù)企業(yè)、公司在招聘軟件測試工程師時,提出了很高的要求,如開發(fā)語言掌握情況、測試理論熟悉程度、測試工具使用經(jīng)驗,等等。為了獲得更多的發(fā)展機會,提高自身的職業(yè)競爭力,軟件測試工程師需要不斷地學習,掌握開發(fā)人員所使用的編程語言,能更多、更有效地找出缺陷,掌握一定的測試理論、測試工具將會大幅度提高自身的工作效率。同時,也為自身的發(fā)展奠定堅實的技術(shù)基礎(chǔ)。

軟件測試工作其實對軟件測試工程師的技能要求很高,例如,編程語言不一定要精通,但測試工程師必須了解大部分的編程語言,要具備軟件開發(fā)的思想。測試工程師還要掌握眾多的業(yè)務(wù)知識。因此,學習能力對于測試工程師來說是非常重要的。