軟體測試的藝術
文章目錄
- 軟體測試的藝術
-
- 2.軟體測試的心理學和經濟學
-
- 軟體測試的心理學
- 軟體測試的經濟學
- 軟體測試的原則
- 3.代碼檢查、走查與評審
- 4.測試用例的設計
-
- 白盒測試
- 黑盒測試
- 錯誤猜測
- 6.更進階别的測試
-
- 軟體産品開發周期
- 功能測試
- 系統測試
- 驗收測試
- 安裝測試
- 測試計劃
- 5.子產品(單元)測試
-
- 測試用例設計
- 将子產品組裝成工作程式的方式
- 增量測試
- 執行測試
- 7.可用性(或使用者體驗)測試
-
- 可用性測試流程
- 8.調試
-
- 調試的步驟
- 調試方法
- 9.靈活開發模式下的測試
-
- 靈活測試
- 極限程式設計與測試
- 10.網際網路應用測試
-
- 網際網路應用系統
- 11.移動應用測試
-
- 面臨的挑戰
2.軟體測試的心理學和經濟學
軟體測試的心理學
- 軟體測試是為發現錯誤而執行程式的過程
軟體測試的經濟學
- 黑盒測試(資料驅動的測試)
- 窮舉輸入測試
- 白盒測試(邏輯驅動的測試)
- 窮舉路徑測試
軟體測試的原則
- 測試用例中一個必需部分是對于預期輸出或結果的定義
- 程式員應當避免測試自己編寫的軟體
- 編寫軟體的組織不應當測試自己編寫的軟體
- 應當徹底檢查每個測試的執行結果
- 測試用例的編寫不僅應當根據有效和預期的輸入情況,而且也應當根據無效的輸入情況和未預料到的輸入情況
- 檢查程式是否“未做其應該做的”僅是測試的一半,測試的另一半是檢查程式是否“做了其不應該做的”
- 應避免測試用例用後即棄,除非軟體本身就是一個一次性的軟體
- 計劃測試工作時不應默許假定不會發生錯誤
- 程式某部分存在更多錯誤的可能性,與該部分已發生錯誤的數量成正比
- 軟體測試是一項極富創造性、極具智力挑戰性的工作
3.代碼檢查、走查與評審
代碼檢查
代碼走查
桌面檢查
同行評審
4.測試用例的設計
白盒測試
- 語句覆寫:程式中的每個語句至少能被執行一次
- 判定覆寫:程式中每個判定至少有一次為真值,有一次為假值,使得程式中的每個分支至少執行一次
- 條件覆寫:程式各判定中的每個條件獲得各種可能的取值至少滿足一次
- 判定/條件覆寫:程式中每個判定至少有一次為真值,有一次為假值,使得程式中的每個分支至少執行一次,且使得各判定中的每個條件獲得各種可能的取值至少滿足一次
- 多重條件覆寫:判定中的每種組合都至少被執行一次
黑盒測試
- 等價劃分
- 确定等價類
- 有效等價類
- 無效等價類
- 生成測試用例
- 測試用例盡可能多的覆寫有效等價類,單個測試用例覆寫無效等價類
- 确定等價類
- 邊界值分析
- 因果圖
- 限制E表示其必須總為真,而二者最多隻有一個為1
- 限制I表示其為真時,三者中至少有一個為1
- 限制0表示有且隻有一個必須為1
- 限制R表示如果一個為1,另一個也必須為1
- 限制M表示如果一個為0,則另一個強制為0
錯誤猜測
6.更進階别的測試
軟體産品開發周期
- 1.将軟體最終使用者的要求轉換為一系列書面的需求
- 2.通過評估可行性和成本、消除相抵觸的使用者需求、建立優先級和平衡關系,将使用者需求轉換為具體的目标
- 3.将上述目标轉換為一個準确的産品規格說明,将産品視為一個黑盒,僅考慮其接口以及與最終使用者的互動。該規格說明被稱為”外部規格說明“
- 4.如果該産品是一個系統,那麼下一步驟就是系統設計。該步驟将系統分割為單獨的程式、部件或子系統,并定義它們的接口
- 5.通過定義每個子產品的功能、子產品的層次結構以及子產品間的接口,來設計程式或程式集合的結構
- 6.設計一份準确的規格說明,定義每個子產品的接口與功能
- 7.經過一個或更多的子步驟,将子產品接口規格說明轉換為每個子產品的源代碼算法
功能測試
- 一個試圖發現程式與其外部規格說明之間存在不一緻的過程
系統測試
- 将系統或程式與其初始目标進行比較
驗收測試
安裝測試
測試計劃
- 一個良好的測試計劃應該包括目标、結束準則、進度、責任、測試用例庫及标準、工具、計算機時間、硬體配置、內建、跟蹤步驟、調試步驟、回歸測試
5.子產品(單元)測試
測試用例設計
- 子產品的規格說明
- 子產品的源代碼
将子產品組裝成工作程式的方式
- 增量測試(內建)
- 先将下一步要測試的子產品組裝到測試完成的子產品集合中,然後再進行測試
- 非增量測試(“大爆炸”測試)
- 先獨立的測試每個子產品,然後再将這些子產品組裝成完整的程式
增量測試
- 自頂向下測試
- 要成為合乎條件的下一個子產品,至少一個該子產品的從屬子產品(調用它的子產品)事先經過了測試
- 關鍵子產品(容易發生錯誤)、I/O子產品盡可能早地添加進來
- 自底向上測試
- 要成為合乎條件的下一個子產品,該子產品所有的從屬子產品(它調用的子產品)事先經過了測試
執行測試
- 子產品存在錯誤
- 預期結果不正确
7.可用性(或使用者體驗)測試
可用性測試流程
- 測試使用者的選擇
- 需要多少使用者進行測試
- 資料采集方法
- 發生思考
- 眼球追蹤
- 可用性調查問卷
- 判斷何時收工
8.調試
調試的步驟
- 确定程式中可疑錯誤的準确性質和位置
- 修改錯誤
調試方法
- 蠻力法調試
- 歸納法調試
- 演繹法調試
- 回溯法調試
- 測試法調試
9.靈活開發模式下的測試
靈活測試
極限程式設計與測試
- 極限程式設計(XP)
- 極限測試(連續測試)
- 極限單元測試
- 驗收測試
10.網際網路應用測試
網際網路應用系統
- 表示層
- 提供了GUI
- 業務邏輯層
- 模拟業務流程,比如使用者身份驗證、事務處理
- 資料通路層
- 内容
- 存儲了供應用系統使用的或從最終使用者收集來的資料
- 測試
- 響應時間
- 資料完整性
- 在資料存儲的方式中發現問題
- 容錯性和可恢複性
- 最大化MTBF(平均故障間隔時間),最小化MTTR(平均恢複前時間)
- 内容
11.移動應用測試
面臨的挑戰
- 移動裝置多樣性
- 營運網絡基礎設施
- 腳本程式設計
- 可用性測試
XMind - Trial Version