認(rèn)識(shí)軟件性能測(cè)試10大誤區(qū)
字體: 小 中 大 | 上一篇 下一篇 | 打印 | 我要投稿 | 推薦標(biāo)簽: 性能測(cè)試 軟件測(cè)試
曾經(jīng)我們幫助客戶(hù)進(jìn)行軟件性能測(cè)試的時(shí)候,客戶(hù)不解的問(wèn),不是必須通過(guò)功能測(cè)試后才可以測(cè)試性能嗎?可能有很多人會(huì)存在這樣的疑問(wèn),在這里,我們的多位專(zhuān)家根據(jù)多年經(jīng)驗(yàn)總結(jié)出性能測(cè)試的10大誤區(qū),希望能給大家?guī)?lái)幫助。
誤區(qū)1:應(yīng)用程序必須通過(guò)功能測(cè)試后才可以測(cè)試性能。
應(yīng)該盡早的進(jìn)行性能測(cè)試。性能測(cè)試可以發(fā)生在各個(gè)測(cè)試階段中,即使是在單元層,一個(gè)單獨(dú)模塊的性能也可以使用白盒測(cè)試來(lái)進(jìn)行評(píng)估,然而,只有當(dāng)整個(gè)系統(tǒng)的所有成分都集成到一起后,才能檢查一個(gè)系統(tǒng)的真正性能。
性能測(cè)試從早開(kāi)始,完成一個(gè)小模塊,對(duì)小模塊的接口進(jìn)行性能測(cè)試,一般耗費(fèi)資源很少,但可以防止問(wèn)題在項(xiàng)目最后出現(xiàn),花費(fèi)很大的精力去修改。
而有些資料中提到的:在系統(tǒng)代碼開(kāi)發(fā)和功能測(cè)試完成之后,進(jìn)行性能測(cè)試的說(shuō)法,是為了檢查系統(tǒng)整體性能的做法。一般經(jīng)常出現(xiàn)在驗(yàn)收性能測(cè)試中。
誤區(qū)2:軟件性能測(cè)試要向功能測(cè)試一樣,覆蓋到所有功能。
性能測(cè)試的主要目的是為了系統(tǒng)調(diào)優(yōu)。不可能對(duì)所有的系統(tǒng)功能都進(jìn)行性能測(cè)試。在測(cè)試設(shè)計(jì)時(shí)需要結(jié)合當(dāng)時(shí)的實(shí)際系統(tǒng),先分析軟件可能存在的瓶頸,此時(shí)可依據(jù)80/20原則分析:對(duì)系統(tǒng)資源的利用、數(shù)據(jù)大量傳輸、數(shù)據(jù)轉(zhuǎn)換、用戶(hù)使用頻率、邏輯復(fù)雜度等進(jìn)行分析,選擇要執(zhí)行的功能和場(chǎng)景,再依次制定性能測(cè)試的方案。
誤區(qū)3:系統(tǒng)吞吐率隨著并發(fā)量增加而增加。
隨著并發(fā)量的增加吞吐率并不是線(xiàn)性增長(zhǎng)的。并發(fā)量從小逐漸增大,開(kāi)始階段吞吐率隨著并發(fā)量的增加線(xiàn)性變化;當(dāng)并發(fā)量達(dá)到某一值時(shí),系統(tǒng)處理能力趨于飽和(也可能某一硬件條件達(dá)到臨界值),此時(shí)再逐漸增大并發(fā),會(huì)有一些請(qǐng)求處于等待狀態(tài),所以響應(yīng)時(shí)間變慢,吞吐率趨于穩(wěn)定;當(dāng)并發(fā)量達(dá)到系統(tǒng)的最大處理能力后,再增加并發(fā),系統(tǒng)處理能力會(huì)下降,吞吐率也會(huì)下降,最終可能發(fā)生宕機(jī)。
誤區(qū)4:客戶(hù)給出性能指標(biāo),我們一定要想法設(shè)法達(dá)到。
根據(jù)用戶(hù)提供的指標(biāo)進(jìn)行可行性分析,分析這些指標(biāo)在理想狀態(tài)下是否可以達(dá)到。比如有這么一個(gè)要求:有一臺(tái)服務(wù)器,希望能承載10000個(gè)用戶(hù)每秒200kb的傳輸。從CPU、Disk、網(wǎng)卡等方面分析都是很難達(dá)到的,也是很難測(cè)試的。需要和客戶(hù)商討增加硬件配置或者通過(guò)其他途徑來(lái)解決。
誤區(qū)5:壓力測(cè)試、負(fù)載測(cè)試、容量測(cè)試等這些不同類(lèi)型的測(cè)試一個(gè)一個(gè)分開(kāi)來(lái)執(zhí)行。
現(xiàn)實(shí)場(chǎng)景是復(fù)雜的,測(cè)試也需要盡可能的模擬負(fù)載的場(chǎng)景。在一個(gè)整體的系統(tǒng)性能測(cè)試場(chǎng)景中,應(yīng)該包括各個(gè)類(lèi)型的測(cè)試。而需要檢查某一個(gè)方面的指標(biāo)或分析某個(gè)性能問(wèn)題時(shí),盡量保證場(chǎng)景簡(jiǎn)單、單一、容易模擬。
誤區(qū)6:做性能測(cè)試主要就是性能測(cè)試工具的使用;我做不好性能測(cè)試,是因?yàn)閷?duì)測(cè)試工具不熟悉;測(cè)試工具可以自動(dòng)生成我所需要的報(bào)表;依靠性能測(cè)試工具就能準(zhǔn)確定位系統(tǒng)瓶頸;
測(cè)試工具在測(cè)試中只能起到輔助性作用。而測(cè)試方案、測(cè)試場(chǎng)景的分析、問(wèn)題的定位這才是性能測(cè)試的關(guān)鍵。不要期望測(cè)試工具能夠生成你想要的東西(報(bào)表、瓶頸分析),工具只是盡可能多的提供我們分析的依據(jù)。
誤區(qū)7:在線(xiàn)用戶(hù)數(shù)就是并發(fā)用戶(hù)數(shù)。并發(fā)用戶(hù)數(shù)高意味著PV(頁(yè)面瀏覽量)大。
并發(fā)用戶(hù)數(shù)*用戶(hù)訪(fǎng)問(wèn)頁(yè)面數(shù)=PV
誤區(qū)8:提高一下硬件配置就可以提高性能了,因此性能測(cè)試不重要。
隨著軟件規(guī)模的擴(kuò)大,提高硬件配置只是解決性能問(wèn)題的一個(gè)基本手段。因?yàn)槿绻浖陨泶嬖谛阅軉?wèn)題,再多的資源可能也不夠用,例如:內(nèi)存泄露問(wèn)題,隨著時(shí)間的增加,內(nèi)存終究會(huì)被耗盡,最后導(dǎo)致系統(tǒng)崩潰;數(shù)據(jù)庫(kù)連接等配置信息、數(shù)據(jù)庫(kù)死鎖是和硬件很難掛鉤的;算法邏輯問(wèn)題導(dǎo)致程序緩慢。即使要提高配置,也要首先用性能測(cè)試的方式得出哪些硬件可能存在瓶頸。
誤區(qū)9:性能測(cè)試獨(dú)立于功能測(cè)試
一方面,整體性能測(cè)試的場(chǎng)景設(shè)計(jì)要求的系統(tǒng)功能非常熟悉;另一方面,功能測(cè)試可以發(fā)現(xiàn)性能問(wèn)題,性能測(cè)試也能發(fā)現(xiàn)功能問(wèn)題。很多性能問(wèn)題時(shí)由于軟件自身功能缺陷引起的。如果應(yīng)用系統(tǒng)功能不完善或者代碼運(yùn)行效率低下,通常會(huì)帶來(lái)一些性能問(wèn)題。功能測(cè)試可能會(huì)發(fā)現(xiàn)這些問(wèn)題。
誤區(qū)10:隨便找個(gè)環(huán)境下進(jìn)行一下性能測(cè)試就可以了。
做性能問(wèn)題分析可以在類(lèi)生產(chǎn)環(huán)境上進(jìn)行,配置可以有些差別,但是,整體性性能測(cè)試、驗(yàn)收性性能測(cè)試要盡量在用戶(hù)生產(chǎn)環(huán)境下進(jìn)行。
天貓 軟件自動(dòng)化測(cè)試開(kāi)發(fā)