軟件測試 | 性能測試誤區(qū)(二)
誤區(qū)5:在開發(fā)環(huán)境下進行一下性能測試就可以了
很多時候,在系統(tǒng)開發(fā)完成后會進行性能測試,在開發(fā)環(huán)境“看一看”軟件的性能。而實際上大多數(shù)的開發(fā)環(huán)境因為硬件條件比較差,所以反映不了系統(tǒng)的真正性能。這是因為系統(tǒng)的性能表現(xiàn)通常依賴于硬件,一些系統(tǒng)在資源不足的情況下可能運行緩慢,這類問題往往提高一下硬件配置就可以解決問題。一些系統(tǒng)在資源不足條件下發(fā)現(xiàn)的性能問題,主要通過優(yōu)化程序來解決,則可能需要花費非常高的人力成本。當(dāng)然,對于一些算法方面的缺陷、內(nèi)存泄漏、低效SQL等問題,則無論任何環(huán)境下都應(yīng)該修正程序來解決。
性能測試的最終目的是為了發(fā)現(xiàn)系統(tǒng)的軟件和硬件瓶頸,因此性能測試盡量在軟件和硬件盡可能接近用戶投產(chǎn)的環(huán)境下進行。但是有兩種可以例外的情況:一種是為了發(fā)現(xiàn)某些功能方面的問題,例如為了發(fā)現(xiàn)并發(fā)算法的一些缺陷;另外一種就是有非常好的硬件資源或者實驗室作為開發(fā)環(huán)境。
以銀行系統(tǒng)性能測試為例,幾乎不會在開發(fā)環(huán)境下開展性能測試,多數(shù)會在準生產(chǎn)環(huán)境下或獨立的接近生產(chǎn)的性能環(huán)境來開展性能測試工作。
誤區(qū)6:系統(tǒng)存在瓶頸,不可以使用
系統(tǒng)發(fā)現(xiàn)了瓶頸,的確是很讓人擔(dān)心的一件事情。不過不要緊,很多的瓶頸可以不必去投入成本進行調(diào)優(yōu)。一些性能問題或瓶頸是否要進行調(diào)優(yōu)取決于是否會影響用戶的正常使用,部分性能只是從技術(shù)角度上看是問題而已,從用戶性能需求角度看則不是當(dāng)下需要解決的問題了。了解系統(tǒng)的已知瓶頸問題可以更好地掌握系統(tǒng)性能特性,為改善和擴展系統(tǒng)提供依據(jù)。
舉個例子:如果距離工作單位只有10分鐘的路程,相信大多數(shù)人會步行上班,部分人可能會騎著自行車上班,但是很少有人開汽車上班—這樣純屬資源浪費。做性能測試也是這樣,只要系統(tǒng)在性能方面能滿足用戶的需求并保留30%~50%的擴展空間即可。一個系統(tǒng)預(yù)估一兩年內(nèi)最大并發(fā)用戶500個左右,測試是發(fā)現(xiàn)當(dāng)前資源下1000個用戶并發(fā)時開始運行緩慢,這樣的性能問題可以不必處理,但如果600個左右并發(fā)出現(xiàn)性能問題,則應(yīng)該對系統(tǒng)進行調(diào)優(yōu)。
誤區(qū)7:不切實際的性能指標(biāo)
這種現(xiàn)象主要歸結(jié)于對系統(tǒng)性能需求的不了解。很多時候,尤其是用戶會提出很多不切實際的性能指標(biāo),例如,針對500個用戶使用的OA系統(tǒng),可能有的業(yè)務(wù)負責(zé)人會提出要滿足100個,甚至500個用戶并發(fā)的性能需求,而實際并發(fā)數(shù)量不會高于50個。這種情況需要和用戶進行溝通來確定合理的性能需求。
總之對待性能問題要根據(jù)實際情況來決定,對于系統(tǒng)的性能要求把握合適的“度”,一個系統(tǒng)投產(chǎn)版本的性能在其生命周期能夠滿足性能需求即可。