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