軟件性能測試
1.什么是軟件性能測試
軟件性能測試作為軟件質(zhì)量保證必不可少的環(huán)節(jié),指的是軟件系統(tǒng)或構(gòu)件對于其及時性要求符合程度的指標(biāo);它是一種規(guī)范,可以用來量化更改業(yè)務(wù)指標(biāo)所產(chǎn)生的影響,進(jìn)而說明部署軟件的風(fēng)險。一般用響應(yīng)時間、吞吐量每秒點(diǎn)擊數(shù)等參數(shù)指標(biāo)進(jìn)行衡量。
2.軟件性能測試的內(nèi)容
性能測試主要包括負(fù)載測試、壓力測試、并發(fā)測試、大數(shù)據(jù)量測試、穩(wěn)定性測試和系統(tǒng)容量測試等技術(shù)。
(1)負(fù)載測試。負(fù)載測試是通過逐步增加系統(tǒng)負(fù)載的方式來測試系統(tǒng)性能的變化,最終確定在滿足性能指標(biāo)的情況下系統(tǒng)所能承受的最大負(fù)載量的測試。
(2)壓力測試。壓力測試是通過逐步增加系統(tǒng)負(fù)載的方式來測試系統(tǒng)性能的變化,最終確定在什么負(fù)載條件下系統(tǒng)性能處于失效狀態(tài),并以此來獲得系統(tǒng)能提供的最大服務(wù)級別的測試。
(3)并發(fā)測試。并發(fā)測試的過程是負(fù)載測試和壓力測試相結(jié)合的過程,通過逐漸增加并發(fā)用戶數(shù)負(fù)載來確定系統(tǒng)的瓶頸或者不能接受的性能點(diǎn)的測試。
(4)大數(shù)據(jù)量測試。大數(shù)據(jù)量測試是為了檢驗(yàn)系統(tǒng)存在較大數(shù)據(jù)量時,系統(tǒng)的性能是否有明顯的下降。大數(shù)據(jù)量測試包括獨(dú)立的數(shù)據(jù)量測試和綜合數(shù)據(jù)量測試2類,主要針對系統(tǒng)存儲、數(shù)據(jù)傳輸、統(tǒng)計(jì)查詢等業(yè)務(wù)進(jìn)行測試。
(5)穩(wěn)定性測試。穩(wěn)定性測試是檢驗(yàn)系統(tǒng)長時間穩(wěn)定運(yùn)行能力的測試。通過對系統(tǒng)加載一定的壓力并持續(xù)運(yùn)行一段時間,考查系統(tǒng)各性能指標(biāo)在這種壓力下是否能保持正常數(shù)值,事務(wù)響應(yīng)時間是否會出現(xiàn)波動或隨測試時間增漲而增加,以及系統(tǒng)的資源占用情況是否合理來判斷系統(tǒng)的穩(wěn)定性。
(6)系統(tǒng)容量測試。容量測試是檢驗(yàn)軟件系統(tǒng)在極限值狀態(tài)下是否出現(xiàn)任何軟件故障或能否保持主要功能正常運(yùn)行的測試。通過容量測試,可以確定測試對象在給定時間內(nèi)能夠持續(xù)處理的最大負(fù)載或工作量。
3.軟件性能測試流程
1.測試方法設(shè)計(jì)
在軟件性能測試的初始階段,首先應(yīng)對業(yè)務(wù)模型和系統(tǒng)架構(gòu)進(jìn)行調(diào)研,收集測試需求。然后生成性能測試計(jì)劃。業(yè)務(wù)調(diào)研和系統(tǒng)調(diào)研,需要性能測試團(tuán)隊(duì)提前了解被測試項(xiàng)目的業(yè)務(wù)功能和系統(tǒng)架構(gòu)。其間,開發(fā)部門應(yīng)協(xié)助提供
被測系統(tǒng)相關(guān)的文檔和說明,如系統(tǒng)總體介紹、系統(tǒng)規(guī)格書、用戶使用手冊、網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖和系統(tǒng)配置說明、關(guān)鍵服務(wù)器及應(yīng)用部署與配置等文檔通過和業(yè)務(wù)部門協(xié)商明確本次測試針對哪些業(yè)務(wù)行為,制定此次測試的目標(biāo),細(xì)化測試的關(guān)注點(diǎn)和性能指標(biāo)要求。通過以上內(nèi)容制定詳細(xì)的測試方案,并制定詳細(xì)測試計(jì)劃和各階段目標(biāo)。
2.測試環(huán)境的搭建
測試環(huán)境的搭建分為軟硬測試系統(tǒng)的環(huán)境搭建和測試相關(guān)的數(shù)據(jù)準(zhǔn)備工作。環(huán)境搭建包括被測試系統(tǒng)的硬件環(huán)境建立和軟件應(yīng)用系統(tǒng)建立及基礎(chǔ)數(shù)據(jù)環(huán)境建立。保障被測試系統(tǒng)的業(yè)務(wù)可用性和功能的正確性,包括測試系統(tǒng)(如被測試項(xiàng)目的操作系統(tǒng)、中間件、數(shù)據(jù)庫、壓力測試控制臺、壓力測試發(fā)起工具等)的環(huán)境搭建、軟件的安裝I測試環(huán)境的網(wǎng)絡(luò)環(huán)境建立(如開放防火墻和網(wǎng)關(guān)等);最后進(jìn)行測試環(huán)境可用性驗(yàn)證。測試數(shù)據(jù)準(zhǔn)備包括測試應(yīng)用系統(tǒng)基礎(chǔ)數(shù)據(jù)準(zhǔn)備,即需要按性能測試規(guī)模要求,準(zhǔn)備足夠的、一定規(guī)模的基礎(chǔ)數(shù)據(jù),通常采用全量恢復(fù)生產(chǎn)數(shù)據(jù)的方式以達(dá)到和生產(chǎn)環(huán)境數(shù)據(jù)一致性的要求。
3.測試場景開發(fā)
測試場景開發(fā)指測試程序(腳本)的開發(fā)。測試程序(腳本)的開發(fā)是對被測系統(tǒng)的用戶業(yè)務(wù)行為進(jìn)行模擬、錄制、編程、參數(shù)化、腳本定制和調(diào)式等一系列工作,以使測試程序(腳本)可以真實(shí)模擬實(shí)際生產(chǎn)中的業(yè)務(wù)交易行為,并通過對程序中參數(shù)的配置實(shí)現(xiàn)對并發(fā)數(shù)、思考時間等屬性的準(zhǔn)確控制。
4.測試執(zhí)行
測試執(zhí)行是在測試方案的制定、測試環(huán)境準(zhǔn)備、測試場景開發(fā)工作正確完成的基礎(chǔ)上進(jìn)行的。
5.測試報告和分析
性能測試報告和結(jié)果分析是在測試執(zhí)行完成以后,對性能數(shù)據(jù)進(jìn)行采集結(jié)果收集工作和針對性能測試過程中暴露的問題進(jìn)行分析的階段。性能測試報告是對性能測試過程中的監(jiān)控結(jié)果以及報表進(jìn)行匯總,按照一定的模板整理出的一份結(jié)論性文檔。開發(fā)團(tuán)隊(duì)和性能測試團(tuán)隊(duì)?wèi)?yīng)依據(jù)對性能測試實(shí)施過程中監(jiān)控和記錄的數(shù)據(jù)和表格,分析系統(tǒng)中存在的性能問題和程序缺陷。并有針對性的在報告中闡述問題、分析原因、提出解決或優(yōu)化方案。
6.回歸測試
回歸測試是開發(fā)部門在性能測試報告的基礎(chǔ)上針對軟件的性能或者效率缺陷進(jìn)行優(yōu)化或者修復(fù),為了驗(yàn)證優(yōu)化的效果而進(jìn)行的再測試。