如何获取性能需求
為什么80%的碼農都做不了架構師?>>> ??
本文檔是為了給需要了解如何填寫性能需求或需要引導客戶填寫性能需求項目組成員參考性文檔(為公司內部人員)。1. 系統的性能
1)概念
系統的性能是一個很大的概念,覆蓋面非常廣泛,對一個軟件系統而言,包括:執行效率、資源占用、系統穩定性、安全性、兼容性、可靠性、可擴展性。
2)主要指標
響應時間、點擊數、吞吐量、并發用戶數、資源利用率、每秒連接數
3)不同視角的性能
* 用戶角度
響應時間(最關心的指標)2/5/10原則,過長的時間等待讓客戶煩燥不安
系統的穩定性 HTTP500、數據庫崩潰、應用服務器崩潰
* 系統角度
網絡延遲、數據延遲
系統資源的使用情況 硬件配備情況 軟件的配置情況(應用服務器、數據庫、系統)
* 開發角度
代碼實現(算法等)
數據庫實現(數據模型設計、語句的實現方式等)
2. 我們的目標
我們的目標是要開發出符合用戶的應用系統,其中包括性能的需求并且通過測試及其他驗證等手段驗證系統達到用戶的要求。首先要了解客戶,向客戶了解應用系統運行目標硬件配置、應用環境及網絡環境等。了解系統業務邏輯(可能有多種業務)及處理業務量時間分布圖。然后由性能測試人 員分析以上的數據制定測試策略及測試方法。例如分析出在某月的某一天10:00-11:00是系統處理業務高峰,平均處理50000個A業務量,那么性能 測試人員需要根據這個數據設計一個處理業務A測試場景,驗證(系統在目標硬件環境)在1個小時內至少能成功處理50000個A業務量。
3. 用戶類型
* 專業型:熟悉開發應用系統,具有深厚的計算機功底,并且非常清楚系統處理業務量的分布,即能明確的提出具體的性能需求。很遺憾,一般很難遇到這么“牛人”的客戶。
* 普通型:了解開發的應用系統,具有一般系統管理能力。不了解性能指標,不能明確提出具體性能需求。需求項目經理或需求人員引導客戶明確性能需求,甚至需要我們開發方為客戶制定符合要求的性能需求。
4. 填寫性能需求調研表
專業型客戶很容易向我們提供明確的性能需求,而普通型客戶一般最關注的是響應時間(遵循2/5/10原則)、必須支持多少在線用戶、應用服務的穩定性(如運行1周或1月服務器后應用服務還能正常提供服務等)。
為了性能測試更真實的接近系統實現的應用,性能測試人員還必須獲取更為詳盡的信息。可以從以下三個方面獲取:
* 向項目經理調研信息:如應用系統目標運行硬件配置(此硬件設備是否運行其他服務)、應用環境(是否有其它的服務共用服務)、網絡環境、數據庫規模等。
* 向業務經理調研信息:業務量分布圖及業務量增長分布圖、關鍵業務量(即場景)
* 向技術經理調研信息:關鍵場景交易路徑及對數據庫操作的動作(見模板)
根據模板項目經理向客戶調研時一般都能很方便獲取必要的信息(即使用戶不能直接明確提出性能需求),項目組也能很容易制定出符合用戶的性能需求。
接下來的問題是量化性能需求、如何制定性能測試及性能調優……
轉載于:https://my.oschina.net/yygh/blog/496513
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: 【8-23】MFC学习笔记 01
- 下一篇: Bash基础(2) 通配符 组合键 数据