6.1 介面與路徑測試
6.2 功能測試
6.3 健壯性測試
6.4 效能測試
6.5 使用者介面測試
6.6 資訊保安測試
6.7 壓力測試
6.8 可靠性測試
6.9 安裝/反安裝測試
6.1 介面與路徑測試
u資料一般通過介面輸入和輸出,所以介面測試是白盒測試的第一步。每個介面可能有多個輸入引數,每個引數有「典型值」、「邊界值」、「異常值」之分,所以輸入的組合數可能並不少。根據介面的定義,可以推斷某種輸入應當產生什麼樣的輸出。輸出包括函式的返回值和輸出引數。如果實際輸出與期望的輸出不一致,那麼說明程式有錯誤。白盒方式的介面測試和黑盒方式的功能測試,其方法十分相似。
u乙個函式體內的語句可能只有十幾條,但邏輯路徑可能有成千上萬條。想遍歷測試幾乎是不可能的,不測試或者胡亂找幾條路徑測試卻又不行。
u對於非嚴格系統而言,在分析路徑方面化費很多精力是不值得的。我認為在構造介面測試的同時已經建立了測試路徑。因為每一種輸入將產生唯一的輸出,輸入與輸出之間的路徑也是唯一的。由於介面測試中的輸入是有代表性的,因此相應的路徑也具有代表性,不用得著費煞苦心地去找測試路徑。
u路徑測試的檢查表
–資料型別、變數值、邏輯判斷、迴圈、記憶體管理、檔案i/o、錯誤處理
u由於介面測試是列舉的,有可能漏掉某些狀況,導致一些重要的路徑沒有被測試。預防措施有:
–觀察是否有程式語句從來沒有被執行過。如果發生在這種情況,要麼是程式有錯誤,存在無用的**;要麼是介面測試不充分,漏掉了一些路徑。
– 6.2 功能測試
u功能測試的基本方法是構造一些合理輸入(在需求範圍之內),檢查輸出是否與期望的相同。如果兩者不一致,即表明功能有誤。也有例外的情況,如《需求規格說明書》中的某個功能寫錯了,而實際上軟體的功能卻是正確的,這時要更改的是《需求規格說明書》。
u功能測試看起來比較簡單,只要看得懂《需求規格說明書》,誰都會做。難點在於如何構造有效的輸入。由於輸入空間通常是無限的,窮舉測試顯然行不通。那麼隨便輸入一些東西,碰運氣行不行?
u功能測試有兩種比較好的測試方法:等價劃分法和邊界值分析法。
–等價劃分是指把輸入空間劃分為幾個「等價區間」,在每個「等價區間」中只需要測試乙個典型值就可以了。等價劃分法**於人們的直覺與經驗,可令測試事半功倍。
–「缺陷遺漏在角落裡,聚集在邊界上」。邊界值測試法是對等價劃分法的補充。如果a和b是輸入空間的邊界值,那麼除了典型值外還要用a和b作為測試用例。
– 6.3 健壯性測試
u健壯性是指在異常情況下,軟體還能正常執行的能力。健壯性有兩層含義:一是容錯能力,二是恢復能力。
u容錯性測試通常構造一些不合理的輸入來引誘軟體出錯,例如:
–(1)輸入錯誤的資料型別。如「猴」年「馬」月。
–(2)輸入定義域之外的數值。如上海人常說的「十三點」
u粗暴一些方式俗稱「大猩猩」測試法。除了不能拳打腳踢嘴咬外,什麼招術都可以使出來。例如在測試客戶機-伺服器模式的軟體時,把網路線拔掉,造成通訊異常中斷。
u恢復測試重點考察一下幾項:
–(1)系統能否重新執行;
–(2)有無重要的資料丟失;
–(3)是否毀壞了其它相關的軟體硬體。
6.4 效能測試
u效能測試即測試軟體處理事務的速度,一是為了檢驗效能是否符合需求,二是為了得到某些效能資料供人們參考(例如用於宣傳)。
u有時人們關心測試的「絕對值」,如資料送輸速率是每秒多少位元。有時人們關心測試的「相對值」,如某個軟體比另乙個軟體快多少倍。
u在獲取測試的「絕對值」時,我們要充分考慮並記錄執行環境對測試的影響。例如網路環境、計算機主頻,匯流排結構和外部裝置都可能影響軟體的執行速度。
u效能測試的一些注意事項:
–不要試圖讓人拿著鐘錶去測時間,應當編寫一段程式用於計算時間以及相關資料。
–應當測試軟體在標準配置和最低配置下的效能。
–為了排除干擾,應當關閉那些消耗記憶體、占用cpu的其它應用軟體(如防毒軟體)。
–不同的輸入情況會得到不同的效能資料,應當分檔記錄。例如傳輸檔案的容量從100k到1m可以分成若干等級。
– 6.5 使用者介面測試
u絕大多數軟體擁有圖形使用者介面。圖形使用者介面的測試重點是正確性、易用性和視覺效果。在評價易用性和視覺效果時,主觀性非常強,應當考慮多個人的觀點。
u使用者介面測試用例的參考模板:
6.6 資訊保安測試
u資訊安全性(security)是指防止系統被非法入侵的能力,既屬於技術問題又屬於管理問題。
u資訊安全性測試有如下步驟:
–(1)為非法入侵設立目標,例如「某個檔案」或「更改資料庫記錄」等。
–(2)邀請(或懸賞)一些人扮演黑客,讓他們想盡辦法入侵系統,實現「目標」。
–(3)如果有人成功了,請他詳述入侵的過程。別忘了給予獎勵。
u資訊安全性測試用例的參考模板
6.7 壓力測試
u壓力測試也叫負荷測試,即獲取系統能正常執行的極限狀態。了解「極限」是很有價值的,例如潛艇下潛極限深度…。
u壓力測試的主要任務是:構造正確的輸入,使勁折騰系統卻讓它剛好不癱瘓。
u壓力測試的乙個變種是敏感測試。在某種情況下,微小的輸入變動會導致系統的表現(如效能)發生急劇的變化。敏感測試目的是發現什麼樣的輸入可能會引發不穩定現象。
u壓力測試用例的參考模板
6.8 可靠性測試
u可靠性是指在一定的環境下、在給定的時間內、系統不發生故障的概率。由於軟體不像硬體那樣可以「加速老化」,按此定義,軟體可靠性測試可能會花費很長時間。
u 6.9 安裝 / 反安裝測試
u安裝 / 反安裝測試的目的:避免「大風浪都挺過來了,卻在陰溝裡翻了船」
u目前市面上有非常流行的、專門製作安裝/反安裝程式的一些工具,如install shelled。製作安裝/反安裝程式不再是件難事,關鍵是不要麻痺大意。主要測試工作:
–(1)至少在標準配置和最低配置兩種環境下測試;
–(2)如果有安裝介面,應當嘗試各種選項,如選擇「全部」、「部分」、「公升級」等。
比較實用的辦法是,讓使用者使用該系統,記錄每一次發生故障的時刻。計算出相鄰故障的時間間隔,注意要去掉非工作時間。這樣我們可以方便地統計出不發生故障的「最小時間間隔」、「最大時間間隔」和「平均時間間隔」。其中「平均時間間隔」會讓人們大體了解到系統「可靠」的程度。
由於環境的波動,同一種輸入情況在不同的時間可能得到不同的效能資料,可以取其平均值。
例如測試函式f(x)=根號(x) 。憑直覺,等價區間應是(0, 1)和(1, +∞)。可取典型值x=0.5以及x=2.0進行「等價劃分」測試。再取 x=0以及x=1進行「邊界值」測試。
要特別留意函式體內的錯誤處理程式塊(如果存在的話),這是最易被人疏忽的路徑,隱患最多。
軟體系統的主要測試內容及技術
6.1 介面與路徑測試 6.2 功能測試 6.3 健壯性測試 6.4 效能測試 6.5 使用者介面測試 6.6 資訊保安測試 6.7 壓力測試 6.8 可靠性測試 6.9 安裝 反安裝測試 6.1 介面與路徑測試 u資料一般通過介面輸入和輸出,所以介面測試是白盒測試的第一步。每個介面可能有多個輸入引...
測試計畫的範圍 系統測試計畫主要包含的內容及作用
一 內容 測試計畫用來描述所要完成的測試,包括測試背景 測試目的 風險分析 所需資源 任務安排和進度 測試開始 掛起及結束的標準等。引言 目的 背景 範圍 定義 參考資料 測試內容 測試功能清單 測試規則 進入準則,暫停 退出準則 測試方法 測試手段 測試要點 測試工具 測試環境 硬體環境 軟體環境...
App UI測試的主要內容
什麼是ui?ui即user inte ce 使用者介面 的簡稱。ui設計則是指對軟體的人機互動 操作邏輯 介面美觀的整體設計。好的ui設計不僅是讓軟體變得有個性有品味,還要讓軟體的操作變得舒適 簡單 自由 充分體現軟體的定位和特點。ui設計出發點 ui介面設計要和使用者研究緊密結合,是乙個不斷為終端...