軟件測試 | 性能測試的誤區(qū)(一)
性能測試以其獨特的地位和重要性越來越為軟件測試人員、開發(fā)人員和用戶所重視,但是在實施性能測試方面,不管是測試人員還是開發(fā)人員,仍然存在一些認識上的不足,存在這樣或者那樣的問題。
誤區(qū)1:提高硬件配置就可以提高性能了,因此性能測試不重要。
這是以前系統(tǒng)規(guī)模較小時期留下來的認識。早期的DOS時代以及后來管理信息系統(tǒng)剛剛流行的時期,軟件規(guī)模一般較小,而硬件的更新確實日新月異,軟件的性能一般不是突出問題,因為只要升級硬件,性能問題很容易得到解決。
現(xiàn)在隨著軟件規(guī)模的擴大,提高硬件配置只是解決性能問題的一個基本手段。因為如果軟件自身存在性能問題,再多的資源可能也不能夠用,例如內(nèi)存泄漏問題,隨著時間的增加,內(nèi)存終究會被耗盡,最后導(dǎo)致系統(tǒng)崩潰。
因此,如果用戶對軟件的性能要求較高,這將意味著不但要從硬件方面來提供性能,還要從數(shù)據(jù)流、應(yīng)用服務(wù)器、操作系統(tǒng)等多方面入手來提高性能,尤其要對開發(fā)的軟件系統(tǒng)本身進行優(yōu)化,從而全面提高系統(tǒng)的性能。
誤區(qū)2:性能測試在所有其他測試完成后,測試一下看看就可以了。
這是非常普遍的做法,主要是項目負責人忽略了性能測試的重要性引起的。這種做法最嚴重的后果是一些性能問題可能在后期無法徹底解決,例如架構(gòu)設(shè)計方面的失誤,可能意味著要么系統(tǒng)“將就”上線,要么系統(tǒng)“推到重來”。
在一個銀行項目,由于數(shù)據(jù)庫表設(shè)計不合理,最終導(dǎo)致整個項目的核心功能推到重來。在那個應(yīng)用系統(tǒng)中,由于數(shù)據(jù)庫設(shè)計的一個巨大缺陷——大量內(nèi)容放在一張表上,導(dǎo)致并發(fā)用戶較多時,數(shù)據(jù)庫服務(wù)器無法及時并處理用戶請求,最后停止提供服務(wù)。這種問題一般在開發(fā)環(huán)境下不經(jīng)過測試或者詳細的審核論證是很那發(fā)現(xiàn)的,而一旦發(fā)生,幾乎沒有什么太有效的補救措施。
當然這并不意味著所有的性能測試都要盡早進行。
誤區(qū)3:性能測試獨立于功能測試
性能測試和功能測試是緊密聯(lián)系在一起的,首先是因為很多性能問題是由軟件自身功能的設(shè)計缺陷引起的。如果應(yīng)用系統(tǒng)功能設(shè)計不完善或者代碼運行效率低下,通常會帶來一些性能問題。功能測試通常要先于性能測試或者同步進行,功能測試進行順利才能保證性能測試順利開展。
其次功能測試可以發(fā)現(xiàn)性能問題,性能測試也能發(fā)現(xiàn)功能問題。例如并發(fā)用戶測試就能發(fā)現(xiàn)一些算法設(shè)計上的問題。在一些業(yè)務(wù)處理上,通常采用多線程同步算法,通過并發(fā)用戶測試很容易發(fā)現(xiàn)算法中存在的一下功能缺陷。
此外,如果一些系統(tǒng)的性能要求比較高,則性能測試和功能測試會同步進行,因為后發(fā)現(xiàn)的性能問題可能無法補救。
誤區(qū)4:性能測試就是用戶并發(fā)測試
仍然有很多技術(shù)人員一提到性能測試,就會聯(lián)想到并發(fā)用戶測試,進而認為性能測試就是“測試一下多用戶并發(fā)使用系統(tǒng)時的性能表現(xiàn)”。盡管性能測試是以用戶并發(fā)測試為主的測試,但實際上性能測試還包含峰值測試、疲勞強度測試和大數(shù)據(jù)量測試等許多測試種類。
實際上,性能測試屬于項目范疇,應(yīng)該按照“啟動—計劃—實施—控制—收尾”的項目管理過程來開展工作,而不是簡單地測試一下就完成任務(wù)了。