性能測試團隊如何組建?
本人一直在做產(chǎn)品和項目的公司測試部門從事測試工作,從未在第三方測試團隊中工作過,因此,本人的觀點僅限于非第三方測試團隊。
在本人的從業(yè)經(jīng)歷中,先后涉及過醫(yī)療、水利、政府、軍隊等行業(yè),以個人的經(jīng)歷來看,在非第三方測試團隊中,是不存在專職的性能測試團隊的。這是由于所在公司的性質(zhì)以及測試工作任務(wù)所決定的。由于處在非第三方的測試團隊中,其工作任務(wù)就是負責公司的產(chǎn)品或項目的質(zhì)量保證。在日常的工作中,80%以上的工作屬于需求分析和功能測試,當然,對于做產(chǎn)品的公司來說,功能測試中還包含自動化測試;而性能測試工作僅在功能穩(wěn)定后,才會正式開展,因此,性能測試的工作量僅占日常工作的20%左右。正是由于性能測試工作所占日常工作量的比重不大,所以,公司不可能組建專職的性能測試團隊,因為公司不可能讓這些性能測試工程師在一年的大部分時間內(nèi)都閑著。。。
(當然,性能測試應(yīng)該從單元測試就開始,這樣才能盡早的發(fā)現(xiàn)問題,這也是國外軟件測試所推崇的。但是,這不符合我國當前的軟件測試發(fā)展形勢。畢竟軟件測試行業(yè)在國內(nèi)尚屬發(fā)展初期,現(xiàn)在能組織性能測試工作的公司就已經(jīng)很不錯了,有相當一部分公司都是只要軟件不宕機,壓根就不會想起性能測試的。 )
抱怨完當前的形勢之后,咱們言歸正傳。雖說公司不會組建專職的性能測試團隊,但是公司卻提倡軟件測試人員具備性能測試的技能,平時從事功能測試,一旦有性能測試需求,也可以立即投入。(給的是功能測試工程師的待遇,干的卻有性能測試工程師的活。公司還真會算賬。。。 )
接下來談一下測試團隊應(yīng)具備的性能測試技能吧。
首先,性能測試的重點是場景設(shè)計。那么,測試團隊就必須具備需求調(diào)研和分析的能力。有人會說,性能測試指標都是用戶給定的,還需要需求調(diào)研和分析能力么?答案是肯定的。因為相當一部分用戶所提出的性能測試指標是不可靠的。他們提出的性能測試指標,往往是拍腦袋拍出來的。如:一個業(yè)務(wù)發(fā)生頻率不高的系統(tǒng),但用戶數(shù)卻在4萬人,這時候用戶很可能就會要求并發(fā)數(shù)在4000左右,但實際上沒有那么大的業(yè)務(wù)量,系統(tǒng)是不需要那么高的并發(fā)數(shù)的。反之,有的系統(tǒng)雖說用戶數(shù)不是太多,但是業(yè)務(wù)發(fā)生頻率很高,這種系統(tǒng)要求的并發(fā)數(shù)也不會很低。因此,測試人員必須具備需求調(diào)研和分析的能力,能夠引導客戶,得到真實的業(yè)務(wù)發(fā)生頻率、發(fā)生類型、業(yè)務(wù)量以及數(shù)據(jù)量。從而,分析出系統(tǒng)可能出現(xiàn)性能瓶頸的業(yè)務(wù),并進行場景設(shè)計;
其次,應(yīng)具備一定的系統(tǒng)分析能力。被測軟件所用框架、中間件、業(yè)務(wù)組件、硬件、網(wǎng)絡(luò)、部署結(jié)構(gòu)等所有因素,哪些地方有可能出現(xiàn)性能瓶頸。那么,它一定在你的測試場景覆蓋范圍之內(nèi)。如:一個使用頻率不高的業(yè)務(wù)組件,但由于業(yè)務(wù)復雜度較高或資源沖突等因素,很有可能會成為性能瓶頸的。
最后,就是應(yīng)具備負載生成工具及監(jiān)控工具的應(yīng)用能力。畢竟,設(shè)計的性能測試場景是需要被執(zhí)行,性能測試執(zhí)行結(jié)果是需要被采集的。
如果已經(jīng)掌握上述的各項能力,那么說明這支團隊已經(jīng)具備初級的性能測試執(zhí)行能力。接下來,再談一下更高的要求。
第一,掌握硬件的配置及原理。如:F5負載均衡服務(wù)器,采用的是哪種均衡策略,這將直接影響到你的性能測試場景的設(shè)計及執(zhí)行的效果;
第二,掌握被測軟件所用操作系統(tǒng)的常用命令,它可以幫助你啟動/關(guān)閉操作系統(tǒng)的服務(wù),以及系統(tǒng)資源使用情況;
第三,掌握被測軟件所用中間件的配置參數(shù)及監(jiān)控方法;
第四,掌握必要的開發(fā)能力。商業(yè)化的測試工具畢竟有一定的局限性,很難完全支撐各類性能測試的執(zhí)行。因此,需要開發(fā)必要的負載生成工具、預(yù)埋數(shù)據(jù)腳本、監(jiān)控工具等;
第五,掌握測試結(jié)果分析和調(diào)優(yōu)的能力。測試結(jié)果僅僅是采集到還是不夠的,還需要分析系統(tǒng)運行時的資源使用情況,分析系統(tǒng)性能瓶頸以及是否存在由于性能原因?qū)е鹿δ苄藻e誤等問題。當然,如果能夠根據(jù)測試結(jié)果,給出性能瓶頸的解決方法,那么,這支測試團隊就是支高素質(zhì)的性能測試團隊。
以上僅僅是個人的一些觀點,不足之處,還望大家指正。