本文不想就軟件測試技術(shù)和軟件測試策略作深入的理論分析,而是列舉一個(gè)在軟件系統測試階段進(jìn)行的壓力測試實(shí)例,希望能通過(guò)這個(gè)實(shí)例與從事軟件測試相關(guān)工作的朋友進(jìn)行交流。
首先介紹一下實(shí)例中軟件的項目背景,該軟件是一個(gè)典型的三層C/S架構的MIS系統(客戶(hù)端/應用服務(wù)器/數據庫管),中間層是業(yè)務(wù)邏輯層,應用服務(wù)器處理所有的業(yè)務(wù)邏輯,但應用服務(wù)器本身不提供負載均衡的能力,而是利用開(kāi)發(fā)工具提供的ORB(對象請求代理)軟件保證多個(gè)應用服務(wù)器間的負載均衡。本次測試的目的是:進(jìn)行單個(gè)應用服務(wù)器的壓力測試,找出單個(gè)應用服務(wù)器能夠支持的最大客戶(hù)端數。測試壓力估算的依據是:假定在實(shí)際環(huán)中,用戶(hù)只啟用一個(gè)應用服務(wù)器進(jìn)行所有的業(yè)務(wù)處理。方法是:按照正常業(yè)務(wù)壓力估算值的1~10倍進(jìn)行測試,考察應用服務(wù)器的運行情況。
壓力測試的詳細計劃如下:
壓力測試計劃
1、測試計劃名稱(chēng)
河北省公安交通管理信息系統壓力測試計劃。
2、測試內容
2.1背景
本次測試中的壓力測試是指模擬實(shí)際應用的軟硬件環(huán)境及用戶(hù)使用過(guò)程的系統負荷,長(cháng)時(shí)
間運行測試軟件來(lái)測試被測系統的可靠性,同時(shí)還要測試被測系統的響應時(shí)間。
用戶(hù)的實(shí)際使用環(huán)境:
◇由兩臺IBM XSeries250 PC Server組成的Microsoft Cluster;
◇數據庫管理系統采用Oracle8.1.6;
◇應用服務(wù)器程序和數據庫管理系統同時(shí)運行在Microsoft Cluster上。
◇有200個(gè)用戶(hù)使用客戶(hù)端軟件進(jìn)行業(yè)務(wù)處理,每年通過(guò)軟件進(jìn)行處理的總業(yè)務(wù)量為:150萬(wàn)筆業(yè)務(wù)/年。
2.2測試項
應用服務(wù)器的壓力測試;
2.3不被測試的特性
◇系統的客戶(hù)端應用程序的內部功能;
◇數據庫中的數據量對程序性能的影響。
3、測試計劃
3.1測試強度估算
測試壓力估算時(shí)采用如下原則:
◇全年的業(yè)務(wù)量集中在8個(gè)月完成,每個(gè)月20個(gè)工作日,每個(gè)工作日8個(gè)小時(shí);
◇采用80—20原理,每個(gè)工作日中80%的業(yè)務(wù)在20%的時(shí)間內完成,即每天80%的業(yè)務(wù)在1.6小時(shí)內完成;
測試壓力的估算結果:
去年全年處理業(yè)務(wù)約100萬(wàn)筆,其中15%的業(yè)務(wù)處理每筆業(yè)務(wù)需對應用服務(wù)器提交7次請求;70%的業(yè)務(wù)處理每筆業(yè)務(wù)需對應用服務(wù)器提交5次請求;其余15%的業(yè)務(wù)每筆業(yè)務(wù)向應用服務(wù)器提交3次請求。根據以往統計結果,每年的業(yè)務(wù)增量為15%,考慮到今后三年業(yè)務(wù)發(fā)展的需
要,測試需按現有業(yè)務(wù)量的2倍進(jìn)行。
每年總的請求數量為:(100*15%*7+100*70%*5+100*15%*3)*2=300萬(wàn)次/年。
每天的請求數量為:300/160=1.875萬(wàn)次/天。
每秒的請求數量為:(18750*80%)/(8*20%*3600)=2.60次/秒。
正常情況下,應用服務(wù)器處理請求的能力應達到:3次/秒。
3.2測試環(huán)境準備
3.2.1基本硬件及軟件環(huán)境的準備
1)網(wǎng)絡(luò )環(huán)境:公司內部的以太網(wǎng),與服務(wù)器的連接速率為100M,與客戶(hù)端的連接速率為10/100M自適應。
2)使用兩臺IBM XSeries250(1G內存)PC Server作Microsoft Cluster,安裝系統軟件
Windows 2000 Advance Server及Microsoft Cluster Server(MSCS)。
3)數據庫管理系統的安裝及配置:在測試用的IBM XSeries服務(wù)器上安裝Oracle8.1.6,數據 庫采用Oracle
Fail Safe(ofs)的Active/Passive配置。 安裝數據庫管理系統及支撐軟件(包括VisiBroker和BDE
Administrator)。
4)安裝被測的應用服務(wù)器程序。
5)客戶(hù)端的PC機:10臺(PⅢ600/128M RAM)。
3.2.2系統客戶(hù)端測試程序的編寫(xiě)系統客戶(hù)端測試程序使用Delphi編寫(xiě),要求測試程序實(shí)現如下功能:
1)模擬一個(gè)主要的向應用服務(wù)器發(fā)送請求并接收響應信息的功能。要求交替模擬兩種情況:第一種,發(fā)送的請求至少包括10個(gè)參數,參數類(lèi)型涵蓋字符、日期、數字種類(lèi)型;接收的
響應信息不少于1個(gè)參數;第二種,發(fā)送的請求不少于1個(gè)參數;接收的響應信息至少包括10個(gè)參數,參數類(lèi)型涵蓋字符、日期、數字種類(lèi)型。
2)必須能夠通過(guò)參數設定在每臺PC機上運行的客戶(hù)端測試程序個(gè)數、請求的時(shí)間間隔(單位:毫秒)、運行時(shí)間(單位:小時(shí))。
3)在數據庫中建立測試記錄表,生成測試記錄,向數據庫寫(xiě)入測試記錄的功能不通過(guò)被測的應用服務(wù)器實(shí)現。日志內容包括:發(fā)送測試請求的機器名、客戶(hù)端測試程序序號、發(fā)出請求時(shí)間、收到響應時(shí)間、處理是否成功。表名:TEST_LOG,字段名:MACHINE、ID、START_TIME、END_TIME、FLAG。
3.2.3系統本底數據的準備
為考察系統運行一段時(shí)間后系統的響應性能,參照實(shí)際運行情況及發(fā)展進(jìn)行系統的本底數據準備。業(yè)務(wù)處理中涉及到的業(yè)務(wù)表中都要求按設計規模進(jìn)行本底數據的準備。要求準備的數據記錄的有效性符合系統要求,數據有效性的具體要求參見(jiàn)數據庫設計及系統設計文檔。
3.3破壞性測試
按照設計連接的客戶(hù)端連接數量進(jìn)行測試,把應用服務(wù)器處理請求的設計頻度增加1-10倍,分別測試出現錯誤的狀態(tài)和和出現錯誤的比率,考察是否出現不可恢復錯誤,系統設計要考
慮出現嚴重錯誤情況下負荷減輕錯誤自動(dòng)恢復的實(shí)現方法。
計劃時(shí)間:2天;這個(gè)時(shí)間包括破壞性的修復和自動(dòng)恢復的實(shí)現需要的時(shí)間。
在測試過(guò)程中每10分鐘記錄一次IBM Xseries PC
Server的內存及CPU使用情況,包括被測程序的內存占用百分比、數據庫管理系統的內存占用百分比、操作系統的內存占用百分比。
3.4強度穩定性測試
選擇一種負荷比設計負荷重的情況(應用服務(wù)器處理請求的頻度為應用服務(wù)器處理請求的 設計頻度的1.5倍),進(jìn)行24小時(shí)穩定性測試。
3.5測試方法和工具
黑盒測試
測試工具:無(wú)外購的測試工具,自己編制的測試工具。
3.6測試時(shí)間計劃
3.6.1環(huán)境準備:2天。
其中:基本硬件、軟件環(huán)境及系統本底數據的準備:1天,
系統客戶(hù)端測試程序的編寫(xiě)及測試:1天。
3.6.2破環(huán)性測試:2天。
3.6.3強度穩定性測試:1天。
3.7測試中的問(wèn)題及處理
3.7.1暫停標準和再啟動(dòng)要求
暫停標準:被測試軟件在強度穩定性測試中頻繁出現異常(每小時(shí)出現1次以上)時(shí)。用戶(hù)或公司要求暫停測試時(shí)。
再啟動(dòng)要求:通過(guò)調試后,預計被測試軟件的可靠性有所提高時(shí),可再次啟動(dòng)測試。
3.7.2不可預見(jiàn)問(wèn)題
不可預見(jiàn)問(wèn)題包括:
◇測試環(huán)境被破壞而導致測試無(wú)法進(jìn)行;
◇當出現上述不可預見(jiàn)問(wèn)題時(shí),測試終止,就已完成的測試內容編制測試總結報告,并在報告中說(shuō)明測試終止的原因。
3.8測試報告 2002.06.21
測試總結報告提交日期:2002.06.21。
3.8.1應生成的測試文件
測試記錄(測試負責人和參與測試的人員簽字);
測試總結報告。
3.8.2測試總結報告中必須包含的內容
被測試軟件名稱(chēng)、測試項、測試環(huán)境;
被測試軟件的壓力測試結論:響應時(shí)間、最大/最小并發(fā)數、失敗的次數、正常連續運行的最長(cháng)/最短時(shí)間,并發(fā)數與失敗的關(guān)系。
4、人員和職責
4.1職責
測試工程師:負責編寫(xiě)測試計劃,組織測試,對測試過(guò)程進(jìn)行記錄,收集、整理測試記錄數據,對測試結果進(jìn)行分析,編寫(xiě)測試總結報告。
軟件工程師:負責編寫(xiě)、調試客戶(hù)端測試軟件;數據庫管理系統的安裝、ofs配置及系統的本底數據準備。
系統工程師:負責測試用的硬件維護及操作系統安裝、MSCS配置。
總工程師:負責對測試計劃及測試總結報告進(jìn)行批準。
用戶(hù):必要時(shí)可參加測試,并提出具體的測試要求;可要求暫停測試。
4.2人員和訓練要求
本次測試無(wú)特別的人員及培訓要求。
5、批準
本測試計劃必須經(jīng)過(guò)總工程師批準后才能開(kāi)始實(shí)施。
聯(lián)系客服