軟件測試基礎知識(軟件測試入門培訓)_第1頁
軟件測試基礎知識(軟件測試入門培訓)_第2頁
軟件測試基礎知識(軟件測試入門培訓)_第3頁
軟件測試基礎知識(軟件測試入門培訓)_第4頁
軟件測試基礎知識(軟件測試入門培訓)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、軟件測試第一講第一講 基礎理論知識基礎理論知識班文武 2015年4月內(nèi)容簡介第1節(jié) 測試基本概念第2節(jié) 軟件測試模型第3節(jié) 軟件測試方法第4節(jié) 測試工具簡介第1節(jié)、測試基本概念 1.1 軟件測試定義 1.2 軟件測試的目的 1.3 軟件測試原則 1.4 軟件測試分類 1.5 測試用例與執(zhí)行1.1 軟件測試定義 軟件測試就是在軟件投入運行前,對軟件需求分析、設計規(guī)格說明和編碼的最終復審,是軟件質(zhì)量保證的關鍵步驟。 早期定義:軟件測試是為了發(fā)現(xiàn)軟件中錯誤而運行軟件的過程。(1979年,G.J.Myers) 后期定義:使用人工或者自動的手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需

2、求或者是弄清預期結(jié)果與實際運行結(jié)果之前的差別。( 1983年,IEEE) 定義:軟件測試是在一定的軟件、硬件、網(wǎng)絡環(huán)境下,遵循相對規(guī)范的軟件測試流程,使用合理的測試方法以及適當?shù)臏y試工具運行或測試某個系統(tǒng)的過程。1.2 軟件測試目的 軟件測試的目的(業(yè)界有兩種權威定義) 第一、評價一個程序和系統(tǒng)的特性或能力,并確定它是否達到預期的結(jié)果。 第二、是在軟件分發(fā)到最終用戶手中之前,以最少的時間和人力找出軟件中潛在的各種錯誤和缺陷。 軟件測試目的:檢驗軟件是否滿足規(guī)定的需求或者是弄清預期結(jié)果與實際運行結(jié)果之間的差別。1.3 軟件測試原則 所有測試的標準都是建立在用戶需求之上 盡早定義好產(chǎn)品的質(zhì)量標準

3、測試應盡早介入 窮盡測試是不可能的 測試應貫穿于軟件整個生命周期 應有第三方或獨立的測試團隊1.4 軟件測試分類 按照開發(fā)階段劃分 1)單元測試 單元測試(Unit Testing,UT)又稱模塊測試,是對軟件基本單元(軟件設計最小單位)進行正確性進行檢驗,檢查代碼語法、格式和邏輯上的錯誤,驗證程序是否符合規(guī)范,盡早發(fā)現(xiàn)單元內(nèi)部可能存在的各種缺陷。 2)集成測試 集成測試(Integration Testing,IT)又稱組裝測試或聯(lián)合測試,是單元測試在集成時是否有缺陷。是單元測試的邏輯擴展,通過測試識別組合單元時出現(xiàn)的問題。 集成測試的目標就是檢測系統(tǒng)是否達到需求;對業(yè)務流程及數(shù)據(jù)流的處理是

4、否符合標準;檢測系統(tǒng)對業(yè)務流處理是否存在邏輯不嚴謹或者錯誤;檢測需求是否存在不合理的標準及要求。1.4 軟件測試分類 按照開發(fā)階段劃分(續(xù)) 3)系統(tǒng)測試 系統(tǒng)測試(System Testing,ST)是將已集成好的軟件系統(tǒng),作為整個計算機系統(tǒng)的一個元素,與支持軟件、計算機硬件、外設、數(shù)據(jù)等其他系統(tǒng)元素結(jié)合在一起,在模擬實際使用環(huán)境下,對計算機系統(tǒng)進行一系列的測試活動。 4)驗收測試 驗收測試(Acceptance Testing,AT)也稱交付測試,是在軟件產(chǎn)品完成了單元測試、集成測試和系統(tǒng)測試之后,產(chǎn)品發(fā)布之前所進行的軟件測試活動,是技術測試的最后一個階段。 驗收測試目的是驗證系統(tǒng)是否達到

5、了用戶規(guī)格說明書中的要求,并試圖盡可能的發(fā)現(xiàn)軟件中存在的缺陷,從未為軟件進一步改善提供幫助,保證系統(tǒng)或軟件產(chǎn)品最終被用戶接受。1.4 軟件測試分類 按照測試方法劃分1.4 軟件測試分類 按照測試方法劃分(續(xù)) 1)靜態(tài)測試 靜態(tài)測試是指不運行程序,通過人工對程序和文檔進行分析與檢查。靜態(tài)測試實際上是對軟件中的需求說明書、設計說明書、程序代碼等進行評審的一個過程。 2)動態(tài)測試 動態(tài)測試是指通過人工或使用工具運行程序進行檢查、分析程序的執(zhí)行狀態(tài)和程序的外部表現(xiàn),一般包括白盒測試、黑盒測試和灰盒測試。 1.4 軟件測試分類 按照測試方法劃分(續(xù)) 1白盒測試 白盒測試又稱結(jié)構(gòu)測試。白盒測試可以把程

6、序看成裝在一個透明的盒子里,也就是清楚的了解程序結(jié)構(gòu)和處理過程,檢查是否所有的結(jié)構(gòu)及路徑都是正確的,檢查軟件內(nèi)部動作是否按照設計說明的規(guī)定正常運行。 2黑盒測試 黑盒測試是把程序看成一個黑盒子,完全不考慮程序內(nèi)部結(jié)構(gòu)和處理過程。通常在程序界面處進行測試,它只是檢查程序或軟件是否按照需求規(guī)格說明書的規(guī)定正常運行。 3灰盒測試 灰盒測試時介于白盒測試和黑盒測試之間的測試?;液袦y試主要關注輸出對輸入的正確性;同時也關注內(nèi)部表現(xiàn),但這種關注不像白盒測試那種詳細、完整?;液袦y試結(jié)合了白盒測試和黑盒測試的要素。1.4 軟件測試分類 按照測試測試實施組織劃分 1)開發(fā)方測試 開發(fā)方測試是開發(fā)方在軟件開發(fā)環(huán)境

7、下,通過檢測和提供客觀證據(jù),證實軟件是否滿足規(guī)定的需求。 2)用戶測試 用戶測試是在實際應用環(huán)境下,用戶通過運行和使用軟件找出軟件使用過程中發(fā)現(xiàn)軟件的缺陷和問題,檢測與核實軟件實現(xiàn)是否符合用戶的預期要求,并把信息反饋給開發(fā)者。 3)第三方測試 第三方測試又稱為“獨立測試”,是介于軟件開發(fā)和用戶方之間的測試組織的測試。也就是由在技術、管理和財務上與開發(fā)方和用戶方相對獨立的組織進行的軟件測試。一般情況下是在模擬用戶真實應用環(huán)境下,進行軟件確認測試。 1.5 測試用例與執(zhí)行 什么是測試用例? 測試用例目前沒有經(jīng)典的定義。比較通常的說法是:指對一項特定的軟件產(chǎn)品測試任務的描述,體現(xiàn)測試方案、方法、技術

8、和策略。內(nèi)容包括測試目標、測試環(huán)境、輸入數(shù)據(jù)、測試步驟、預期結(jié)果、測試腳本等所形成的文檔。測試用例編號CALC-ST-SRS001-001測試項目測試計算器的加法功能測試標題一個數(shù)在合法的取值范圍,另一個數(shù)在最大取值范圍外重要級別高預置條件啟動計算器軟件輸入?yún)?shù)1:1 參數(shù)2:+ 參數(shù)3:65537 參數(shù)4:=執(zhí)行步驟用計算機鍵盤依次輸入上述參數(shù)預期輸出參數(shù)1:65538 什么是測試執(zhí)行? 測試執(zhí)行就是根據(jù)測試用例運行被測軟件。一個測試用例或測試用例集的測試執(zhí)行:1.5 測試用例與執(zhí)行第2節(jié)、軟件測試模型 2.1 V模型 2.2 W模型 2.3 X模型 2.4 H模型 2.5 前置模型(1)軟

9、件測試執(zhí)行是在編碼實現(xiàn)后才進行的,容易導致從需求、設計等階段隱藏的缺陷一直到驗收測試才會發(fā)現(xiàn),從而將導致發(fā)現(xiàn)和消除這些缺陷的代價非常高。(2)將開放和測試過程劃分為固定邊界的不同階段,使得相關人員很難跨過這些邊界來采集測試所需的信息。(3)容易扔人形成“測試是開發(fā)之后的一個階段”、“測試的對象就是程序”等誤解。存在的缺陷V模型從左到右描述了基本的開發(fā)過程和測試行為,明確的標注了測試過程中存在不同的測試類型,并清楚的描述了這些測試階段與開發(fā)過程期間各階段的對應關系。2.1 V模型基本特征:1、測試工作貫穿整個軟件開發(fā)周期,不僅僅是測試程序,需求、設計等都要測試。2、測試與開發(fā)同步進行,能盡早地全

10、面地發(fā)現(xiàn)問題。優(yōu)點:W模型是在V模型基礎上提出,由兩個“V”字重疊而成,其中一個表示開發(fā)過程,另一個表示測試過程;軟件測試中的各項活動與開發(fā)各項階段的活動相互對應。2.2 W模型基本特征:相對于V模型,W模型增加了軟件各開發(fā)階段中應同步進行的驗證和確認活動。2.2 W模型W模型的缺點:1、W模型也存在局限性。在W模型中,需求、設計、編碼等活動被視為串行的,同時,測試和開發(fā)活動也保持著一種線性的前后關系,上一階段完全結(jié)束,才可正式開始下一個階段工作。這樣就無法支持迭代的開發(fā)模型。2、對于當前軟件開發(fā)復雜多變的情況,W模型并不能解除測試管理面臨著困惑。2.3 X模型特征:特征:左邊描述的是針對單獨

11、程序片段所進行的相互分離的編碼和測試,此后將進行頻繁的交接,通過集成最終合成為可執(zhí)行的程序,然后再對這些可執(zhí)行程序進行測試。己通過集成測試的成品可以進行封裝并提交給用戶,也可以作為更大規(guī)模和范圍內(nèi)集成的一部分。多根并行的曲線表示變更可以在各個部分發(fā)生。X模型還定位了探索性測試,這是不進行事先計劃的特殊類型的測試,給有經(jīng)驗的測試人員在測試計劃之外發(fā)現(xiàn)更多的軟件缺陷。 H模型是為了解決V模型和W模型所存在的不足額提出來的。H模型將測試活動完全獨立出來,形成一個完全獨立的流程,將測試準備活動和測試執(zhí)行活動清晰的體現(xiàn)出來。2.4 H模型H模型給出了在整個生產(chǎn)周期中某個層次上的一次測試“微循環(huán)”。圖中其

12、他流程可以是任意的開發(fā)流程。 H模型揭示了軟件測試以下特點:(1)軟件測試不僅指測試的執(zhí)行,還包括很多的其他活動;(2)軟件測試是一個獨立的流程,貫穿產(chǎn)品整個生命周期,與其他流程并發(fā)進行;(3)軟件測試要盡早準備,盡早執(zhí)行;(4)軟件測試時根據(jù)被測軟件的不同而分層次進行的。不同層次的測試活動可以是按照某個次序先后進行的,但也可能是反復的。2.4 H模型2.5 前置模型前置模型是一個將測試和開發(fā)緊密結(jié)合的模型,該模型提供了輕松的方式可以使項目加快速度。 前置模型要點:1、開發(fā)和測試相結(jié)合2、對每一個交付內(nèi)容進行測試3、在設計階段進行設計和測試計劃4、測試和開發(fā)結(jié)合在一起5、讓驗收測試和技術測試保

13、持相互獨立6、反復交替的開發(fā)和測試7、發(fā)現(xiàn)內(nèi)在價值2.5 前置模型第3節(jié)、軟件測試方法 3.1 白盒測試 3.2 黑盒測試 3.3 灰盒測試 3.4 白盒測試與黑盒測試比較 3.5 靜、動態(tài)分析 什么是白盒測試 白盒測試可以把程序看成裝在一個透明的盒子里,也就是清楚的了解程序結(jié)構(gòu)和處理過程,檢查是否所有的結(jié)構(gòu)及路徑都是正確的,檢查軟件內(nèi)部動作是否按照設計說明的規(guī)定正常運行。3.1 白盒測試 為什么要進行白盒測試(1)邏輯錯誤和不正確假設與一條程序路徑被運行的可能性成反比。(2)我們經(jīng)常相信某邏輯路徑不可能被執(zhí)行,而事實上它可能在正常的基礎上被執(zhí)行。(3)筆誤是隨機的。 白盒測試主要是想對程序模

14、塊進行如下檢查:1、對程序模塊的所有獨立的執(zhí)行路徑至少測試一遍。2、對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。3、在循環(huán)的邊界和運行的界限內(nèi)執(zhí)行循環(huán)體。4、測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。3.1 白盒測試 白盒測試優(yōu)點: 1.迫使測試人員去仔細的思考軟件的實現(xiàn); 2.可以檢測代碼中的每條分支和路徑; 3.揭示隱藏在代碼中的錯誤; 4.對代碼的測試比較徹底。 白盒測試缺點: 1.昂貴(投入成本太高) 2.無法檢測代碼中遺漏的路徑和數(shù)據(jù)敏感性錯誤 3.不驗證規(guī)格的正確性3.1 白盒測試 什么是黑盒測試 黑盒測試也叫功能測試,這是因為在黑盒測試中,主要關注被測軟件的功能實現(xiàn),而不

15、是內(nèi)部邏輯。依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。3.2 黑盒測試 為什么要進行黑盒測試白盒測試在測試的早期采用,黑盒測試在主要用于測試后期。黑盒測試故意不考慮控制結(jié)構(gòu),而是注意信息域。 黑盒測試主要用于回答以下問題: 1、是否有不正確或遺漏的功能? 2、在接口上,輸入是否能正確的接受? 3、能否輸出正確的結(jié)果? 4、是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤? 5、性能上是否能夠滿足要求? 6、是否有初始化或終止性錯誤?3.2 黑盒測試 黑盒測試常用技術 功能測試的測試數(shù)據(jù)的選擇和測試結(jié)果的描述是以軟件的功能屬性為基礎的,即以用戶角度去驗證軟件是否符合功能需

16、求。盡管黑盒測試是圍繞著用戶需求文檔進行的,但是黑盒測試也不一定必須要有用戶來參與測試。 無用戶參與的黑盒測試 常見的無用戶參與的黑盒測試有:功能性測試、容量測試、安全性測試、負載測試、恢復性測試、標桿測試、穩(wěn)定性測試、可靠性測試等。 有用戶參與的黑盒測試常見的有用戶參與的測試有:實驗室測試和外場測試。3.2 黑盒測試 黑盒測試優(yōu)點: 1. 對于更大的代碼單元來說(子系統(tǒng)甚至系統(tǒng)級)比白盒測試更高效。 2.測試人員不需要了解實現(xiàn)的細節(jié),包括特定的編程語言。 3.測試人員和編碼人員時彼此獨立的。 4.從用戶的角度進行測試,很容易被大家理解和接受。 5.有助于暴露任何規(guī)格不一致或有歧義的問題。 6

17、.測試用例可以在規(guī)格完成之后馬上進行。3.2 黑盒測試 黑盒測試缺點: 1.只有一小部分可能的輸入測試到,要測試每個可能的輸入流幾乎是不可能的; 2.沒有清晰簡明的規(guī)格,測試用例是很難設計的; 3.會有很多程序路徑?jīng)]有被測試到; 4.不能直接針對特定的程序段,修改問題時,這些程序可能非常復雜。3.2 黑盒測試 灰盒測試是介于黑、白盒測試之間的,關注輸出對于輸入的正確性,同時也關注內(nèi)部表現(xiàn)。 灰盒測試結(jié)合了白盒測試盒黑盒測試的要素,它考慮了用戶端、特定的系統(tǒng)知識和操作環(huán)境。它在系統(tǒng)組件的協(xié)同性環(huán)境中評價應用軟件的設計。3.3 灰盒測試3.4 白盒測試與黑盒測試比較 考慮對象不同 白盒測試只考慮測

18、試軟件代碼,它不保證完整的希求規(guī)格是否被滿足。 黑盒測試只考慮測試軟件的需求規(guī)格,它不保證實現(xiàn)的所有部分是否被測試到。 技術要求不同 白盒測試要求測試人員要熟悉軟件代碼以及軟件內(nèi)部的邏輯結(jié)構(gòu)。 黑盒測試要求測試人員熟悉軟件需求規(guī)格說明書,不要求熟悉代碼以及軟件內(nèi)部的邏輯結(jié)構(gòu)。 投入測試成本 白盒測試比黑盒測試成本要高很多。 靜態(tài)分析(Static analysis) 就是對軟件的源代碼進行研讀,查找錯誤或收集一些度量數(shù)據(jù),不需要對代碼進行編譯和執(zhí)行 動態(tài)分析(Dynamic analysis)就是通過觀察軟件運行時的動作,來提供執(zhí)行跟蹤,時間分析,以及測試覆蓋度方面的信息。3.5 靜、動態(tài)分析 測試工作在軟件開發(fā)整個過程中占有極為重要的位置,而全人工測試是非常麻煩的,所以測試過程的自動化已成為測試發(fā)展的重要方向。測試工具的選擇對測試的規(guī)范化影響很大,目前已開發(fā)出了各種自動化軟件測試工具,它們?yōu)檐浖y試提供了強有力的支持。 測試工具從測試的方法上可以分為兩種:白盒測試工具和黑盒測試工具。第4節(jié)、測試工具白盒測試工具主要有:內(nèi)存資源泄漏檢查:BoundsC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論