目前軟體效能測試是發現軟體效能問題最有效的手段,而完備有效的效能測試是最關鍵的,在本節中我們將從流程和技術的角度解析如何構建乙個高效的效能測試模型。
1.2.1 效能測試在軟體測試的週期位置
首先,軟體效能測試屬於軟體測試範疇,存在於軟體測試的生命週期中。乙個軟體的生產過程通常遵循v型圖,如圖1-3所示。
圖1-3 軟體開發-測試v型圖
在通常的軟體生產週期中,先由使用者提出使用者需求或經系統分析核定以後提出系統需求,開發人員再經過需求分析提出軟體需求規格說明,進行概要設計,提出概要設計說明,進行詳細設計,提出詳細設計說明,最後就是對每個模組進行編碼。到測試階段,測試按照開發過程逐階段進行驗證並分步實施,體現了從區域性到整體、從低層到高層逐層驗證系統的思想。對應軟體開發過程,軟體測試步驟分為**審查、單元測試、整合測試、系統測試。
而效能測試就屬於軟體系統級測試,其最終目的是驗證使用者的效能需求是否達到,在這個目標下,效能測試還常常用來做:
(1)識別系統瓶頸和產生瓶頸的原因;
(2)最優化和調整平台的配置(包括硬體和軟體)來達到最高的效能;
(3)判斷乙個新的模組是否對整個系統的效能有影響。
系統瓶頸:
瓶頸本來是指玻璃瓶中直徑較小並影響流水速度的一段,用它來比喻軟體系統中出現效能問題的節點是很形象的,比如乙個典型的分布式系統架構如圖1-4所示。
圖1-4 軟體系統壓力流**
如果把軟體系統看做是交通系統,那麼網路就是一條條大道,客戶端、防火牆、負載均衡器、web伺服器、應用伺服器(中介軟體)、資料庫等各個系統節點就是交通要塞,客戶的請求和資料就像在道路上行駛的車輛,如果在某處發生堵車,那麼整個交通系統都會不暢。在這個時候,我們就要分析是**出了問題,是道路不夠寬,還是某處立交橋設計不合理而引起堵塞等。找到問題的關鍵點,那麼此關鍵點就是本系統的瓶頸。軟體系統也是如此,我們做效能測試的大部分工作都是為了尋找這個瓶頸到底在何處。
需要注意的是,軟體的效能瓶頸可能不止一處。
作為軟體測試的一種,軟體測試的規則同樣適用於效能測試中:
(1)確定預期輸出是測試必不可少的一部分
如果事先無法肯定預期的測試結果,往往會把看起來似是而非的東西當作正確結果。必須提倡用事先精確對應的輸入和輸出結果來詳細檢查所有的輸出。對於效能測試來說,預期輸出就是使用者的效能需求,乙份明確的效能需求是成功效能測試的先決條件。
(2)必須徹底檢查每乙個測試結果
事實上,在最終發現的錯誤,有相當一部分在前面的測試中已經暴露出來了,然而由於人們未能細心檢查先前的測試結果而遺漏了。
繼續:
軟體測試的重要性
最近接手乙個新的任務 在公司產品的現有基礎上做修補.面臨的主要困難有 1.專案較大,vs的解決方案裡18個專案.雖然我只須維護其中的一兩個專案 3.某些 實現較複雜,如執行緒通訊,wmi等.這些函式的相互依賴,也就是平時說的藕合度高,現在我要將它分離,分到單獨的專案裡.但是這樣又要求我對這些複雜的函...
軟體測試的重要性
最近接手乙個新的任務 在公司產品的現有基礎上做修補.面臨的主要困難有 1.專案較大,vs的解決方案裡18個專案.雖然我只須維護其中的一兩個專案 3.某些 實現較複雜,如執行緒通訊,wmi等.這些函式的相互依賴,也就是平時說的藕合度高,現在我要將它分離,分到單獨的專案裡.但是這樣又要求我對這些複雜的函...
軟體測試的重要性
軟體危機的出現主要表現在 a.由於缺乏大型軟體開發經驗和軟體開發資料積累,開發工作計畫很難制定 b.開發早期需求分析不夠明確,造成開發後期矛盾集中暴露 c.不遵循開發規範,開發文件不完整,軟體難以維護 d.缺乏嚴密有效的軟體質量檢測手段,交付給使用者的軟體質量差。軟體危機的後果 a.軟體質量不高,很...