軟件測試概述、結構化測試


一、軟件測試的目的
是在最小的成本和最短的時間內,通過設計良好的測試規程和測試用例,系統地發現不同類別的錯誤。
 
二、軟件測試的基本原則
設計好的測試用例、不可能進行窮舉測試、盡早開展測試、重點測試、定期進行檢驗與修正測試用例,並增加新的測試用例、測試依賴於系統環境、測試用例應該包含合理和不合理的輸入條件。
 
測試過程模型
V模型特點:1、對應瀑布模型的變種(自下到上)線性關系
                     2、有局限性,在於不能體現“盡早地和不斷地進行軟件測試”的原則
                     3、僅僅把測試過程作為在需求分析、概要設計、詳細設計及編碼之后的一個階段,容易
                          使人理解為測試是軟件開發的最后的一個階段,主要是針對程序進行測試尋找誤,而
                          需求分析階段、設計階段隱藏的問題可能一直到后期的相應測試才被發現。
W模型特點:1、兩個”V模型“,開發與測試相結合
                      2、開發與測試保持一種線性的前后關系
H模型特點:1、可交叉進行
                     2、測試過程是一個獨立的過程
 
三、測試類型
測試類型可分為:單元測試、集成測試、系統測試、驗收測試、回歸測試
 
1、單元測試:主要檢測獨立的軟件單元,為了發現程序級別的錯誤
                        面向代碼設計與結構
 
2、集成測試:獨立的軟件單元(模塊)組合過程中所進行的測試。
                        面向詳細設計文檔
     結構化方法下的集成測試策略:BingBang策略、自頂向下策略、自底向上策略
     BingBang策略:所有模塊一次性集成為一個整體系統,后對各個模塊之間的接口工作進行測試
                    優點:在於測試之間所有的整合工作已經完成
                    缺點:在於整合過程較為費時,且集成過程中若引入新的錯誤則難以追溯
      自頂向下策略:先測試軟件模塊結構圖最頂端的模塊,后集成下一層的模塊再進行測試,直到所
                               有模塊全部組合並測試完。
      自底向上策略:先測試軟件最底層模塊,后集成上一層模塊並進行測試,逐步將所有模塊組合並
                                測試完畢。
       面向對象方法下的集成測試:主要有基於線程的策略和基於使用的策略。
       步驟:1)按照設計階段的說明畫出對象圖
                  2)開發端口輸入事件所驅動的類
                  3)開發與主類直接相關的類
                  4)將與主類直接相關聯的類集成
                  5)對新集成的模塊進行測試
                  6)從已集成的模塊中選一個新類作為下一步的集成類
3、系統測試:對應於概要設計和需求分析,進行系統測試以確保其功能的正確性,以及在不同運行  
                        環境配置下系統的可用性。
4、驗收測試:是一種以用戶為主的測試,由客戶判斷最終是否在可接受范圍之內,軟件開發人員和
                        質量保證小組也同時參與。
5、回歸測試:根本目標在於檢測新代碼的正確運行,並且不影響其他已運行正確的功能
(集成測試着重測試的是各個模塊之間接口運行情況,系統測試是將系統軟件作為整個計算機系統的一個元素)
 
四、測試方法
測試方法有不同 的標准:1)按是否需要執行被測試軟件,軟件測試可分為靜態測試、動態測試。
                                         2)按是否需要查看代碼,軟件測試可分為白盒測試、黑盒測試、灰盒測試
                                         3)按測試執行時是否需要人工干預,軟件測試可分為自動測試、人工測試
1、靜態測試(代碼復查):是在不要執行所測試程序的情況下,對代碼、需求分析和設計文檔等 進
                                             行缺陷查找。
                           主要目的:在於盡早發現系統缺陷,提高軟件產品的質量。
                           主要特征:表現在不需要實際運行,充分發揮人的思維優勢,可能比較耗時耗力,
                                             對測試人員要求比較高。
2、動態測試:是通過選擇適當的測試用例,實際運行所測試的程序,比較實際運行結果和預期結
                        果,以發現軟件中潛在的缺陷。
      主要目的:在於確定軟件產品符合實際業務需求,可適用在單元測試、集成測試、系統測試等。
3、白盒測試:也稱為玻璃盒測試、結構化測試等。(需查看代碼)
4、黑盒測試:也稱為功能測試、數據驅動測試,是一種從用戶觀點出發的測試。(不需查看代碼)
5、灰盒測試:介於白盒測試與黑盒測試之間的測試。
6、手工測試:是完全由人工測試工作,包括測試計划的制定,測試用例的設計和執行,以及測試結    
                        果的檢查和分析等。
7、自動測試:是各種測試活動的管理與實施,是使用自動化測試工具或自動化測試腳本來進行的測
                        試,包括測試腳本的開發與執行等,以某種自動測試工具來驗證測試需求。
 
五、測試用例設計
                                         測試用例=輸入+輸出+測試環境
測試用例設計應滿足以下標准:1)測試用例的目標清楚
  (從整體而言)                        2)設計思路正確、清晰
                                                   3)在組織和分類上,測試用例層次清楚、結構合理
                                                   4)測試用例覆蓋所有測試點、覆蓋所有已知用戶使用背景
                                                   5)測試手段的區別對待
                                                   6)有充分的負面測試
                                                   7)沒有重復、冗余的測試用例
測試用例設計應滿足以下條件:1)測試用例的出發點是發現缺陷
(從具體的測試用例)              2)測試用例的單一性
                                                   3)符合測試用例設計規范或測試用例模板
                                                   4)描述清楚
                                                   5)操作步驟的准確性
                                                   6)操作步驟的簡單性
                                                   7)所期望的測試結果是可驗證的
                                                   8)測試環境的正確性、測試數據的充分性
                                                   9)前提條件、依賴性被完全識別出來
每個核心的輸入條件:1)正確數據   2)邊界數據     3)錯誤數據
 
六、模塊內測試
邏輯覆蓋技術是白盒測試中最主要的一種技術,包括語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、路徑覆蓋。
1、語句覆蓋:設計若干個測試用例,運行測試程序,使得每一可執行語句至少執行一次。
2、判定覆蓋:設計若干個測試用例,運行測試程序,使得程序中的每個判斷的取真分支和取假分支
                        至少執行一次。(分支覆蓋)
3、條件覆蓋:設計若干個測試用例,運行測試程序,使得程序中每個判斷的每個條件的可能取值
                        至少執行一次。
4、判定/條件覆蓋:設置若干個測試用例,運行測試程序,使得判定表達式中的每個條件都取到各種
                                可能的取值,且每個判定表達式也都取到各種可能的結果。
5、條件組合覆蓋:設置若干個測試用例,運行測試程序,使得每個判定的所有可能的條件取值組合
                               至少執行一次。
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM