朋友最近需要聘請一些性能測試工程師,問我:“一個優(yōu)秀的性能工程師需要怎樣的素質(zhì)?”在我思前想后最終想到一些東西之后,我覺得有必要跟大家分享一下我的看法,你也可以加入你的意見,這些都有助于老板們在雇傭性能測試工程師時作出精明的選擇。
需要聲明的是:這里列出的東西目的不是要作為人力資源部的正式職位描述,而更多的是關(guān)于原則和概念。
技能方面
你需要一位了解最新的計算機(jī)技術(shù)和概念的人。他需要熟練地安裝操作系統(tǒng)(包括Windows、Linux等),自己動手設(shè)置網(wǎng)絡(luò),為什么這些是重要的呢?因為他往往在工作中需要自己搭建一個測試的實驗環(huán)境。
網(wǎng)絡(luò)知識要點 – 你需要一位全面了解OSI模型的人,他應(yīng)該知道TCP/IP,需要知道DNS、DHCP、WINS、路由/交換器/網(wǎng)路集線器,并且知道他們的工作原理。為什么這些是需要的呢?因為他可能需要用到網(wǎng)絡(luò)嗅探工具來定位網(wǎng)絡(luò)瓶頸所在,那么很明顯,他需要知道自己在“嗅探”什么。作為性能測試工程師,在碰到一些簡單的網(wǎng)絡(luò)問題時應(yīng)該能自己解決,而不需要把負(fù)責(zé)網(wǎng)絡(luò)的工程師拉過來幫忙,他應(yīng)該能自己解決類似LoadRunner中Controller和Load Generator之間的連接問題,只要知道網(wǎng)絡(luò)接入、IP地址設(shè)置等常見的問題就能解決。
協(xié)議 – 最低要求是:他能夠?qū)椖?a target="_blank">產(chǎn)品中用到的那些協(xié)議輕易地創(chuàng)建測試腳本。當(dāng)然,最好是掌握更多的協(xié)議,有各種各樣的協(xié)議測試腳本開發(fā)經(jīng)驗,例如Winsock、COM、HTTP、Citrix等,因為不知道什么時候也許就能用上這些東西了。
雖然我不要求他是一位“代碼狂”或者開發(fā)愛好者,但是他應(yīng)該可以看懂HTML、ASP、JSP、JAVA、C等代碼,并且可以弄懂代碼中的來龍去脈。因為這些東西不僅對于測試腳本開發(fā)來說是需要的,而且對于定位代碼瓶頸尤為重要,很明顯,他對代碼懂得越多,能發(fā)現(xiàn)的問題就越多。
SQL方面的知識(包括查詢語句、存儲過程、索引、數(shù)據(jù)庫管理、備份還原等)。數(shù)據(jù)庫是復(fù)雜應(yīng)用系統(tǒng)中造成主要瓶頸的幾個原因之一。在這方面找出造成瓶頸的原因一般來講是DBA的事情,但是如果你的性能測試工程師對此一竅不通,也不知道如何與數(shù)據(jù)庫打交道,則他可能就把一些關(guān)鍵的東西忽略掉了。
他需要“統(tǒng)觀全局”。他應(yīng)該知道自己在SDL(軟件開發(fā)生命周期)中的角色。他應(yīng)該知道開發(fā)人員、項目經(jīng)理、QA和系統(tǒng)管理員都是做什么事情的,并且知道如何跟他們打交道。有時候,你可能會發(fā)現(xiàn)有些技術(shù)方面很強(qiáng)的人,他們在自己的“小天地”中很牛,但是也就僅僅看到自己的那片“小天地”,而不知道對其他人在組織層面上的影響。
他應(yīng)該能非常熟練地使用你們公司所選擇的測試工具。如果他掌握了其中一個,其他的也會比較容易掌握,但是最好是選擇那些至少有一年實際使用經(jīng)驗的人。
非技能方面
跟上面說的技能同樣重要的是:性能測試工程師應(yīng)該懂業(yè)界常用的性能測試、性能調(diào)優(yōu)、容量規(guī)劃方法和過程。而不僅僅懂得按一個按鈕執(zhí)行測試。
他應(yīng)該掌握一套計劃、測試和調(diào)優(yōu)最佳實踐和方法論,并且可以根據(jù)公司的實際情況進(jìn)行調(diào)整、定制。當(dāng)然,如果聘用的是入門級別的人則不需要這些也可以,但是他們需要按照公司的現(xiàn)狀來建立這方面的內(nèi)容。
一個好的工程師應(yīng)該永遠(yuǎn)都是一名顧問,即使他的顧客是內(nèi)部人員。如果他不把每個人都當(dāng)成是顧客的話,也許你把他請進(jìn)來就直接造就了一場與開發(fā)組的不間斷的戰(zhàn)爭。他應(yīng)該是溫順的、懂得變通的、能承受壓力并保持冷靜的、對人尊重有禮貌的人。
性能測試小組的終極目標(biāo)應(yīng)該是讓產(chǎn)品發(fā)布前的每個人都保持最佳狀態(tài),為發(fā)布一款性能優(yōu)越的產(chǎn)品而努力。作為回報,每個人都喜歡性能測試小組的人,因為他們幫助大家讓程序跑得越來越快。其實這就意味著你聘請的性能測試工程師必須擁有良好的溝通能力,他們應(yīng)該被認(rèn)為是幫助別人的協(xié)作者,而不是被看作整個項目的“擋路石”。
我會比較喜歡引入那些有激情的人。我一般會找那些不斷擴(kuò)充自己知識的人。當(dāng)他們來到一個項目中,對于那些沒有接觸過的協(xié)議,他們會感到很興奮,因為這意味著他們有機(jī)會學(xué)到一些新的東西。他們會與其他公司的、網(wǎng)絡(luò)上的性能測試工程師保持聯(lián)系,構(gòu)建一個屬于自己的良好的技術(shù)支持系統(tǒng)。他們經(jīng)常參加各種各樣的活動、用戶組和會議。
最后,還有其他一些簡單的要點:他應(yīng)該有能力提醒和催促、要求別人做一些事情,而且是在能讓別人心甘情愿地、樂意地接受的情況下。他應(yīng)該盡自己所能去幫助別人,即使需要犧牲自己很多的時間,花費大量精力。他應(yīng)該非常樂意分享知識。他知道什么時候做領(lǐng)導(dǎo)者,什么時候做跟隨者。這些都是在聘用時需要考察的內(nèi)容。
小結(jié)
我非常幸運可以碰到很多真正優(yōu)秀的性能測試工程師。那些全職的顧問往往都保持忙碌的狀態(tài),因為在對待工作方面他們有相似的素質(zhì)。我想更多的是他們的非技能方面的能力,而不是他們的技能方面的能力,讓他們保持領(lǐng)先、站在更高的位置。關(guān)于一個好的性能測試工程師的素質(zhì)要求,你有沒有什么其他的建議了?如果有,歡迎發(fā)表、一起討論。
-
工程師
+關(guān)注
關(guān)注
59文章
1565瀏覽量
68411
發(fā)布評論請先 登錄
相關(guān)推薦
評論