天天看點

計算機軟體測試規範_軟體測試基礎理論

計算機軟體測試規範_軟體測試基礎理論

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、測試階段

  測試階段的任務:

  ●  系統預測試項執行

  ●  系統預測試報告工作

  ●  執行各階段測試用例

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

  ●  各階段日志報告

  ●  各階段缺陷的回歸測試

  ●  各階段測試報告

  ●  測試報告的評審