
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、測試階段
測試階段的任務:
● 系統預測試項執行
● 系統預測試報告工作
● 執行各階段測試用例
● 各階段的缺陷記錄、修複
● 各階段日志報告
● 各階段缺陷的回歸測試
● 各階段測試報告
● 測試報告的評審