本文檔是為了給需要了解如何填寫性能需求或需要引導客戶填寫性能需求項目組成員參考性文檔(為公司內(nèi)部人員)。
1. 系統(tǒng)的性能
1)概念
系統(tǒng)的性能是一個很大的概念,覆蓋面非常廣泛,對一個軟件系統(tǒng)而言,包括:執(zhí)行效率、資源占用、系統(tǒng)穩(wěn)定性、安全性、兼容性、可靠性、可擴展性。
2)主要指標
響應(yīng)時間、點擊數(shù)、吞吐量、并發(fā)用戶數(shù)、資源利用率、每秒連接數(shù)
3)不同視角的性能
* 用戶角度
響應(yīng)時間(最關(guān)心的指標)2/5/10原則,過長的時間等待讓客戶煩燥不安
系統(tǒng)的穩(wěn)定性 HTTP500、數(shù)據(jù)庫崩潰、應(yīng)用服務(wù)器崩潰
* 系統(tǒng)角度
網(wǎng)絡(luò)延遲、數(shù)據(jù)延遲
系統(tǒng)資源的使用情況 硬件配備情況 軟件的配置情況(應(yīng)用服務(wù)器、數(shù)據(jù)庫、系統(tǒng))
* 開發(fā)角度
代碼實現(xiàn)(算法等)
數(shù)據(jù)庫實現(xiàn)(數(shù)據(jù)模型設(shè)計、語句的實現(xiàn)方式等)
2. 我們的目標
我們的目標是要開發(fā)出符合用戶的應(yīng)用系統(tǒng),其中包括性能的需求并且通過測試及其他驗證等手段驗證系統(tǒng)達到用戶的要求。首先要了解客戶,向客戶了解應(yīng)用系統(tǒng)運行目標硬件配置、應(yīng)用環(huán)境及網(wǎng)絡(luò)環(huán)境等。了解系統(tǒng)業(yè)務(wù)邏輯(可能有多種業(yè)務(wù))及處理業(yè)務(wù)量時間分布圖。然后由性能測試人員分析以上的數(shù)據(jù)制定測試策略及測試方法。例如分析出在某月的某一天10:00-11:00是系統(tǒng)處理業(yè)務(wù)高峰,平均處理50000個A業(yè)務(wù)量,那么性能測試人員需要根據(jù)這個數(shù)據(jù)設(shè)計一個處理業(yè)務(wù)A測試場景,驗證(系統(tǒng)在目標硬件環(huán)境)在1個小時內(nèi)至少能成功處理50000個A業(yè)務(wù)量。
3. 用戶類型
* 專業(yè)型:熟悉開發(fā)應(yīng)用系統(tǒng),具有深厚的計算機功底,并且非常清楚系統(tǒng)處理業(yè)務(wù)量的分布,即能明確的提出具體的性能需求。很遺憾,一般很難遇到這么“牛人”的客戶。
* 普通型:了解開發(fā)的應(yīng)用系統(tǒng),具有一般系統(tǒng)管理能力。不了解性能指標,不能明確提出具體性能需求。需求項目經(jīng)理或需求人員引導客戶明確性能需求,甚至需要我們開發(fā)方為客戶制定符合要求的性能需求。
4. 填寫性能需求調(diào)研表
專業(yè)型客戶很容易向我們提供明確的性能需求,而普通型客戶一般最關(guān)注的是響應(yīng)時間(遵循2/5/10原則)、必須支持多少在線用戶、應(yīng)用服務(wù)的穩(wěn)定性(如運行1周或1月服務(wù)器后應(yīng)用服務(wù)還能正常提供服務(wù)等)。
為了性能測試更真實的接近系統(tǒng)實現(xiàn)的應(yīng)用,性能測試人員還必須獲取更為詳盡的信息。可以從以下三個方面獲?。?/P>
* 向項目經(jīng)理調(diào)研信息:如應(yīng)用系統(tǒng)目標運行硬件配置(此硬件設(shè)備是否運行其他服務(wù))、應(yīng)用環(huán)境(是否有其它的服務(wù)共用服務(wù))、網(wǎng)絡(luò)環(huán)境、數(shù)據(jù)庫規(guī)模等。
* 向業(yè)務(wù)經(jīng)理調(diào)研信息:業(yè)務(wù)量分布圖及業(yè)務(wù)量增長分布圖、關(guān)鍵業(yè)務(wù)量(即場景)
* 向技術(shù)經(jīng)理調(diào)研信息:關(guān)鍵場景交易路徑及對數(shù)據(jù)庫操作的動作(見模板)
根據(jù)模板項目經(jīng)理向客戶調(diào)研時一般都能很方便獲取必要的信息
(即使用戶不能直接明確提出性能需求),項目組也能很容易制定出符合用戶的性能需求。
接下來的問題是量化性能需求、如何制定性能測試及性能調(diào)優(yōu)……