軟件測試基礎理論

軟件測試基礎理論

1、測試階段劃分(按測試執行順序):

  ● 單元測試(Unit Testing)

  定義:針對軟件基本組成單元(軟件設計的最小單位)來進行正確性檢驗的工作;

  測試目的:檢測軟件模塊對《詳細設計說明書》的符合程度。

  ● 集成測試(Integration Testing)

  定義:在單元測試的基礎上,將所有模塊按照概要設計要求組裝成為子系統或系統,驗證組裝後功能以及模塊間接口是否正確的測試工作;

  測試目的:檢測軟件模塊對《概要設計說明書》的符合程度。

  ● 系統測試(System Testing)

  定義:將已經集成好的的軟件系統,作為整個基於計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、數據和人員等其他元素組合在一起,在實際運行(使用)環境下,對計算機系統進行的一系列的測試工作。

  測試目的:與《需求規格說明書》做比較,發現軟件與系統需求定義不符合或與之矛盾的地方。

  ● 迴歸測試(Regression Testing)

  定義:軟件在測試或其他活動中發現的缺陷經過修改後,進行的測試;

  測試目的:驗證缺陷得到了正確的修復,同時對系統的變更沒有影響以前的功能;

  特點:迴歸測試可以發生在任何一個階段,包括單元測試、集成測試和系統測試;

  策略:

  ①、完全重複測試:重新執行前期建立的所有測試用例,並確認確認缺陷解決和修改的擴散影響性;

  ②、選擇性重複測試:

  ——覆蓋修改法:選擇直接影響的用例;

  ——周邊影響法:選擇間接影響的用例;

  ——指標達成方法:達到指標的覆蓋率等。

  流程:

  1)制定迴歸測試策略

  2)確定測試的版本

  3)按照迴歸測試策略執行迴歸測試

  4)迴歸測試通過,關閉缺陷跟蹤單(問題單)

  5)迴歸測試不通過,缺陷跟蹤單返回開發人員,經開發人員修改後再次進行迴歸測試

  迴歸測試自動化:(需考慮的問題如下)

  1)迴歸測試是一個重複的以前測試的測試,所以自動化是迴歸測試的追求;

  2)自動化法包括:程序的自動運行、自動配置,用例的管理、自動輸入,測試自動執行,測試結果自動採集、比較及結論的自動輸出;

  3)對比較穩定的可採用QTP、Robot、SilkTest等工具的“捕捉回放”工具;

  4)為了能實現自動化需要用到腳本語言,如:TCL、Python、Perl等;

  5)對比較複雜的過程,無法藉助工具的需要自己開發專用工具;

  6)儘早考慮迴歸測試的自動化,形成工具化、可繼承和推廣的。

  ●  其他測試階段

  ○  α測試:用戶在開發環境下進行的測試,評價軟件FLURPS

  ○  β測試:多用戶在實際使用環境下進行的測試

  ○  驗收測試:用戶根據合同、《需求規格說明書》或《驗收測試計劃》對產品進行的驗收測試

  注:FLURPS即:功能、局域化、可用性、可靠性、性能、技術支持

2、單元測試、集成測試、系統測試的比較:

  ●  測試方法:

  單元測試屬於白盒測試範疇;

  集成測試屬於灰盒測試範疇;

  系統測試屬於黑盒測試範疇;

  ●  考察範圍:

  單元測試主要測試內部數據結構、邏輯控制、異常處理等;

  集成測試主要測試模塊間的接口與接口數據傳遞關係,以及模塊組合後的整體功能;

  系統測試主要測試整個系統相對於需求的符合度;

  ●  評估基準:

  單元測試主要通過邏輯覆蓋率來評估;

  集成測試主要通過接口覆蓋率來評估;

系統測試主要通過測試用例對需求規格的覆蓋率來評估;

  主要的測試文檔:

  ●  測試計劃:測試範圍、方法、資源,以及相應測試活動的時間進度安排表的文檔;

  ●  測試方案:為完成軟件集成特性的測試而進行的設計測試方法的細節文檔;

  ●  測試用例:為完成一個測試項的測試輸入、預期結果、測試執行條件等因素的文檔;

  ●  測試規程:執行測試時測試活動序列的文檔;

  ●  測試報告:執行測試結果的文檔;

●  測試日報:每天測試執行情況的記錄和總結。

  3、軟件測試過程規範

  首先來看看軟件最權威的規範CMM(capability maturity model 能力成熟度模型)關於過程的要素的描述有哪些?

  ●  角色(rolse):執行者、工作者

  ●  入口準則(entry criteria):過程執行的前提條件

  ●  輸入(input):過程所需資源

  ●  活動(activities):過程執行

  ●  輸出(output):過程執行結果

  ●  出口準則(exit criteria):過程結束的條件

  ●  評審和審核(reviews and audits):監督活動

  ●  可管理和受控的工作產品(work products managed controlled):標準性的東西

  ●  測量(measurements):可以度量的

  ●  書面規程(documented procedures):計劃文檔類

  ●  培訓(training):業務培訓等

  ●  工具(tools):過程執行採用的工具

  這些要素已經全面囊括了一個過程的方方面面,如果在軟件流程中的每一個過程都按照這樣的規範執行,那麼軟件質量就能得到一定的保證!

  那麼作為軟件測試工作,在整個軟件開發流程中的每一個過程中有哪些工作要做的呢?下面我將分角色、分階段的來學習。

4、系統測試過程

  在這裡主要研究軟件系統測試過程中的輸入和輸出,瞭解我們應該根據什麼來做、要做什麼以及我們做的先後順序是怎麼安排的過程。

  系統測試計劃階段:

  輸入:軟件開發計劃、軟件測試計劃、需求規格說明書

  輸出:系統測試計劃

  系統測試設計階段:

  輸入:需求規格說明書、系統測試計劃

  輸出:系統測試方案

  系統測試實現階段:

  輸入:需求規格說明書、系統測試計劃、系統測試方案

  輸出:系統測試用例、系統測試規程、系統測試預測試項

  系統測試執行階段:

  輸入:系統測試計劃、系統測試方案、系統測試用例、系統測試預測試項、系統測試規程

  輸出:系統預測試報告、系統測試報告、缺陷報告

  5、集成測試過程

  同樣這個過程將研究集成測試過程各個階段的輸入及輸出。

  集成測試計劃階段:

  輸入:軟件測試計劃、概要設計說明書

  輸出:集成測試計劃

  集成測試設計階段:

  輸入:概要設計說明書、集成測試計劃

  輸出:集成測試方案

  集成測試實現階段:

  輸入:概要設計說明書、集成測試計劃、集成測試方案

  輸出:集成測試用例、集成測試規程

  集成測試執行階段:

  輸入:集成測試計劃、集成測試方案、集成測試用例、集成測試規程

  輸出:集成測試報告、缺陷報告

  6、單元測試過程

  同樣這個過程將研究單元測試過程各個階段的輸入及輸出。

  單元測試計劃階段:

  輸入:詳細設計說明書、軟件測試計劃

  輸出:單元測試計劃

  單元測試設計階段:

  輸入:詳細設計說明書、單元測試計劃

  輸出:單元測試方案

  單元測試實現階段:

  輸入:詳細設計說明書、單元測試計劃、單元測試方案

  輸出:單元測試用例、單元測試規程

  單元測試執行階段:

  輸入:單元測試計劃、單元測試方案、單元測試用例、單元測試規程

  輸出:單元測試報告、缺陷報告

7、需求分析階段

  每個階段有每個階段的任務,這裡將瞭解需求分析階段的任務,及其軟件項目各工作人員的任務所在。

  需求分析階段任務:

  ●  需求分析,完成SRS

  ●  軟件需求規格說明書的評審:檢查遺漏和存在問題

  ●  進行需求跟蹤

  ●  系統測試計劃

  ●  系統測試計劃的評審

  8、概要設計階段

  概要設計階段任務:

  ●  軟件系統各層設計,完成HLD

  ●  HLD的評審

  ●  更新需求跟蹤

  ●  系統測試方案、用例的設計

  ●  系統測試方案、用例的評審

  ●  集成測試計劃

  ●  集成測試計劃的評審

9、詳細設計階段

  詳細設計階段任務:

  ●  軟件詳細模塊的設計,完成LLD

  ●  詳細設計的評審

  ●  更新需求跟蹤

  ●  集成測試方案、用例的設計

  ●  集成測試方案、用例的評審

  ●  單元測試計劃

  ●  單元測試計劃的評審

  10、編碼階段

  編碼階段任務:

  ●  軟件編碼

  ●  對代碼進行靜態質量檢查

  ●  代碼評審

  ●  單元測試方案、用例的設計

  ●  單元測試方案、用例的評審

  11、測試階段

  測試階段的任務:

  ●  系統預測試項執行

  ●  系統預測試報告工作

  ●  執行各階段測試用例

  ●  各階段的缺陷記錄、修復

  ●  各階段日誌報告

  ●  各階段缺陷的迴歸測試

  ●  各階段測試報告

  ●  測試報告的評審


分享到:


相關文章: