軟件測試基礎教程與測試模型

什麼是軟件測試?

廣義概念:指軟件生存週期中所有的檢查、評審和確認工作。其中包括了對分析、設計階段,以及完成開發後維護階段的各類文檔、代碼的審查和確認。

狹義概念:識別軟件缺陷的過程,即實際結果與預期結果的不一致。

 

軟件生命週期的主要階段

1.問題的定義及規劃

       此階段是軟件開發方與需求方共同討論,主要確定軟件的軟件的開發目標及可行性。

2.需求分析

       在確定軟件開發可行的情況下,對軟件需要實現的各個功能進行詳細分析。需求分析階段是一個很重要的階段,這一階段做得好,將爲整個軟件開發項目的成功打下良好的基礎。“唯一不變的是變化本身。”,同樣需求也是在整個軟件開發過程中不斷變化和深入的,因此我們必須制定需求變更計劃來應對這種變化,以保護整個項目的順利進行。

3.軟件設計

       此階段主要根據需求分析的結果,對整個軟件系統進行設計。如系統框架設計、數據庫設計等等。軟件設計一般分爲總體設計和詳細設計。好的軟件設計將爲軟件程序編寫打下良好的基礎。

4.程序編碼

       此階段是將軟件設計的結果轉換成計算機可運行的程序代碼。在程序編碼中必須要制定統一,符合標準的編寫規範。以保證程序的可讀性,易維護性,提高程序的運行效率。

5.軟件測試

       在軟件設計完成後要經過嚴密的測試,以發行軟件在整個設計過程中存在的問題並加以糾正。整個測試過程分單元測試、組裝(集成)測試以及系統測試三個階段進行。測試的方法主要有白盒測試和黑盒測試兩種在測試過程中需要建立詳細的測試計劃並嚴格按照測試計劃進行測試,以減少測試的隨意性

6.運行維護

       軟件維護是軟件生命週期中持續時間最長的階段。在軟件開發完成並投入使用後,由於多方面的原因,軟件不能繼續適應用戶的要求,要延續軟件的使用壽命,就必須對軟件進行維護。軟件的維護包括糾錯型維護和改進性維護兩個方面

 

軟件測試的目標?

最終目標是確保軟件的功能符合用戶的需求,把儘可能多的問題在發佈或交付之前發現並改正。

⒈確保軟件完成了它所承諾或公佈的功能

⒉確保軟件滿足了性能的要求

⒊確保軟件是健壯的和適應用戶環境的

⒋爲軟件的質量評估提供依據

⒌爲軟件質量改進和管理提供幫助

 

軟件測試的原則?

⒈GOOD-enough原則。一種權衡投入/生產比的原則

⒉保證測試的覆蓋度,但窮舉測試是不可能的

⒊所有的測試都應追溯到用戶需求

⒋越早測試越好,測試過程與開發過程應是相互結合的

⒌測試的規模由小到大,從單元測試到系統測試

⒍爲了儘可能地發現錯誤,應由獨立的第三方測試

⒎不能爲了便於測試擅自修改程序

⒏既應該測試軟件應該做什麼,也應該測試軟件不應該做什麼

 

軟件測試工作有哪些重點?

測試用例的設計:

⒈測試用例的設計是整個軟件測試工作的核心

⒉測試用例反映對被測對象的質量要求,決定對測試對象的質量評估

測試工作的管理:

尤其是對包含多個子系統的大型軟件系統原因,其測試工作涉及大量人力和物力,有效的測試工作管理是保證有效測試工作的必要前提

測試環境的建立:

測試環境應該儘量與實際環境一致

 

軟件測試的度量?

⒈測試覆蓋率:有多少需求、代碼已經被測試了

⒉缺陷發現率:缺陷是何時被發現的,且有多少缺陷已經被發現。缺陷可以根據嚴重性來分類。需求記錄的數據有:缺陷數量,缺陷的嚴重化等級等

⒊測試成功率:有多少測試用例已經通過,且有多少運行正常的。需要記錄的數據有:通過的測試用例數,未通過的測試用例數,已執行的測試號用例數。

 

什麼是黑盒測試?

       又稱功能測試或數據驅動測試,是針對軟件的功能需求/實現進行測試,通過測試來檢測每個功能是否符合需求,不考慮程序內部的邏輯結構。

 

什麼是白盒測試?

       白盒測試也稱結構測試或邏輯驅動測試,必須知道軟件內部工作過程,通過測試來檢測軟件內部是否按照需求、設計正常運行。

 

什麼是單元測試?

定義:又稱模塊測試,是針對軟件設計的最小單位程序模塊進行正確性檢查的測試工作;可以從程序的內部結構出發設計測試用例,多個模塊測試可以平行地獨立進行測試

目的:發現模塊內部可能存在的各種差錯

內容:模塊接口測試(數據的流入流出)、局部數據結構測試、路徑測試、錯誤處理測試、邊界測試。

步驟:利用設計文檔設計測試用例;創建被測模塊的樁模塊或驅動模塊;利用被測試模塊、驅動模塊和樁模塊來建立測試環境,進行測試

 

什麼是集成測試?

定義:又稱組裝測試或聯合測試,在單元測試基礎上,將所有模塊按概要設計和詳細設計進行組裝

目的:發現模塊連接中的接口可能存在的各種差錯

內容

穿越模塊之間的數據是否會丟失;

一個模塊組裝後是否會對另一模塊或其他模塊存在影響;

各個子功能組裝在一起是否會達到預期的父功能;

全局數據結構是否有問題;

單個模塊的錯誤累積起來是否會放在???

組裝方法:包括一次性組裝方式、增值式組裝方式兩種組裝方法

完成標誌:成功地執行了測試計劃中規定的所有測試用例;修正了所發現的錯誤;測試結果通過專門小組的評審

 

什麼是系統測試?

目的:驗證和確認系統是否達到其原始目標,而對集成的硬件和軟件系統進行的測試

測試內容:在真實或模擬系統運行環境下,檢查完整的程序系統能否和系統(硬件設備、網絡、系統軟件)正確配置、連接,滿足用戶需求

 

什麼是驗收測試?

目的:在用戶環境中進行測試,以確定系統和產品是否能夠滿足合同或用戶所規定的需求

測試內容:根據任務書或合同、供需雙方約定的驗收依據文檔進行對整個系統的測試與評審,確認是否接收或拒絕系統

 

什麼是Alpha測試?

Alpha測試是驗收測試的一種,是由用戶在開發者的場所來進行的,Alpha測試是在一個受控的環境中進行的

什麼是Beta測試?

       Beta測試是驗收測試的一種,由軟件的最終用戶在一個或多個用戶場所來進行的,開發者通常不在現場,用戶記錄測試中遇到的問題並報告給開發者。

什麼是靜態測試?

        靜態測試又稱爲靜態分析技術,不執行被測試軟件,對需求分析說明書、軟件設計說明書、源程序做結構檢測、流圖分析、符號執行等找出軟件的錯誤。

什麼是動態測試?

        通過輸入一組預先按照一定的測試準則構造的實例數據動態運行程序,而達到發現程序錯誤的過程。

測試用來包含哪些關鍵內容?

測試用例主要包括用例編號、用例描述、前提條件、輸入數據、測試步驟和期望結果6項關鍵內容

 

軟件測試模型:

V模型:

W模型:

優點:

測試的活動與軟件開發同步進行

測試的對象不僅僅是程序,還包括需求和設計

儘早發現軟件缺陷可降低軟件開發的成本

缺點:

       但W模型也存在侷限性。在W模型中,需求、設計、編碼等活動被視爲串行的,同時,測試和開發活動也保持着一種線性的前後關係,上一階段完全結束,纔可正式開始下一個階段工作。這樣就無法支持迭代的開發模型。對於當前軟件開發複雜多變的情況,W模型並不能解除測試管理面臨的困惑。

 

H模型:

        軟件測試是一個獨立的流程,以獨立完整“微循環”流程,參與產品生命週期的各個階段,與其他流程併發地進行。H模型指出軟件測試要儘早準備,儘早執行,只要某個測試達到準備就緒點,測試執行活動就可以開展,並且不同的測試活動可按照某個次序先後進行,但也可以是反覆進行的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章