軟體測試(5)——系統測試
文章目錄
系統測試
將整合測試後的軟體,作為計算機系統的一個部分,與計算機硬體、某些支撐軟體、資料和人員等系統元素結合起來,在實際執行環境下對計算機系統進行一系列的嚴格有效的測試來發現軟體的潛在問題,保證系統的執行。
入口標準
- 所有的單元測試和整合測試成功完成
- 軟體的生成(build)過程沒有任何錯誤
- 軟體版本經過了冒煙測試(版本驗證測試)
- 配套文件完成
- 缺陷已經修正並且準備重新測試
- 原始碼已經儲存在版本控制系統
出口標準
- 已經執行了用來確定系統滿足指定的功能性和非功能性需求的測試過程
- 測試執行過程中沒有出現任何重大錯誤
- 高優先順序的問題已經被修正,並且用迴歸測試進行了驗證
- 軟體釋出時可能存在已知的低優先順序的缺陷(+若干未知缺陷)
- 一些度量也可以作為出口標準的一部分
- 缺陷數量
- 缺陷走勢
系統測試= 功能測試+ 非功能測試
功能測試 | 非功能測試 | |
---|---|---|
作用/關注點 | 驗證產品功能和特性 | 驗證產品質量因素 |
範圍 | 所有測試階段 | 系統測試 |
用例失敗原因 | 程式碼缺陷 | 體系結構、設計和程式碼缺陷 |
預備知識 | 產品和領域 | 產品、領域、設計、體系結構、分析技能 |
系統測試是既測試產品功能也測試產品非功能的唯一測試階段
功能性測試
Alpha測試
- 定義:在開發環境下進行的受控測試,儘量模擬使用者的使用場景
- 特點:由開發人員或獨立測試人員、使用者完成,但開發者會在場(例如,開發完成後,在開發機上展開測試)
Beta測試
- 定義:在實際使用環境下進行測試(可以把產品交給客戶在應用環境下實測,收集反饋意見)
- 特點:開發者通常不在現場
在Alpha測試達到一定程度後進行Beta測試,Beta測試時產品一般相對較為成熟,文件等支援齊備,隨時待發布
非功能性測試
包括內容有:
- 效能測試
- 相容性測試
- 可用性測試
- 安全性測試
- 可靠性測試
- 國際化測試
非功能性缺陷常常與整體設計相關,應在需求階段就關注非功能性需求
效能測試
通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行評估。包括客戶端效能、網路上效能和伺服器端效能
客戶端效能
併發效能測試
-
負載測試
確定各種工作負載下系統的效能,測試當負載逐漸增加時,系統組成部分的相應指標項,如吞吐量、響應時間、CPU負載、記憶體使用等,來評估系統的效能表現。(能接受情況下的效能)
-
壓力測試
通過確定一個系統的瓶頸或者不能接受的效能點,來獲得系統能提供的最大服務級別的測試
-
目的
- 評價系統的當前效能
- 預測系統的未來效能
- 尋找到效能瓶頸,進行優化和調整
疲勞強度測試
採用系統穩定執行情況下能夠支援的最大併發使用者數,持續執行一段時間業務,通過綜合分析事務執行指標和資源監控指標來確定系統處理最大工作量的效能,分析系統的穩定性。
如出現錯誤導致測試不能成功執行,則及時調整測試指標,例如降低使用者數、縮短測試周期等。
大資料量測試
針對某些系統儲存、傳輸、統計查詢等業務進行大資料量的獨立資料量測試。或與壓力測試、負載測試、疲勞測試相結合的綜合資料量測試(資料庫效能測試)
網路上效能
- 網路應用效能監控
系統試執行之後,需要及時準確地瞭解網路上正在發生的事情:- 什麼應用在訪問網路
- 多少PC正在訪問LAN或WAN
- 哪些應用程式佔用大量頻寬
- 哪些使用者產生了最大的網路流量
- 哪些應用程式導致系統瓶頸或資源競爭
- …
- 網路應用效能分析
- 分析網路頻寬、延遲、負載(併發使用者數)和埠的變化是如何影響使用者的響應時間
- 定位效能問題的根源是在客戶端、伺服器、應用程式還是網路
- …
- 網路預測
- 考慮到系統未來發展的擴充套件性,預測網路流量的變化、網路結構的變化對使用者系統的影響非常重要
伺服器上效能
對於應用在伺服器上效能的測試可以採用工具監控,也可以使用系統本身的監控命令。
相容性測試
檢查軟體在一個特定的硬體、軟體、作業系統、網路環境下能否正常執行,檢查軟體之間能否正確地互動和共享資訊,檢查軟體版本之間的相容性問題。
三類基本測試
- 平臺、裝置相容性:作業系統、硬體
- 交叉相容性:不同軟體間相容
- 版本相容性:相容不同版本的資料、功能、配置等
可用性測試
是否可用,是否好用
介面漂亮≠可用性好
- 直觀性
- 潔淨、不唐突、不擁擠
- 組織與佈局合理
- 一致性
- 介面佈局一致
- 快捷鍵和選單選項一致
- 術語和命令命名一致
- 可理解性
- 文字說明易理解
- 靈活性
- 輸入輸出方式靈活多樣
- 介面靈活
- 易獲得性
- 產品對於行動不便的使用者也可使用
- 實用性
- 舒適性
- 恰當:介面風格與所做工作相符
- 錯誤處理:出錯前提示,出錯後可恢復
- 效能:該慢則慢,該快則快
- 易操作:避免反覆點選,長距離移動
安全性測試
- 控制安全性
- 訪問控制是否可能被繞過
- 是否對輸入進行了充分的驗證
- 資料安全性
- 保密性:資訊不會洩露給非授權使用者、實體或者程序
- 完整性:資訊在儲存/傳輸過程中不被修改、破壞或丟失
- 可用性:當需要時應能存取所需的資訊
- 不可否認性
- 可控性:對資訊的傳播及內容具有控制能力
測試方法
- 功能測試
- 漏洞掃描
- 漏洞掃描
- 模擬攻擊試驗
- 偵聽技術(Sniffer)
- 錯誤注入
- Fuzz Testing
- 靜態程式碼審查
國際化測試
確保軟體支援不同國家語言和文化的測試手段
- 語言和習俗的訊息處理
- 日期格式、貨幣格式
- 對話方塊等文字顯示區域的調整
- …
web應用測試
web應用特點:
- 層次複雜
- 平臺異構
- 內容豐富
對測試的影響
-
技術複雜
一個頁面包含多種程式設計技術
-
脆弱
隨時可能斷線
-
使用者多,效能要求高
併發行、實時性
-
安全性要求高
資訊共享多