????????軟件測(cè)試工程師(Software Testing Engineer)指理解產(chǎn)品的功能要求,并對(duì)其進(jìn)行測(cè)試,檢查軟件有沒(méi)有缺陷(Bug),測(cè)試軟件是否具有穩(wěn)定性(Robustness)、安全性、易操作性等性能,寫出相應(yīng)的測(cè)試規(guī)范和測(cè)試用例的專門工作人員。
????????簡(jiǎn)而言之,軟件測(cè)試工程師在一家軟件企業(yè)中擔(dān)當(dāng)?shù)氖恰百|(zhì)量管理”角色,及時(shí)發(fā)現(xiàn)軟件問(wèn)題并及時(shí)督促更正,確保產(chǎn)品的正常運(yùn)作。
一、分類
按其級(jí)別和職位的不同,可分為三類:
1.高級(jí)軟件測(cè)試工程師
熟練掌握軟件測(cè)試與開發(fā)技術(shù),且對(duì)所測(cè)試軟件對(duì)口行業(yè)非常了解,能夠?qū)赡艹霈F(xiàn)的問(wèn)題進(jìn)行分析評(píng)估
2.中級(jí)軟件測(cè)試工程師
編寫軟件測(cè)試方案、測(cè)試文檔,與項(xiàng)目組一起制定軟件測(cè)試階段的工作計(jì)劃,能夠在項(xiàng)目運(yùn)行中合理利用測(cè)試工具完成測(cè)試任務(wù)
3.初級(jí)軟件測(cè)試工程師,其工作通常都是按照軟件測(cè)試方案和流程對(duì)產(chǎn)品進(jìn)行功能測(cè)驗(yàn),檢察產(chǎn)品是否有缺陷
二、角色定位
????????軟件項(xiàng)目開發(fā)是個(gè)分工明確的系統(tǒng)工程,不同的人員扮演了不同的角色,包括部門經(jīng)理、產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理、系統(tǒng)分析師、程序員、測(cè)試工程師、質(zhì)量保證人員等。可見,軟件測(cè)試工程師只是軟件項(xiàng)目開發(fā)中的一個(gè)角色而已。
????????測(cè)試工程師承擔(dān)的任務(wù)角色決定工作內(nèi)容和承擔(dān)的任務(wù)。測(cè)試工程師的角色應(yīng)該承擔(dān)什么任務(wù)呢?這沒(méi)有統(tǒng)一的答案。因?yàn)椋@與軟件公司的規(guī)模,軟件項(xiàng)目管理制度,公司領(lǐng)導(dǎo)和項(xiàng)目經(jīng)理的管理風(fēng)格,以及具體軟件項(xiàng)目自身的特點(diǎn)有很大關(guān)系。而且,測(cè)試工程師也有普通和高級(jí)之分。
籠統(tǒng)的答案列舉如下:
(1)設(shè)置軟件測(cè)試環(huán)境,安裝必要的軟件工具。
(2)運(yùn)行軟件,發(fā)現(xiàn)和報(bào)告軟件缺陷或錯(cuò)誤。尤其需要快速定位軟件中的嚴(yán)重的錯(cuò)誤。
(3)對(duì)軟件整體質(zhì)量提出評(píng)估
(4)確認(rèn)軟件達(dá)到某種具體標(biāo)準(zhǔn)
(5)以最低的成本,最短的時(shí)間,完成高質(zhì)量的測(cè)試任務(wù)
????????......
????????在這其中,最重要的是要明確程序員的責(zé)任和目標(biāo)。在執(zhí)行任何具體測(cè)試任務(wù)前,都要在項(xiàng)目組內(nèi)對(duì)于責(zé)任和目標(biāo)達(dá)成共識(shí),以免帶來(lái)后續(xù)工作的相互推諉。
提高測(cè)試質(zhì)量的要訣:
????????另外一個(gè)值得注意的方面就是工作效率和質(zhì)量,或許高級(jí)測(cè)試工程師與普通測(cè)試工程師的主要區(qū)別在于高級(jí)測(cè)試工程師可以更快地發(fā)現(xiàn)更多軟件中的嚴(yán)重錯(cuò)誤。
首先測(cè)試程序的核心功能,然后測(cè)試輔助功能。
首先測(cè)試功能,然后測(cè)試性能。
首先測(cè)試常見情況,然后測(cè)試異常情況。
首先測(cè)試經(jīng)過(guò)變更的部分,然后測(cè)試沒(méi)有變更的部分。
首先測(cè)試影響大的問(wèn)題,然后測(cè)試影響小的問(wèn)題。
首先測(cè)試必須測(cè)試的部分,然后測(cè)試可選或沒(méi)有要求測(cè)試的部分。
服務(wù)員
????????需要強(qiáng)調(diào)的一點(diǎn)是,無(wú)論你是多么高級(jí)的測(cè)試工程師,都要明白無(wú)論測(cè)試需要的工具多么復(fù)雜,測(cè)試步驟多么冗長(zhǎng),測(cè)試工程師在軟件項(xiàng)目開發(fā)中始終都是扮演服務(wù)員的角色,這是由測(cè)試工作的特點(diǎn)決定的。任何服務(wù)都有被服務(wù)對(duì)象—客戶,測(cè)試工程師的服務(wù)對(duì)象有哪些呢?
????????最重要的客戶是軟件的用戶。測(cè)試工程師需要站在客戶的使用和需求角度測(cè)試軟件,報(bào)告問(wèn)題。
????????項(xiàng)目經(jīng)理也是客戶。測(cè)試工程師需要報(bào)告測(cè)試工作進(jìn)度和發(fā)現(xiàn)的問(wèn)題,尤其是嚴(yán)重的問(wèn)題。
????????程序員是最經(jīng)常打交道的客戶。為了便于程序員重復(fù)報(bào)告的錯(cuò)誤,盡量提供良好的軟件問(wèn)題報(bào)告,以便程序員可以更快的修復(fù)軟件錯(cuò)誤。
????????技術(shù)文檔工程師、市場(chǎng)開發(fā)人員和技術(shù)支持工程師也都是測(cè)試工程師的服務(wù)對(duì)象。
避免錯(cuò)誤
????????前文已經(jīng)指出測(cè)試工程師應(yīng)該明確角色,明確任務(wù)和責(zé)任。知道哪些是自己分內(nèi)的事,哪些是不屬于自己的事。一定要盡最大努力完成分內(nèi)的事,不要做不屬于自己的事情,以免弄巧成拙。
????????為了更好的扮演軟件測(cè)試工程師的角色,盡量避免犯下面的錯(cuò)誤:
⒈承諾完成測(cè)試的軟件沒(méi)有質(zhì)量問(wèn)題
????????軟件測(cè)試只是保證質(zhì)量的一種方法,軟件測(cè)試工程師的工作不會(huì)直接提高軟件質(zhì)量,因?yàn)榻^大多數(shù)軟件錯(cuò)誤都需要程序員修復(fù)。軟件測(cè)試只能證明軟件存在錯(cuò)誤,不能保證軟件沒(méi)有錯(cuò)誤,不可能找出全部軟件錯(cuò)誤。個(gè)人的能力和對(duì)質(zhì)量的影響范圍很小,軟件質(zhì)量的提高要靠軟件項(xiàng)目團(tuán)隊(duì)全體成員的共同努力。
⒉承擔(dān)軟件的發(fā)布權(quán)利
????????不要因?yàn)檐浖写嬖谶€沒(méi)有修復(fù)的錯(cuò)誤,而試圖提出更改軟件發(fā)布的計(jì)劃。也不要認(rèn)為已經(jīng)完成了測(cè)試計(jì)劃,自己決定可以發(fā)布軟件。因?yàn)椋淖冘浖l(fā)布計(jì)劃可能要失去進(jìn)入市場(chǎng)的良機(jī)和很多客戶,對(duì)此造成的經(jīng)濟(jì)和公司市場(chǎng)的損失將不是測(cè)試工程師能夠承擔(dān)的。另外,軟件發(fā)布后,如果用戶發(fā)現(xiàn)了新的軟件錯(cuò)誤,公司領(lǐng)導(dǎo)或項(xiàng)目經(jīng)理可能將過(guò)錯(cuò)加在軟件測(cè)試人員的頭上,因?yàn)樗麄兺獍l(fā)布軟件。通常軟件發(fā)布的權(quán)利由產(chǎn)品經(jīng)理、項(xiàng)目經(jīng)理、測(cè)試經(jīng)理、市場(chǎng)經(jīng)理共同集體討論決定。
⒊扮演過(guò)程改進(jìn)成員的角色
????????軟件測(cè)試工程師必須報(bào)告錯(cuò)誤,有時(shí)也要分析錯(cuò)誤的類型、特征和產(chǎn)生錯(cuò)誤的原因。但是,不要主動(dòng)提出改進(jìn)軟件過(guò)程的具體改進(jìn)措施,更不要直接干涉程序員的工作方式,以免出力不討好,影響今后的愉快合作。軟件過(guò)程改進(jìn)的方法是軟件質(zhì)量控制部門的事情,這是他們的本職工作。
三、工作職責(zé)
????????軟件測(cè)試就是使用人工或自動(dòng)手段,來(lái)運(yùn)行或測(cè)試某個(gè)系統(tǒng)的過(guò)程。其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差別。開發(fā)工作的根本是盡量實(shí)現(xiàn)軟件用戶的需求,測(cè)試工作的根本是檢驗(yàn)軟件系統(tǒng)是否滿足軟件用戶的需求。
????????軟件測(cè)試工程師簡(jiǎn)單的說(shuō)是軟件開發(fā)過(guò)程中的質(zhì)量檢測(cè)者和保障者,負(fù)責(zé)軟件質(zhì)量的把關(guān)工作。軟件測(cè)試工程師具體工作有:
1.使用各種測(cè)試技術(shù)和方法來(lái)測(cè)試和發(fā)現(xiàn)軟件中存在的軟件缺陷
????????測(cè)試技術(shù)主要分為黑盒測(cè)試和白盒測(cè)試兩大類。其中黑盒測(cè)試技術(shù)主要有等價(jià)類劃分法、邊界值法、因果圖法、狀態(tài)圖法、測(cè)試大綱法以及各類典型的軟件故障模型等;白盒測(cè)試的主要技術(shù)有語(yǔ)句覆蓋、分支覆蓋、判定覆蓋、基本路徑覆蓋等
2.測(cè)試工作需要貫穿整個(gè)軟件開發(fā)生命周期
????????完整的軟件測(cè)試工作包括單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試工作。單元測(cè)試工作主要在編碼階段完成,由開發(fā)人員和軟件測(cè)試工程師共同完成,其主要依據(jù)是詳細(xì)測(cè)試。集成測(cè)試的主要工作測(cè)試軟件模塊之間的接口是否正確實(shí)現(xiàn),基本依據(jù)是軟件體系結(jié)構(gòu)設(shè)計(jì)。確認(rèn)測(cè)試和系統(tǒng)測(cè)試是在軟件開發(fā)完成后,驗(yàn)證軟件的功能與需求的一致性、驗(yàn)證軟件在相應(yīng)的硬件條件下的系統(tǒng)功能是否滿足用戶需求,其主要依據(jù)是用戶需求
3.測(cè)試人員將發(fā)現(xiàn)的缺陷編寫成正式的缺陷報(bào)告,提交給開發(fā)人員進(jìn)行缺陷的確認(rèn)和修復(fù)
????????缺陷報(bào)告編寫最主要的要求是保證缺陷的重現(xiàn)。要求測(cè)試人員具有很好的文字表達(dá)能力和語(yǔ)言組織能力
4.測(cè)試人員需要分析軟件質(zhì)量
????????在測(cè)試完成后,測(cè)試人員需要根據(jù)測(cè)試結(jié)果來(lái)分析軟件質(zhì)量,包括缺陷率、缺陷分布、缺陷修復(fù)趨勢(shì)等。給出軟件各種質(zhì)量特性包括有功能性、可靠性、易用性、安全性、時(shí)間與資源特性等的具體度量。最后給出一個(gè)軟件是否可以發(fā)布或提交用戶使用的結(jié)論
5.測(cè)試過(guò)程中,為了更好地組織與實(shí)施測(cè)試工作,測(cè)試負(fù)責(zé)人需要制定測(cè)試計(jì)劃,包括有測(cè)試資源、測(cè)試進(jìn)度、測(cè)試策略、測(cè)試方法、測(cè)試工具、測(cè)試風(fēng)險(xiǎn)等
6.測(cè)試人員為了更好更有效地進(jìn)行測(cè)試,保證測(cè)試工作質(zhì)量,需要在執(zhí)行測(cè)試工作之前首先需要設(shè)計(jì)測(cè)試用例,形成測(cè)試用例報(bào)告
????????設(shè)計(jì)測(cè)試用例是保證測(cè)試質(zhì)量的核心工作,很多測(cè)試技術(shù)都可以用來(lái)指導(dǎo)設(shè)計(jì)用例。為了提高測(cè)試用例的設(shè)計(jì)效率,BTEST培訓(xùn)課程專門開設(shè)了高效設(shè)計(jì)測(cè)試用例一門課來(lái)講授各種設(shè)計(jì)用例的技術(shù)與方法
7.為了提高工作效率或提高測(cè)試水平,測(cè)試工作需要引進(jìn)自動(dòng)化測(cè)試工具,測(cè)試人員需要學(xué)會(huì)使用自動(dòng)化測(cè)試工具,編寫測(cè)試腳本,進(jìn)行性能測(cè)試等。
8.測(cè)試負(fù)責(zé)人在測(cè)試工作中,還需要根據(jù)實(shí)際情況不斷改進(jìn)測(cè)試過(guò)程,提高測(cè)試水平,進(jìn)行測(cè)試隊(duì)伍的建設(shè)等。
四、職業(yè)發(fā)展
1. 簡(jiǎn)介
????????測(cè)試組長(zhǎng)這類測(cè)試人員通常是測(cè)試項(xiàng)目的負(fù)責(zé)人,既要具備較高的測(cè)試技術(shù)能力,還要具備一定的管理能力。主要職責(zé)是制定測(cè)試計(jì)劃、編寫測(cè)試計(jì)劃、監(jiān)控和管理整個(gè)測(cè)試過(guò)程。測(cè)試組長(zhǎng)可以向上發(fā)展為測(cè)試部經(jīng)理、質(zhì)量經(jīng)理,也可以橫向發(fā)展為項(xiàng)目經(jīng)理,而且通常待遇相對(duì)較高些。
2.測(cè)試分析師
????????主要職責(zé)是對(duì)系統(tǒng)的測(cè)試結(jié)果進(jìn)行綜合的分析,例如缺陷分析、性能分析等。測(cè)試分析師不但測(cè)試技術(shù)能力較強(qiáng),還要具備數(shù)據(jù)庫(kù)、操作系統(tǒng)等多方面的技術(shù)知識(shí)。這類職務(wù)的發(fā)展空間也不錯(cuò),可以發(fā)展成系統(tǒng)設(shè)計(jì)師等。
3.測(cè)試工程師
????????主要職責(zé)是編寫測(cè)試程序、執(zhí)行自動(dòng)化測(cè)試任務(wù)。這類職位的測(cè)試人員至少要達(dá)到初級(jí)程序員的能力,因?yàn)榻?jīng)常和程序打交道。發(fā)展空間也不錯(cuò),例如可以發(fā)展為程序員。