測試時代首頁 | 測試時代論壇 | 測試交流會 | Blog社區 | 測試時代工作室 | 測試時代刊物 | 軟件測試資料

軟件測試的時代 - 軟件測試思想、軟件測試技術新體驗!
             
軟件測試的設計與組織

                    作者:瑪瑞 選自 長沙軟件園
  摘 要 本文從產品設計和生產組織的角度來分析和討論軟件測試流程、軟件測試文檔、軟件測試用例、規;浖䴗y試和規范化軟件測試。
主題詞 軟件測試流程 軟件測試角色 軟件測試用例 規;浖䴗y試 規范化軟件測試

1 前言
2 軟件測試流程
2.1 軟件測試的階段劃分
2.2 軟件測試階段的步驟
2.3 軟件測試角色
2.4 軟件系統的測試流程
3 軟件測試文檔
4 軟件測試用例
4.1 軟件測試用例的定義
4.2 軟件測試用例的生成和執行
4.3 軟件測試用例的配置管理
4.4 軟件測試用例的組織
4.5 軟件測試用例的復用
5 規;浖䴗y試與規范化軟件測試

1 前言

計算機軟件產業在信息社會中對經濟、國防、科技和人文領域所起的作用將越來越重要。作為一種產業,計算機軟件生產具有共性和特性。軟件生產包括六個環節:軟件開發(定義/設計/實現)、軟件生產管理、軟件質量控制、軟件配置管理、軟件測試、軟件維護。第一個環節加工軟件產品,后五個環節決定軟件生產的質量和軟件產品的質量:

1. 軟件生產管理:維護軟件開發過程的有序性,決定軟件生產的資源消耗(人/物/信息/時間),從而決定軟件產品的價格;

2. 軟件質量控制:維護軟件資源消耗與軟件產品質量之間的均衡;

3. 軟件測試:保障軟件產品的可接收性,為評價軟件產品質量的提供依據;

4. 軟件配置管理:保障軟件產品(或其中間產品)的可標識性、完整性和一致性,為其它環節提供中介服務;

5. 軟件維護:保障軟件產品的“售后服務”,為軟件產品的更新提供信息。

軟件生產的每個環節都有自身的產品(文檔/文件/代碼/服務)輸出,它們共同構成軟件產品的三要素:(軟件功用,軟件質量,軟件價格)。

計算機軟件生產的方法學和計算機軟件生產的管理學值得各類軟件工作者關注,需要在實踐與研究過程中不斷發展理論和積累經驗。

緣于軟件生產的特性,軟件測試是軟件生產的一個重點和難點。軟件測試具有四個層次的作用:找錯、確認、組裝和評估[1],其中確認和評估的意義與難度在規;能浖a中遠遠大于找錯和組裝。軟件生產迫切需要脫離手工作坊方式的軟件調試,在規范化軟件測試的基礎上實現規;浖䴗y試,達到提高軟件產品質量、降低軟件生產消耗的目的。軟件測試的方法學和軟件測試的管理學應是軟件測試工作者關注的重點。

基于一個大型復雜實時軟件系統(以下簡稱之為“MARA”)軟件測試的實踐與研究,參考資料[1]從產品計劃和生產管理的角度分析和討論了軟件測試,本文將從產品設計和生產組織的角度來分析和討論軟件測試。

以下將分析和討論:軟件測試流程、軟件測試文檔、軟件測試用例、規;浖䴗y試和規范化軟件測試。

2 軟件測試流程

2.1 軟件測試的階段劃分

可以從三個角度來將軟件測試劃分為多個階段[1]:

1. 面向軟件測試操作類型的劃分,如調試、集成、確認、驗證、組裝、驗收、操作;

2. 面向軟件測試對象粒度的劃分,如語句、結構、單元、部件、配置項、子系統、系統、大系統;

3. 面向軟件測試實施者的劃分,如開發者、測試者、驗收者、使用者。

2.2 軟件測試階段的步驟

每個軟件測試階段都要經歷以下步驟:測試需求分析、測試過程設計、測試實現、測試實施、測試評價、測試維護。

2.3 軟件測試角色

每個測試步驟都對應一個測試角色,另外還定義測試配置管理的角色。

表1給出軟件測試角色的定義。

表1 軟件測試角色的定義

 
明確區分各類測試角色,并明確定義其資源(人/物/時間)的安排,是保障軟件測試工作有序開展、有效管理的關鍵。

明確區分測試需求分析角色和測試過程設計的角色意義還在于:軟件測試對軟件功能/軟件實現有了可追蹤性,因而為準確評議測試用例的質量提供依據。

2.4 軟件系統的測試流程

顯示了大型復雜軟件系統MARA的測試流程。

可以看到,結合測試操作類型和測試對象粒度的劃分角度,MARA的測試階段分為:單元測試、部件集成、部件確認、配置項組裝、配置項確認、系統綜合和系統驗收。每個階段都要經歷2.2節說明的六個步驟。

表2說明各測試階段的定義。

表2 MARA軟件測試階段的定義

 

3 軟件測試文檔

顯示了MARA的軟件測試文檔樹。

利用基于數據庫的管理工具,軟件測試文檔可以自動/半自動生成。

4 軟件測試用例

4.1 軟件測試用例的定義

軟件測試用例可以被定義為如下六元組:

(測試索引,測試環境,測試輸入,測試操作,預期結果,評價標準)

表3給出軟件測試用例的定義。

表3 軟件測試用例的定義
 

4.2 軟件測試用例的生成和執行

軟件測試的核心任務是生成和執行軟件測試用例。

由表3知,在軟件測試用例的六元組定義中:

1. 測試索引和測試環境在測試需求分析步驟中定義,是軟件測試計劃的內容;

2. 測試輸入、測試操作、預期結果和評價標準的描述性定義在軟件設計步驟中定義,是軟件測試說明的內容;

3. 測試輸入、測試操作、預期結果和評價標準的計算機表示(代碼/數據定義)在軟件測試實現步驟中給出,是軟件測試程序產品。

軟件測試用例是軟件測試結果的生成器,即每執行一次測試用例都產生一組測試結果。

若測試用例被有效地由描述性定義轉換為計算機表示,則測試的執行和結果的比較都可以利用軟件測試工具自動或半自動地執行,在需要大量回歸測試的復雜軟件系統中,這種轉換和自動執行是降耗增質的關鍵策略之一。

4.3 軟件測試用例的配置管理

基于以下原因,對軟件測試用例的需要進行配置管理:

1. 大型復雜軟件系統的功能/性能要求將對應于大量的軟件測試用例,它們需要標識規則和規范的存儲結構;

2. 軟件測試用例也存在引用控制;

3. 軟件測試用例也存在版本控制;

4. 軟件測試用例也存在更動控制。

軟件測試用例的配置管理類似于一般軟件的配置管理,可以實現安全存儲、追蹤變化和并行開發,其特色在于:區分測評人員和一般測試人員,前者獨具生成和更新測試基準(預期結果的計算機表示)的權限。

4.4 軟件測試用例的組織

軟件測試用例的設計和實現對應于被測對象的需求、設計和環境要求,因此同被測對象一樣,軟件測試用例可以被組織成層次結構,即:依據某種原則(如被測對象的層次或測試類型)將測試用例劃分為測試用例組;測試用例組又可以劃分為更高層次的測試用例組。

顯示了MARA中一個三級部件MRW的測試用例結構樹。

測試用例組反映多個測試用例/測試用例組之間的偏序關系,也標識了具有某種共性的測試用例的集合。

測試實施時可以根據具體需要/環境,選擇性地執行多個測試用例/測試用例組。

4.5 軟件測試用例的復用

測試用例的層次性還表現在:低層被測對象的測試用例或其部分內容可以復用在對高層被測對象的測試中。如:

1. 單元測試階段的功能確認類測試用例組可以復用在部件集成測試階段中;

2. 部件確認測試階段可以復用單元測試階段的測試輸入;

3. 部件確認測試階段的測試用例組可以復用在配置項組裝測試階段和配置項確認測試階段中;

4. 配置項確認測試階段的測試用例組可以復用在系統綜合測試階段和系統驗收測試中。

當然,每個測試階段的對象和目標都不同,因此測試用例或其部分內容的復用通常有選擇的、有限的和需更改的。

5 規;浖䴗y試與

規范化軟件測試

軟件測試的規模包括兩層含義:被測軟件的規模(有效代碼量、結構/邏輯的復雜性、高性能/高精確性/高可靠性的需求)和測試消耗資源(人力/時間/測試頻度)的規模,前者是定義后者的決定因素?芍,規;浖䴗y試應指:針對一定規模的軟件消耗一定資源的軟件測試。關于這兩個“一定”,值得軟件測試研究者探討。

實現規;浖䴗y試存在兩種途徑,其對比見表4。

表4 規;浖䴗y試的兩種實現途徑
 

規范化的軟件測試包括:有限的測試資源投入、已驗證的測試模式、完整的測試方法與技術途徑、有序有效的測試管理和降耗提質增效的測試環境,其中涉及的理論、方法與技術值得進一步研究和實踐


測試時代首頁 | 測試時代論壇 | 測試交流會 | Blog社區 | 測試時代工作室 | 測試時代刊物 | 軟件測試資料
 
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97