軟件測試教學(xué)PPT課件
軟件測試教學(xué)PPT課件,軟件測試,教學(xué)PPT課件,軟件,測試,教學(xué),PPT,課件
國家教學(xué)資源庫建設(shè)項目國家教學(xué)資源庫建設(shè)項目單元單元1 軟件測試入門軟件測試入門 主講人主講人 翁英萍翁英萍南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試學(xué)習(xí)導(dǎo)航學(xué)習(xí)導(dǎo)航2南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試本單元任務(wù)分解本單元任務(wù)分解3任務(wù)一:理解軟件工程和軟件測試的聯(lián)系 及軟件測試模型任務(wù)二:正確理解和認識軟件質(zhì)量的概念 及質(zhì)量保證體系任務(wù)三:理解軟件測試的分類、原則、策 略和流程建議課時:建議課時:4課時課時 南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試本單元各任務(wù)的教學(xué)過程本單元各任務(wù)的教學(xué)過程4 項目概述任務(wù)一任務(wù)二任務(wù)三 南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試項目概述項目概述5目標(biāo)目標(biāo)l本單元旨在對軟件測試建立概要性、框架性的整體本單元旨在對軟件測試建立概要性、框架性的整體認識和全面理解,并為后續(xù)學(xué)習(xí)軟件測試的策略、認識和全面理解,并為后續(xù)學(xué)習(xí)軟件測試的策略、方法與實現(xiàn)技術(shù)建立堅實基礎(chǔ)。方法與實現(xiàn)技術(shù)建立堅實基礎(chǔ)。l本單元將:本單元將:l介紹軟件工程及其各階段的任務(wù),由此引出軟件介紹軟件工程及其各階段的任務(wù),由此引出軟件測試模型測試模型l討論軟件質(zhì)量的概念及質(zhì)量保證體系。討論軟件質(zhì)量的概念及質(zhì)量保證體系。l介紹軟件測試的分類、原則、策略和流程。介紹軟件測試的分類、原則、策略和流程。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)一:軟件工程和軟件測試的聯(lián)系及軟件測試模型任務(wù)一:軟件工程和軟件測試的聯(lián)系及軟件測試模型任務(wù)一:軟件工程和軟件測試的聯(lián)系及軟件測試模型任務(wù)一:軟件工程和軟件測試的聯(lián)系及軟件測試模型6 任務(wù)簡介 任務(wù)分析 相關(guān)知識點 任務(wù)實施 任務(wù)小結(jié) 拓展訓(xùn)練南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介7任務(wù)簡介任務(wù)簡介l了解軟件測試的歷史發(fā)展過程和軟件測試的現(xiàn)狀。了解軟件測試的歷史發(fā)展過程和軟件測試的現(xiàn)狀。l了解軟件測試與軟件工程各階段的聯(lián)系了解軟件測試與軟件工程各階段的聯(lián)系l了解軟件測試模型了解軟件測試模型南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析8l軟件測試的含義和概念,軟件測試的含義和概念,l從軟件測試的歷史發(fā)展階段來把握。從軟件測試的歷史發(fā)展階段來把握。l從軟件工程的角度來把握。從軟件工程的角度來把握。l軟件測試的歷史和現(xiàn)狀,它的背景和意義。軟件測試的歷史和現(xiàn)狀,它的背景和意義。l軟件測試和軟件工程的聯(lián)系。軟件測試和軟件工程的聯(lián)系。l常見的軟件測試模型。常見的軟件測試模型。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試相關(guān)知識點相關(guān)知識點9知識點列表知識點列表l軟件測試l軟件工程南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試軟件測試10早期定義早期定義1.1.是證明軟件中不存在錯誤的過程是證明軟件中不存在錯誤的過程2.2.是確信程序做了它應(yīng)該做的事情是確信程序做了它應(yīng)該做的事情(Hetzel,1973)(Hetzel,1973)3.3.是為找出錯誤而運行程序或系統(tǒng)的過程是為找出錯誤而運行程序或系統(tǒng)的過程(Myers,1979)(Myers,1979)4.4.保證程序和相應(yīng)的規(guī)范說明一致。保證程序和相應(yīng)的規(guī)范說明一致。5.5.發(fā)現(xiàn)軟件中的缺陷。發(fā)現(xiàn)軟件中的缺陷。6.6.確保軟件不做不必要的事情。確保軟件不做不必要的事情。7.7.確保系統(tǒng)合理地執(zhí)行。確保系統(tǒng)合理地執(zhí)行。8.8.確保系統(tǒng)失敗前可以讓系統(tǒng)運行到何種程度確保系統(tǒng)失敗前可以讓系統(tǒng)運行到何種程度9.9.確保發(fā)布給用戶的系統(tǒng)中有哪些風(fēng)險。確保發(fā)布給用戶的系統(tǒng)中有哪些風(fēng)險。10.ISO900010.ISO9000定義:測試是一種基于機器的,對代碼執(zhí)行測試,確認測試的活動定義:測試是一種基于機器的,對代碼執(zhí)行測試,確認測試的活動 。11.11.對軟件質(zhì)量的度量對軟件質(zhì)量的度量(Hetzel,1983)(Hetzel,1983)12.12.驗證系統(tǒng)滿足需求,或確定實際結(jié)果與預(yù)期結(jié)果之間的區(qū)別驗證系統(tǒng)滿足需求,或確定實際結(jié)果與預(yù)期結(jié)果之間的區(qū)別13.13.確認程序正確實現(xiàn)了所要求的功能確認程序正確實現(xiàn)了所要求的功能南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試軟件測試11標(biāo)準(zhǔn)定義標(biāo)準(zhǔn)定義lIEEE軟件工程(1983)的定義:使用人工或者自動手段來運行或測試某個系統(tǒng)的過使用人工或者自動手段來運行或測試某個系統(tǒng)的過程程,其目的在于檢驗它。是否滿足規(guī)定的需求或弄其目的在于檢驗它。是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。它是幫助識別清預(yù)期結(jié)果與實際結(jié)果之間的差別。它是幫助識別開發(fā)完成(中間或最終的版本)的計算機軟件(整開發(fā)完成(中間或最終的版本)的計算機軟件(整體或部分)的正確度體或部分)的正確度(correctness)(correctness)、完全度、完全度(completeness)(completeness)和質(zhì)量和質(zhì)量(quality)(quality)的軟件過程;是的軟件過程;是SQA(software quality assurance)SQA(software quality assurance)的重要子域的重要子域南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試軟件測試12標(biāo)準(zhǔn)定義標(biāo)準(zhǔn)定義l軟件工程知識體系指南2004版 定義測試是為評價、改進產(chǎn)品質(zhì)量、標(biāo)識產(chǎn)品的缺陷和問測試是為評價、改進產(chǎn)品質(zhì)量、標(biāo)識產(chǎn)品的缺陷和問題而進行的活動。題而進行的活動。軟件測試由一個程序的行為在有限測試用例集合上,軟件測試由一個程序的行為在有限測試用例集合上,針對期望的行為的動態(tài)驗證組成,測試用例是從通常針對期望的行為的動態(tài)驗證組成,測試用例是從通常的無限執(zhí)行域中適當(dāng)選取的。的無限執(zhí)行域中適當(dāng)選取的。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件工程軟件工程13由來由來l北大西洋公約組織(NATO)在1968年舉辦了首次軟件工程學(xué)術(shù)會議并于會中提出“軟件工程”來界定軟件開發(fā)所需相關(guān)知識,并建議“軟件開發(fā)應(yīng)該是類似工程的活動”。l軟件工程自1968年正式提出至今,這段時間累積了大量的研究成果,廣泛地進行大量的技術(shù)實踐,借由學(xué)術(shù)界和產(chǎn)業(yè)界的共同努力,軟件工程正逐漸發(fā)展成為一門專業(yè)學(xué)科。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件工程軟件工程14定義定義lIEEEl在軟件工程術(shù)語匯編中的定義:軟件工程是:1.將系統(tǒng)化的、嚴(yán)格約束的、可量化的方法應(yīng)用于軟件的開發(fā)、運行和維護,即將工程化應(yīng)用于軟件;2.在1中所述方法的研究 lFritzBauerl在NATO會議上給出的定義:建立并使用完善的工程化原則,以較經(jīng)濟的手段獲得能在實際機器上有效運行的可靠軟件的一系列方法。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件工程軟件工程15定義定義l計算機科學(xué)技術(shù)百科全書計算機科學(xué)技術(shù)百科全書l軟件工程是研究和應(yīng)用如何以系統(tǒng)性的、規(guī)范化的、可定量的過程化方法去開發(fā)和維護軟件,以及如何把經(jīng)過時間考驗而證明正確的管理技術(shù)和當(dāng)前能夠得到的最好的技術(shù)方法結(jié)合起來 南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件工程軟件工程16核心知識核心知識l軟件需求(軟件需求(Software requirements)l 軟件設(shè)計(軟件設(shè)計(Software design)l 軟件建構(gòu)(軟件建構(gòu)(Software construction)l 軟件測試(軟件測試(Software test)l 軟件維護與更新(軟件維護與更新(Software maintenance)l 軟件構(gòu)型管理(軟件構(gòu)型管理(Software Configuration Management,SCM)l 軟件工程管理(軟件工程管理(Software Engineering Management)l 軟件開發(fā)過程(軟件開發(fā)過程(Software Development Process)l 軟件工程工具與方法(軟件工程工具與方法(Computer-Aided Software Engineering,CASE)l 軟件品質(zhì)(軟件品質(zhì)(Software Quality)南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施17步驟步驟l了解軟件測試的歷史發(fā)展過程和軟件測試的現(xiàn)狀l了解軟件測試與軟件工程各階段的聯(lián)系l了解軟件測試模型南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試的歷史發(fā)展過程軟件測試的歷史發(fā)展過程18發(fā)展階段發(fā)展階段1.1.軟件調(diào)試軟件調(diào)試2.2.獨立的軟件測試獨立的軟件測試3.3.定義軟件測試定義軟件測試4.4.軟件測試成為專門學(xué)科軟件測試成為專門學(xué)科5.5.開發(fā)與測試的融合開發(fā)與測試的融合南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試的現(xiàn)狀軟件測試的現(xiàn)狀19發(fā)展趨勢發(fā)展趨勢1.軟件測試技術(shù)進入快速發(fā)展軌道2.自動化軟件測試技術(shù)應(yīng)用越來越普遍3.測試技術(shù)不斷細分1.WEB應(yīng)用測試 2.手機軟件測試 3.嵌入式軟件測試4.安全測試5.可靠性測試南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試與軟件工程軟件測試與軟件工程20對應(yīng)關(guān)系對應(yīng)關(guān)系南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試模型軟件測試模型21對應(yīng)關(guān)系對應(yīng)關(guān)系lV模型lW模型lX模型lH模型l前置模型南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試模型軟件測試模型22V V模型模型南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試模型軟件測試模型23W W模型模型南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試模型軟件測試模型24X X模型模型南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試模型軟件測試模型25H H模型模型南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試模型軟件測試模型26前置模型前置模型南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)小結(jié)任務(wù)小結(jié)271 11.1.軟件測試的發(fā)展經(jīng)歷了從最初的軟件調(diào)試軟件測試的發(fā)展經(jīng)歷了從最初的軟件調(diào)試 獨立的獨立的軟件測試軟件測試 軟件測試定義的討論軟件測試定義的討論 軟件測試成為專門軟件測試成為專門的學(xué)科的學(xué)科 與軟件開發(fā)融合的發(fā)展歷程,目前軟件測與軟件開發(fā)融合的發(fā)展歷程,目前軟件測試進入了快速發(fā)展的軌道,自動化測試應(yīng)用廣泛,試進入了快速發(fā)展的軌道,自動化測試應(yīng)用廣泛,測試技術(shù)不斷細分。測試技術(shù)不斷細分。2.2.軟件測試與軟件開發(fā)的各階段是一一對應(yīng)的,且具軟件測試與軟件開發(fā)的各階段是一一對應(yīng)的,且具有和軟件開發(fā)并行的特性。有和軟件開發(fā)并行的特性。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)小結(jié)任務(wù)小結(jié)282 23.軟件測試模型的主要特點:lV V模型模型:反映了測試活動與分析設(shè)計的關(guān)系,清楚的描述了測試階反映了測試活動與分析設(shè)計的關(guān)系,清楚的描述了測試階段和開發(fā)過程期間各階段的對應(yīng)關(guān)系,但沒有明確的指出應(yīng)對軟段和開發(fā)過程期間各階段的對應(yīng)關(guān)系,但沒有明確的指出應(yīng)對軟件的需求、設(shè)計進行測試。件的需求、設(shè)計進行測試。lW W模型:強調(diào)了測試計劃等工作的先行和對系統(tǒng)需求和設(shè)計的測試,模型:強調(diào)了測試計劃等工作的先行和對系統(tǒng)需求和設(shè)計的測試,但無獨立的操作流程,受開發(fā)進度的制約。但無獨立的操作流程,受開發(fā)進度的制約。lX X模型:提出針對單獨的程序片段進行相互分離的編碼和測試模型:提出針對單獨的程序片段進行相互分離的編碼和測試,此此后通過頻繁的交接后通過頻繁的交接,通過集成最終合成為可執(zhí)行的程序。通過集成最終合成為可執(zhí)行的程序。lH H模型:體現(xiàn)了軟件測試模型是一個獨立的流程,貫穿與整個產(chǎn)品模型:體現(xiàn)了軟件測試模型是一個獨立的流程,貫穿與整個產(chǎn)品周期,與其他流程并發(fā)進行。周期,與其他流程并發(fā)進行。l前置模型:是前置模型:是“測試驅(qū)動開發(fā)測試驅(qū)動開發(fā)”的映射。前置測試模型結(jié)合了傳的映射。前置測試模型結(jié)合了傳統(tǒng)的統(tǒng)的模型和模型和測試模型特點,把軟件測試的工作提早至對需求測試模型特點,把軟件測試的工作提早至對需求獲取階段,提高了軟件測試的效率獲取階段,提高了軟件測試的效率南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試拓展訓(xùn)練拓展訓(xùn)練29進一步練習(xí)進一步練習(xí)1、進一步了解并簡述軟件測試定義的演變過程,和測試意義的演變2、進一步了解并簡述軟件開發(fā)的幾個模式,并說明每種模式對軟件測試的影響。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)二:軟件質(zhì)量的概念及質(zhì)量保證體系任務(wù)二:軟件質(zhì)量的概念及質(zhì)量保證體系任務(wù)二:軟件質(zhì)量的概念及質(zhì)量保證體系任務(wù)二:軟件質(zhì)量的概念及質(zhì)量保證體系30 任務(wù)簡介 任務(wù)分析 相關(guān)知識點 任務(wù)實施 任務(wù)小結(jié) 拓展訓(xùn)練南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介31簡介簡介l了解軟件質(zhì)量管理。了解軟件質(zhì)量管理。l了解軟件能力成熟度模型了解軟件能力成熟度模型l了解軟件測試成熟度模型了解軟件測試成熟度模型南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析32l通常在一般的中小企業(yè)中會不將軟件測試與軟件質(zhì)量通常在一般的中小企業(yè)中會不將軟件測試與軟件質(zhì)量保證加以細分,軟件測試人員也叫做質(zhì)量保證人員即保證加以細分,軟件測試人員也叫做質(zhì)量保證人員即QAQA,但是軟件測試和軟件質(zhì)量保證是軟件質(zhì)量工程的,但是軟件測試和軟件質(zhì)量保證是軟件質(zhì)量工程的兩個不同層面的工作,兩者既有聯(lián)系,又有區(qū)別。兩個不同層面的工作,兩者既有聯(lián)系,又有區(qū)別。l質(zhì)量保證(質(zhì)量保證(QAQA)是通過預(yù)防,檢查與改進來保證軟件)是通過預(yù)防,檢查與改進來保證軟件質(zhì)量的質(zhì)量的l軟件測試關(guān)注的不是過程活動,而是每個過程活動的軟件測試關(guān)注的不是過程活動,而是每個過程活動的產(chǎn)出物產(chǎn)出物南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試相關(guān)知識點相關(guān)知識點33知識點列表知識點列表l軟件缺陷l軟件可靠性l軟件質(zhì)量南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件缺陷軟件缺陷34定義定義l從產(chǎn)品內(nèi)部看,缺陷是軟件產(chǎn)品開發(fā)或維護過程中存在的錯誤、毛病等各種問題;從產(chǎn)品外部看,缺陷是系統(tǒng)所需要實現(xiàn)的某種功能的失效或違背。l表現(xiàn):1、軟件沒有實現(xiàn)產(chǎn)品規(guī)格說明所要求的功能模塊2、軟件中出現(xiàn)了產(chǎn)品規(guī)格說明指明不應(yīng)該出現(xiàn)的錯誤3、軟件實現(xiàn)了產(chǎn)品規(guī)格說明沒有提到的功能模塊4、軟件沒有實現(xiàn)雖然產(chǎn)品規(guī)格說明沒有明確提及但應(yīng)該實現(xiàn)的目標(biāo);5、軟件難以理解,不容易使用,運行緩慢,或從測試員的角度看,最終用戶會認為不好。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件缺陷軟件缺陷35產(chǎn)生的原因產(chǎn)生的原因l軟件本身軟件本身l團隊工作團隊工作l技術(shù)問題技術(shù)問題l項目管理的問題項目管理的問題南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件缺陷軟件缺陷36修復(fù)成本修復(fù)成本l問題發(fā)現(xiàn)的越早越好南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件可靠性軟件可靠性371 1l軟件可靠性比硬件可靠性更難保證軟件可靠性比硬件可靠性更難保證l即使是美國宇航局的軟件系統(tǒng),其可靠性仍比硬即使是美國宇航局的軟件系統(tǒng),其可靠性仍比硬件可靠性低一個數(shù)量級。件可靠性低一個數(shù)量級。l影響軟件可靠性的因素影響軟件可靠性的因素1.需求分析定義錯誤。需求分析定義錯誤。2.設(shè)計錯誤。設(shè)計錯誤。3.編碼錯誤。編碼錯誤。4.測試錯誤。測試錯誤。5.文檔錯誤。文檔錯誤。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件可靠性軟件可靠性382 2l軟件可靠性定義軟件可靠性定義(1)在規(guī)定的條件下,在規(guī)定的時間內(nèi),軟件不引起系統(tǒng)失效的概率;(2)在規(guī)定的時間周期內(nèi),在所述條件下程序執(zhí)行所要求的功能的能力;南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件質(zhì)量軟件質(zhì)量39影響質(zhì)量的因素影響質(zhì)量的因素l正確性、健壯性、效率、完整性、可用性、風(fēng)險(產(chǎn)正確性、健壯性、效率、完整性、可用性、風(fēng)險(產(chǎn)品運行);品運行);l可理解性、可維修性、靈活性、可測試性(產(chǎn)品修改)可理解性、可維修性、靈活性、可測試性(產(chǎn)品修改);l可移植性、可再用性、互運行性(產(chǎn)品轉(zhuǎn)移)??梢浦残浴⒖稍儆眯?、互運行性(產(chǎn)品轉(zhuǎn)移)。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件質(zhì)量軟件質(zhì)量40標(biāo)準(zhǔn)標(biāo)準(zhǔn)l軟件需求是度量軟件質(zhì)量的基礎(chǔ),與需求不一致就是軟件需求是度量軟件質(zhì)量的基礎(chǔ),與需求不一致就是質(zhì)量不高。質(zhì)量不高。l指定的標(biāo)準(zhǔn)定義了一組指導(dǎo)軟件開發(fā)的準(zhǔn)則,如果沒指定的標(biāo)準(zhǔn)定義了一組指導(dǎo)軟件開發(fā)的準(zhǔn)則,如果沒有遵守這些準(zhǔn)則,幾乎肯定會導(dǎo)致質(zhì)量不高。有遵守這些準(zhǔn)則,幾乎肯定會導(dǎo)致質(zhì)量不高。l如果軟件滿足明確描述的需求,但卻不滿足隱含的需如果軟件滿足明確描述的需求,但卻不滿足隱含的需求,那么軟件的質(zhì)量仍然是值得懷疑的。求,那么軟件的質(zhì)量仍然是值得懷疑的。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施41步驟步驟l了解軟件質(zhì)量管理l了解軟件能力成熟度模型l了解軟件測試成熟度模型南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件質(zhì)量管理軟件質(zhì)量管理42質(zhì)量管理過程質(zhì)量管理過程l質(zhì)量計劃l質(zhì)量保證l質(zhì)量控制南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件能力成熟度模型軟件能力成熟度模型43CMM/CMMICMM/CMMIlCMM/CMMI是目前國際上最流行、最實用的一種軟件生產(chǎn)過程標(biāo)準(zhǔn)l美國卡內(nèi)基梅隆大學(xué)軟件工程研究所(CMU SEI)提出l分為5個等級l初始級(initial)l可重復(fù)級(Repeatable)l已定義級(Defined)l已管理級(Managed)l優(yōu)化級(Optimizing)南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試成熟度模型軟件測試成熟度模型44TMMTMMl美國的伊利諾斯州技術(shù)學(xué)院參照CMM開發(fā)了TMM(Testing Maturity Model),作為CMM的補充l一個試圖達到TMM特定等級的企業(yè)必須至少達到同樣的CMM等級l分為5個等級l初始級l定義級l集成級l管理和測量級l 優(yōu)化,預(yù)防缺陷和質(zhì)量控制級南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)小結(jié)任務(wù)小結(jié)451.1.2020世紀(jì)世紀(jì)9090年代中期以后,人們對軟件測試的認識也年代中期以后,人們對軟件測試的認識也不斷得到發(fā)展。不斷得到發(fā)展。2.2.美國卡耐基美國卡耐基-梅隆大學(xué)軟件工程研究所梅隆大學(xué)軟件工程研究所(SEI)(SEI)研制并研制并推出了推出了CMMCMM,該模型逐漸成為了評估軟件開發(fā)過程,該模型逐漸成為了評估軟件開發(fā)過程的管理以及工程能力的標(biāo)準(zhǔn)。的管理以及工程能力的標(biāo)準(zhǔn)。3.3.BurnsteinBurnstein博士提出的博士提出的TMMTMM,依據(jù),依據(jù)CMMCMM的框架提出測的框架提出測試的五個不同級別,關(guān)注于測試的成熟度模型。試的五個不同級別,關(guān)注于測試的成熟度模型。TMMTMM描述了測試過程,是項目測試部分得到良好計描述了測試過程,是項目測試部分得到良好計劃和控制的基礎(chǔ)。劃和控制的基礎(chǔ)。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試拓展訓(xùn)練拓展訓(xùn)練46進一步練習(xí)進一步練習(xí)1、進一步了解并簡述軟件質(zhì)量管理中軟件質(zhì)量保證和軟件質(zhì)量控制之間的區(qū)別和聯(lián)系。2、進一步了解并簡述軟件測試在軟件質(zhì)量管理中的作用。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)三:軟件測試的分類、原則和流程任務(wù)三:軟件測試的分類、原則和流程任務(wù)三:軟件測試的分類、原則和流程任務(wù)三:軟件測試的分類、原則和流程47 任務(wù)簡介 任務(wù)分析 相關(guān)知識點 任務(wù)實施 任務(wù)小結(jié) 拓展訓(xùn)練南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介48l了解軟件測試的分類。l了解軟件測試的原則l了解軟件測試的流程南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析49分析分析l軟件測試有很多種分類方法,前人也總結(jié)出了許多軟件測試的原則。l此外,作為第一章的最后一部分我們將要真正了解軟件測試的整個流程,了解軟件測試的全過程。并真正實施一次軟件測試。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試相關(guān)知識點相關(guān)知識點50知識點列表知識點列表l測試用例l測試環(huán)境南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試測試用例測試用例51定義定義l測試用例(Test Case)是為某個特殊目標(biāo)而編制的一組測試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測試某個程序路徑或核實是否滿足某個特定需求。l測試用例=輸入+輸出+測試環(huán)境南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試測試用例測試用例52重要性重要性l技術(shù)層面l指導(dǎo)測試的實施l規(guī)劃測試數(shù)據(jù)的準(zhǔn)備l編寫測試腳本的“設(shè)計規(guī)格說明書”l降低工作強度l管理層面l團隊交流l重復(fù)測試l檢驗測試員進度l質(zhì)量評估l分析缺陷的標(biāo)準(zhǔn)南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試測試用例測試用例53評價標(biāo)準(zhǔn)評價標(biāo)準(zhǔn)l有效性l經(jīng)濟性l可仿效性l可修改性l獨立性l可跟蹤性南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試測試用例測試用例54設(shè)計基本原則設(shè)計基本原則l代表性l可判定性l可再生性南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試測試環(huán)境測試環(huán)境551 1l定義l測試環(huán)境就是軟件運行的平臺,即進行軟件測試所必需的工作平臺和前提條件,可用如下公式來表示。l測試環(huán)境=硬件+軟件+網(wǎng)絡(luò)+歷史數(shù)據(jù)l重要性l加快測試進度l準(zhǔn)確重現(xiàn)缺陷l提高工作效率和軟件質(zhì)量南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試測試環(huán)境測試環(huán)境562 2l良好測試環(huán)境的要素l好的測試模型。l多樣化的系統(tǒng)配置l熟練使用工具的測試員l測試環(huán)境的規(guī)劃l明確8個問題l指定責(zé)任人南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試測試環(huán)境測試環(huán)境573 3l測試環(huán)境的維護和管理l設(shè)置專門的測試環(huán)境管理員角色l明確測試環(huán)境管理所需的各種文檔l測試環(huán)境訪問權(quán)限的管理l測試環(huán)境的變更管理 l測試環(huán)境的備份和恢復(fù)南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施58l了解軟件測試的分類l了解軟件測試的原則l了解軟件測試的流程南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試的分類軟件測試的分類591 1l按是否需要執(zhí)行被測軟件的角度l靜態(tài)測試l動態(tài)測試l按階段劃分l單元測試l集成測試 l系統(tǒng)測試l驗收測試l回歸測試lAlpha 測試lBeta 測試南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試的分類軟件測試的分類602 2l按測試方法劃分l白盒測試l黑盒測試l灰盒測試南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試的原則軟件測試的原則611 1l原則1:測試顯示缺陷的存在l原則2:窮盡測試是不可能的l原則3:測試的盡早介入l原則4:缺陷的集群性l原則5:殺蟲劑悖論l原則6:測試活動依賴于測試內(nèi)容南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試的原則軟件測試的原則622 2l原則7:沒有失效不代表系統(tǒng)是可用的l原則8:測試的標(biāo)準(zhǔn)是用戶的需求l原則9:盡早定義產(chǎn)品的質(zhì)量標(biāo)準(zhǔn)l原則10:測試貫穿于整個生命周期l原則11:第三方或獨立的測試團隊南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試軟件測試的流程軟件測試的流程63l需求分析階段。l測試計劃制定l測試設(shè)計l執(zhí)行測試l測試分析報告南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)小結(jié)任務(wù)小結(jié)641 11.1.軟件測試涉及技術(shù)和管理兩個層面的工作,看似頭軟件測試涉及技術(shù)和管理兩個層面的工作,看似頭緒紛繁,實際只要了解測試的主線,就能清楚了解緒紛繁,實際只要了解測試的主線,就能清楚了解每個階段不同角色的職責(zé)。每個階段不同角色的職責(zé)。2.2.本任務(wù)主要從宏觀上來介紹軟件測試的各個角度的本任務(wù)主要從宏觀上來介紹軟件測試的各個角度的分類,軟件測試的原則和軟件測試的流程分類,軟件測試的原則和軟件測試的流程南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試拓展訓(xùn)練拓展訓(xùn)練65進一步練習(xí)進一步練習(xí)1、進一步了解并簡述冒煙測試和隨機測試的含義和應(yīng)用場合2、進一步了解并簡述軟件測試工程師的素質(zhì)要求。國家教學(xué)資源庫建設(shè)項目國家教學(xué)資源庫建設(shè)項目單元單元2 白盒測試白盒測試 對圖形識別系統(tǒng)的測試對圖形識別系統(tǒng)的測試 主講人主講人 翁英萍翁英萍南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試學(xué)習(xí)導(dǎo)航學(xué)習(xí)導(dǎo)航2南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試本單元任務(wù)分解本單元任務(wù)分解3任務(wù)一:對圖形識別系統(tǒng)的程序片段按照 邏輯覆蓋方法編寫測試用例 任務(wù)二:對圖形識別系統(tǒng)的程序片段進行 路徑測試 任務(wù)三:掌握白盒測試法的應(yīng)用策略建議課時:建議課時:8課時課時 南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試本單元各任務(wù)的教學(xué)過程本單元各任務(wù)的教學(xué)過程4 項目概述任務(wù)一任務(wù)二任務(wù)三 南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試項目概述項目概述5引例引例l 如何清理面包機?如何清理面包機?l不管內(nèi)部,拿水從入口往下灌著沖洗不管內(nèi)部,拿水從入口往下灌著沖洗l將面包機拆開一點點的查看有無銹跡污跡,逐個將面包機拆開一點點的查看有無銹跡污跡,逐個清理清理 l白盒測試白盒測試 測試者針對可見代碼進行的測試者針對可見代碼進行的一種測試一種測試 南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試項目概述項目概述6常用白盒測試方法常用白盒測試方法l邏輯覆蓋邏輯覆蓋l是通過對程序邏輯結(jié)構(gòu)的遍歷實現(xiàn)程序的覆蓋l路徑測試法路徑測試法l在程序控制流圖的基礎(chǔ)上,通過分析控制流圖的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑的集合,然后據(jù)此設(shè)計測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試項目概述項目概述7待測程序說明待測程序說明l圖形識別系統(tǒng)圖形識別系統(tǒng)l根據(jù)輸入的信息確定最終圖形的種類根據(jù)輸入的信息確定最終圖形的種類l主要測試的程序片段主要測試的程序片段-三角形問題三角形問題l接受輸入三個整數(shù)接受輸入三個整數(shù)a a、b b、c c,分別作為三角形的三條邊,通,分別作為三角形的三條邊,通過程序判斷這三條邊是否能構(gòu)成三角形?如果能構(gòu)成三角形,過程序判斷這三條邊是否能構(gòu)成三角形?如果能構(gòu)成三角形,則判斷三角形的類型(等邊三角形、等腰三角形、一般三角則判斷三角形的類型(等邊三角形、等腰三角形、一般三角形)。要求輸入三個整數(shù)形)。要求輸入三個整數(shù)a a、b b、c c,必須滿足以下條件:,必須滿足以下條件:1a2001a200;1b2001b200;1c2001c200。l本項目主要針對該程序片段根據(jù)白盒測試的各種要求本項目主要針對該程序片段根據(jù)白盒測試的各種要求編寫測試用例。編寫測試用例。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)一:邏輯覆蓋測試任務(wù)一:邏輯覆蓋測試8 任務(wù)簡介 任務(wù)分析 相關(guān)知識點 任務(wù)實施 任務(wù)小結(jié) 拓展訓(xùn)練南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介9任務(wù)簡介任務(wù)簡介l對圖形識別系統(tǒng)的程序片段按照邏輯覆蓋方法編寫測對圖形識別系統(tǒng)的程序片段按照邏輯覆蓋方法編寫測試用例試用例void IsTri(int a,int b,int c)1if(a+b=c)|(a+c=b)|(b+c=a)2printf(不能構(gòu)成三角形);3else4if(a=b)|(b=c)|(a=c)5if(a=b)&(b=c)6printf(等邊三角形);7else8printf(等腰三角形);910else11printf(一般三角形);南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析10任務(wù)準(zhǔn)備任務(wù)準(zhǔn)備一、理解白盒測試和邏輯覆蓋測試的特點一、理解白盒測試和邏輯覆蓋測試的特點l白盒測試:針對被測軟件的內(nèi)部是如何進行工作白盒測試:針對被測軟件的內(nèi)部是如何進行工作的測試的測試l邏輯覆蓋:關(guān)注點在于條件判定表達式本身的復(fù)邏輯覆蓋:關(guān)注點在于條件判定表達式本身的復(fù)雜度雜度二、程序的邏輯結(jié)構(gòu)二、程序的邏輯結(jié)構(gòu)l流程圖流程圖l判斷條件判斷條件l執(zhí)行路徑執(zhí)行路徑南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析11程序代碼程序代碼void IsTri(int a,int b,int c)1if(a+b=c)|(a+c=b)|(b+c=a)2printf(不能構(gòu)成三角形不能構(gòu)成三角形);3else4if(a=b)|(b=c)|(a=c)5if(a=b)&(b=c)6printf(等邊三角形等邊三角形);7else8printf(等腰三角形等腰三角形);910else11printf(一般三角形一般三角形);南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析12流程圖流程圖/判斷條件判斷條件/執(zhí)行路徑執(zhí)行路徑T1:a+b=cT2:a+c=bT3:b+c1b3TTTTTFTFFTFTFFFF28例例l寫出每個條件組合寫出每個條件組合l寫出條件組合的真值表寫出條件組合的真值表l據(jù)此寫出測試用例據(jù)此寫出測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正條件判定覆蓋修正條件判定覆蓋29定義定義l修正判定條件覆蓋單元的入口與出口必須至少被調(diào)用修正判定條件覆蓋單元的入口與出口必須至少被調(diào)用一次,程序中判斷的每一個分支必須至少被執(zhí)行一次。一次,程序中判斷的每一個分支必須至少被執(zhí)行一次。對于程序中通過邏輯運算對于程序中通過邏輯運算(AND(AND,OROR等等)組成判斷的基本組成判斷的基本布爾條件,每個條件必須取遍所有可能的值且每一個布爾條件,每個條件必須取遍所有可能的值且每一個條件對判斷的結(jié)果具有獨立的作用。條件對判斷的結(jié)果具有獨立的作用。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正條件判定覆蓋修正條件判定覆蓋30例例a1b1 and b2TTTTFFFTFFFF南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施31步驟步驟l實現(xiàn)案例的語句覆蓋測試用例編寫實現(xiàn)案例的語句覆蓋測試用例編寫l實現(xiàn)案例的判定覆蓋測試用例編寫實現(xiàn)案例的判定覆蓋測試用例編寫l實現(xiàn)案例的條件覆蓋測試用例編寫實現(xiàn)案例的條件覆蓋測試用例編寫l實現(xiàn)案例的條件實現(xiàn)案例的條件/判定覆蓋測試用例編寫判定覆蓋測試用例編寫l實現(xiàn)案例的條件組合覆蓋測試用例編寫實現(xiàn)案例的條件組合覆蓋測試用例編寫l實現(xiàn)案例的修正的條件實現(xiàn)案例的修正的條件/判定覆蓋測試用例編寫判定覆蓋測試用例編寫南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試語句覆蓋實現(xiàn)語句覆蓋實現(xiàn)32說明說明l語句覆蓋:保證程序的每一條可執(zhí)行語句至少執(zhí)行一語句覆蓋:保證程序的每一條可執(zhí)行語句至少執(zhí)行一次次l案例流程圖案例流程圖l要滿足語句覆蓋,每個路徑均需執(zhí)行要滿足語句覆蓋,每個路徑均需執(zhí)行南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試語句覆蓋實現(xiàn)語句覆蓋實現(xiàn)ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑語句覆語句覆蓋率蓋率abcLC-001324一般三角形一般三角形路徑路徑1100%LC-002223等腰三角形等腰三角形路徑路徑2LC-003222等邊三角形等邊三角形路徑路徑3LC-004124不是三角形不是三角形路徑路徑433測試用例測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試語句覆蓋實現(xiàn)語句覆蓋實現(xiàn)34測試分析測試分析l優(yōu)點:優(yōu)點:l可以直觀地從源代碼得到測試用例,無需仔細分可以直觀地從源代碼得到測試用例,無需仔細分析每個判定節(jié)點析每個判定節(jié)點l缺點:缺點:1.1.關(guān)注語句而非判定節(jié)點關(guān)注語句而非判定節(jié)點2.2.邏輯判定條件存在屏蔽作用邏輯判定條件存在屏蔽作用3.3.對隱式分支無效對隱式分支無效南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試判定覆蓋實現(xiàn)判定覆蓋實現(xiàn)35說明說明l判定覆蓋:保證程序中每個判定節(jié)點的取真和取假分判定覆蓋:保證程序中每個判定節(jié)點的取真和取假分支至少執(zhí)行一次。支至少執(zhí)行一次。l案例流程圖案例流程圖l從本例來看,由于每種判定取真和取假分支都有獨立從本例來看,由于每種判定取真和取假分支都有獨立的語句,因此,對本例來說,判定覆蓋和語句覆蓋的的語句,因此,對本例來說,判定覆蓋和語句覆蓋的要求一致要求一致南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試判定覆蓋實現(xiàn)判定覆蓋實現(xiàn)ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑判定覆蓋判定覆蓋率率abcLC-001324一般三角形一般三角形路徑路徑1100%LC-002223等腰三角形等腰三角形路徑路徑2LC-003222等邊三角形等邊三角形路徑路徑3LC-004124不是三角形不是三角形路徑路徑436測試用例測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試判定覆蓋實現(xiàn)判定覆蓋實現(xiàn)37測試分析測試分析l判定覆蓋比語句覆蓋有更強的測試能力判定覆蓋比語句覆蓋有更強的測試能力l單分支條件結(jié)構(gòu):判定覆蓋比語句覆蓋會增加幾乎一倍的測單分支條件結(jié)構(gòu):判定覆蓋比語句覆蓋會增加幾乎一倍的測試路徑。試路徑。l雙分支或多分支條:判定覆蓋和語句覆蓋測試路徑類似或相雙分支或多分支條:判定覆蓋和語句覆蓋測試路徑類似或相同。同。l判定覆蓋不需要仔細分析每個判定節(jié)點。并未深入到判定覆蓋不需要仔細分析每個判定節(jié)點。并未深入到測試符合判定表達式的細節(jié),并未測試到每個簡單邏測試符合判定表達式的細節(jié),并未測試到每個簡單邏輯判定條件的正確性輯判定條件的正確性l判定覆蓋能夠避免語句覆蓋的第判定覆蓋能夠避免語句覆蓋的第3 3個缺點個缺點(對隱式分支對隱式分支無效無效)。但仍然不能避免其余的。但仍然不能避免其余的2 2個缺點。個缺點。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件覆蓋實現(xiàn)條件覆蓋實現(xiàn)38說明說明l條件覆蓋:保證程序中每個復(fù)合判定表達式的每個簡條件覆蓋:保證程序中每個復(fù)合判定表達式的每個簡單判定條件的取真和取假情況至少執(zhí)行一次。單判定條件的取真和取假情況至少執(zhí)行一次。l案例流程圖和條件表達式案例流程圖和條件表達式l從本例來看,要滿足條件覆蓋,就是要使得基本邏輯從本例來看,要滿足條件覆蓋,就是要使得基本邏輯判定條件判定條件T1T6T1T6的取真和取假分支至少執(zhí)行一次的取真和取假分支至少執(zhí)行一次南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件覆蓋實現(xiàn)條件覆蓋實現(xiàn)組組合合T1T2T3T1|T2|T3T4T5T6T4|T5|T6T4&T5通過路通過路徑徑1TFFT路徑路徑42FTFT路徑路徑43FFTT路徑路徑44FFFFTTTTT路徑路徑35FFFFFFFFF路徑路徑139條件取值條件取值南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件覆蓋實現(xiàn)條件覆蓋實現(xiàn)40測試用例測試用例ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑條件覆條件覆蓋率蓋率abcLC-004124不是三角形不是三角形路徑路徑4100%LC-005142不是三角形不是三角形路徑路徑4LC-006412不是三角形不是三角形路徑路徑4LC-003222等邊三角形等邊三角形路徑路徑3LC-001324一般三角形一般三角形路徑路徑1南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件覆蓋實現(xiàn)條件覆蓋實現(xiàn)41測試分析測試分析l條件覆蓋通過仔細分析每個判定節(jié)點,增加了測試路條件覆蓋通過仔細分析每個判定節(jié)點,增加了測試路徑,一定程度上解決了語句覆蓋和判定覆蓋的第徑,一定程度上解決了語句覆蓋和判定覆蓋的第1 1、3 3兩個缺點,但是對于第兩個缺點,但是對于第2 2個缺點仍然無法解決。個缺點仍然無法解決。l條件覆蓋所用的測試用例,一般而言會多于語句覆蓋條件覆蓋所用的測試用例,一般而言會多于語句覆蓋和判定覆蓋,但是滿足了條件覆蓋,不一定能滿足判和判定覆蓋,但是滿足了條件覆蓋,不一定能滿足判定覆蓋,甚至也不能滿足語句覆蓋,正如本例所示就定覆蓋,甚至也不能滿足語句覆蓋,正如本例所示就是如此。是如此。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件條件/判定覆蓋實現(xiàn)判定覆蓋實現(xiàn)42說明說明l條件條件/判定語句覆蓋:保證程序的每一個判定節(jié)點取判定語句覆蓋:保證程序的每一個判定節(jié)點取真和取假分支至少執(zhí)行一次,且每個簡單判定條件的真和取假分支至少執(zhí)行一次,且每個簡單判定條件的取真和取假也至少執(zhí)行一次。取真和取假也至少執(zhí)行一次。l案例流程圖和條件表達式案例流程圖和條件表達式l從本例來看,要滿足條件從本例來看,要滿足條件/判定覆蓋,只需要結(jié)合上判定覆蓋,只需要結(jié)合上面的條件覆蓋測試用例和判定覆蓋測試用例即可。面的條件覆蓋測試用例和判定覆蓋測試用例即可。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件條件/判定覆蓋實現(xiàn)判定覆蓋實現(xiàn)ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑條件條件/判判定覆蓋率定覆蓋率abcLC-001324一般三角形一般三角形路徑路徑1100%LC-002223等腰三角形等腰三角形路徑路徑2LC-003222等邊三角形等邊三角形路徑路徑3LC-004124不是三角形不是三角形路徑路徑4LC-005142不是三角形不是三角形路徑路徑4LC-006412不是三角形不是三角形路徑路徑443測試用例測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件條件/判定覆蓋實現(xiàn)判定覆蓋實現(xiàn)44測試分析測試分析l理論上看,判定理論上看,判定/條件覆蓋是較為完善的覆蓋指標(biāo),條件覆蓋是較為完善的覆蓋指標(biāo),它彌補了判定覆蓋和條件覆蓋的不足,但該指標(biāo)包含它彌補了判定覆蓋和條件覆蓋的不足,但該指標(biāo)包含的設(shè)計工作量較大,且需要較好的設(shè)計技巧的設(shè)計工作量較大,且需要較好的設(shè)計技巧南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實現(xiàn)條件組合覆蓋實現(xiàn)45說明說明l條件組合覆蓋:保證程序的每個判定節(jié)點中所有簡單條件組合覆蓋:保證程序的每個判定節(jié)點中所有簡單判定條件的各種可能取值的組合應(yīng)至少執(zhí)行一次。判定條件的各種可能取值的組合應(yīng)至少執(zhí)行一次。l案例流程圖和條件表達式案例流程圖和條件表達式l從本例來看,一共有從本例來看,一共有3 3個判定節(jié)點,其中第個判定節(jié)點,其中第2 2個判定節(jié)個判定節(jié)點包含了第點包含了第3 3個判定節(jié)點的簡單判定條件。因此我們只個判定節(jié)點的簡單判定條件。因此我們只需考慮前兩個判定節(jié)點的簡單判定條件的組合。需考慮前兩個判定節(jié)點的簡單判定條件的組合。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實現(xiàn)條件組合覆蓋實現(xiàn)46條件條件T1T3T1T3的組合的組合組合組合T1T2T3T1|T2|T3通過路徑通過路徑說明說明1TFFT路徑42FTFT路徑43FFTT路徑44FTT-不可能5TFT-不可能6TTF-不可能7TTT-不可能8FFFF其他路徑南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實現(xiàn)條件組合覆蓋實現(xiàn)47條件條件T4T6T4T6的組合的組合組合組合T4T5T6T4|T5|T6T4&T5通過路通過路徑徑說明說明1TFFTF路徑2T1T3為F2FTFTF路徑2T1T3為F3FFTTF路徑2T1T3為F4FTT-不可能5TFT-不可能6TTF-不可能7TTTTT路徑3T1T3為F8FFFFF路徑1T1T3為F南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實現(xiàn)條件組合覆蓋實現(xiàn)48最終條件組合最終條件組合組合組合 T1T2T3T1|T2|T3T4T5T6T4|T5|T6T4&T5通過路通過路徑徑1TFFT路徑路徑42FTFT路徑路徑43FFTT路徑路徑44FFFFTTTTT路徑路徑35FFFFFFFFF路徑路徑16FFFFTFFTF路徑路徑27FFFFFTFTF路徑路徑28FFFFFFTTF路徑路徑2南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實現(xiàn)條件組合覆蓋實現(xiàn)ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑組合覆蓋組合覆蓋率率abcLC-004124不是三角形不是三角形路徑路徑4100%LC-005142不是三角形不是三角形路徑路徑4LC-006412不是三角形不是三角形路徑路徑4LC-003222等邊三角形等邊三角形路徑路徑3LC-001324一般三角形一般三角形路徑路徑1LC-002223等腰三角形等腰三角形路徑路徑2LC-007322等腰三角形等腰三角形路徑路徑2LC-008232等腰三角形等腰三角形路徑路徑249測試用例測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試條件組合覆蓋實現(xiàn)條件組合覆蓋實現(xiàn)50測試分析測試分析l從理論上看,條件組合覆蓋是較好的覆蓋指標(biāo),因為從理論上看,條件組合覆蓋是較好的覆蓋指標(biāo),因為它一定滿足判定覆蓋、條件覆蓋和判定它一定滿足判定覆蓋、條件覆蓋和判定/條件覆蓋。條件覆蓋。l然而當(dāng)判定表達式較為復(fù)雜的時候,條件組合覆蓋的然而當(dāng)判定表達式較為復(fù)雜的時候,條件組合覆蓋的測試用例規(guī)模是相當(dāng)大的。測試用例規(guī)模是相當(dāng)大的。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋51說明說明l修正條件判定覆蓋(修正條件判定覆蓋(Modified Condition/Decision Modified Condition/Decision CoverageCoverage),簡稱),簡稱MC/DCMC/DC,要求在滿足判定,要求在滿足判定/條件覆蓋條件覆蓋的基礎(chǔ)上,每個簡單邏輯判定條件都應(yīng)能夠獨立影響的基礎(chǔ)上,每個簡單邏輯判定條件都應(yīng)能夠獨立影響整個判定表達式。整個判定表達式。l案例流程圖和條件表達式案例流程圖和條件表達式南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋52說明說明l通俗的說,通俗的說,MC/DCMC/DC首先要求實現(xiàn)條件覆蓋、判定覆蓋,首先要求實現(xiàn)條件覆蓋、判定覆蓋,在此基礎(chǔ)上,對于每一個條件在此基礎(chǔ)上,對于每一個條件C C,要求存在符合以下條,要求存在符合以下條件的兩個用例:件的兩個用例:1 1)條件)條件C C所在判定內(nèi)的所有條件,除條件所在判定內(nèi)的所有條件,除條件C C外,其外,其他條件的取值完全相同;他條件的取值完全相同;2 2)條件)條件C C的取值相反;的取值相反;3 3)判定的計算結(jié)果相反。)判定的計算結(jié)果相反。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋53條件條件T1T3T1T3的組合的組合組合組合T1T2T3T1|T2|T3通過路徑通過路徑說明說明1TFFT路徑42FTFT路徑43FFTT路徑44FTT-不可能5TFT-不可能6TTF-不可能7TTT-不可能8FFFF其他路徑T1:組合1,組合8T2:組合2,組合8T3:組合3,組合8南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋54條件條件T4T6T4T6的組合的組合組合組合T4T5T6T4|T5|T6T4&T5通過路通過路徑徑說明說明1TFFTF路徑2T1T3為F2FTFTF路徑2T1T3為F3FFTTF路徑2T1T3為F4FTT-不可能5TFT-不可能6TTF-不可能7TTTTT路徑3T1T3為F8FFFFF路徑1T1T3為FT4|T5|T6:組合1、2、3與組合8T4&T5:組合1、2和組合7南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋ID輸入輸入預(yù)期輸出預(yù)期輸出通過路通過路徑徑MC/DC覆蓋率覆蓋率abcLC-004124不是三角形不是三角形路徑路徑4100%LC-005142不是三角形不是三角形路徑路徑4LC-006412不是三角形不是三角形路徑路徑4LC-003222等邊三角形等邊三角形路徑路徑3LC-001324一般三角形一般三角形路徑路徑1LC-002223等腰三角形等腰三角形路徑路徑2LC-007322等腰三角形等腰三角形路徑路徑2LC-008232等腰三角形等腰三角形路徑路徑255測試用例測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試修正的條件修正的條件/判定覆蓋判定覆蓋56測試分析測試分析l修正判定修正判定/條件覆蓋繼承了條件組合覆蓋的優(yōu)點:條件覆蓋繼承了條件組合覆蓋的優(yōu)點:1 1、測試用例數(shù)量的增加是線性的、測試用例數(shù)量的增加是線性的2 2、對操作數(shù)及非等式條件變化反應(yīng)敏感、對操作數(shù)及非等式條件變化反應(yīng)敏感3 3、具有更高的目標(biāo)碼覆蓋率、具有更高的目標(biāo)碼覆蓋率l修正的判定修正的判定/條件覆蓋通過消除測試用例之間的冗余,條件覆蓋通過消除測試用例之間的冗余,達到降低測試用例規(guī)模的目的,但其分析過程仍然是達到降低測試用例規(guī)模的目的,但其分析過程仍然是較為繁瑣的。較為繁瑣的。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)小結(jié)任務(wù)小結(jié)571 11.1.邏輯覆蓋主要針對邏輯判定表達式展開測試,考查邏輯覆蓋主要針對邏輯判定表達式展開測試,考查程序代碼中所有邏輯值均需測試真值和假值的情況程序代碼中所有邏輯值均需測試真值和假值的情況2.2.邏輯覆蓋主要包括邏輯覆蓋主要包括6 6個指標(biāo),按照由弱到強依次為:個指標(biāo),按照由弱到強依次為:l語句覆蓋語句覆蓋l判定覆蓋判定覆蓋l條件覆蓋條件覆蓋l判定判定/條件覆蓋條件覆蓋l條件組合覆蓋條件組合覆蓋l修正的判定修正的判定/條件覆蓋。條件覆蓋。但每個指標(biāo)都無法保證但每個指標(biāo)都無法保證100%100%的覆蓋。的覆蓋。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)小結(jié)任務(wù)小結(jié)582 23.3.因受到因受到“與與”、“或或”關(guān)系的限制,判斷條件之間關(guān)系的限制,判斷條件之間存在屏蔽作用,設(shè)計測試用例時要充分注意這一點。存在屏蔽作用,設(shè)計測試用例時要充分注意這一點。4.4.在實際項目中,由于程序內(nèi)部的邏輯存在不確定性在實際項目中,由于程序內(nèi)部的邏輯存在不確定性和無窮性,尤其對于大規(guī)模復(fù)雜軟件,不必采用所和無窮性,尤其對于大規(guī)模復(fù)雜軟件,不必采用所有的覆蓋指標(biāo),而應(yīng)根據(jù)實際情況選擇合適的覆蓋有的覆蓋指標(biāo),而應(yīng)根據(jù)實際情況選擇合適的覆蓋指標(biāo)指標(biāo)5.5.常見的覆蓋指標(biāo):常見的覆蓋指標(biāo):l語句覆蓋率:語句覆蓋率:100%100%l 判定覆蓋率:判定覆蓋率:80%80%以上以上 l 路徑覆蓋率:路徑覆蓋率:100%100%南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試public boolean isLeap(int year)boolean leap;if(year%4=0)if(year%100=0)if(year%400=0)leap=true;else leap=false;else leap=true;else leap=false;return leap;拓展訓(xùn)練拓展訓(xùn)練59進一步練習(xí)進一步練習(xí)l請用邏輯覆蓋法對右請用邏輯覆蓋法對右側(cè)的判斷閏年的側(cè)的判斷閏年的javajava代碼段設(shè)計測試用例。代碼段設(shè)計測試用例。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)二:路徑測試任務(wù)二:路徑測試60 任務(wù)簡介 任務(wù)分析 相關(guān)知識點 任務(wù)實施 任務(wù)小結(jié) 拓展訓(xùn)練南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介611 1l本任務(wù)主要學(xué)習(xí)采用基本路徑測試法和循環(huán)測試法來本任務(wù)主要學(xué)習(xí)采用基本路徑測試法和循環(huán)測試法來設(shè)計測試用例。設(shè)計測試用例。l用路徑測試方法(基路徑測試法和循環(huán)測試法)對下用路徑測試方法(基路徑測試法和循環(huán)測試法)對下頁的頁的c+c+代碼進行測試。代碼的功能是:輸入三個整數(shù)代碼進行測試。代碼的功能是:輸入三個整數(shù)a a、b b、c c,分別作為三角形的三條邊,通過調(diào)用程序判,分別作為三角形的三條邊,通過調(diào)用程序判斷這三條邊是否能構(gòu)成三角形?如果能構(gòu)成三角形,斷這三條邊是否能構(gòu)成三角形?如果能構(gòu)成三角形,則判斷三角形的類型(等邊三角形、等腰三角形、一則判斷三角形的類型(等邊三角形、等腰三角形、一般三角形)。要求輸入三個整數(shù)般三角形)。要求輸入三個整數(shù)a a、b b、c c,必須滿足以,必須滿足以下條件:下條件:1a2001a200;1b2001b200;1c2001c200。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介622 2 void input(int num,int n)1int a;2for(int i=0;in;i+)3 do4 couta;6 while(a200);7 numi=a;89南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析63路徑測試的特點路徑測試的特點l從廣義的角度講,任何有關(guān)路徑分析的測試都可以被從廣義的角度講,任何有關(guān)路徑分析的測試都可以被成為路徑測試。這里給出路徑測試的最簡單描述:路成為路徑測試。這里給出路徑測試的最簡單描述:路徑測試就是從一個程序的入口開始,執(zhí)行所經(jīng)歷的各徑測試就是從一個程序的入口開始,執(zhí)行所經(jīng)歷的各個語句的完整過程。個語句的完整過程。l路徑測試是白盒測試最為典型的問題,完成路經(jīng)測試路徑測試是白盒測試最為典型的問題,完成路經(jīng)測試的理想情況是做到路徑覆蓋。但從路徑覆蓋的討論中的理想情況是做到路徑覆蓋。但從路徑覆蓋的討論中已經(jīng)得知,對于比較簡單的程序?qū)崿F(xiàn)路徑測試是可能已經(jīng)得知,對于比較簡單的程序?qū)崿F(xiàn)路徑測試是可能做到的,而對于程序中出現(xiàn)較多個判定和較多個循環(huán),做到的,而對于程序中出現(xiàn)較多個判定和較多個循環(huán),則路徑數(shù)目將會急劇增加,不可能實現(xiàn)路徑覆蓋。則路徑數(shù)目將會急劇增加,不可能實現(xiàn)路徑覆蓋。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析64路徑測試的方法路徑測試的方法l基路徑測試方法:在程序控制流圖的基礎(chǔ)上,通過分基路徑測試方法:在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。從而設(shè)計測試用例的方法。l循環(huán)測試方法:重點檢查循環(huán)結(jié)構(gòu)的有效性。循環(huán)測試方法:重點檢查循環(huán)結(jié)構(gòu)的有效性。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試相關(guān)知識點相關(guān)知識點65知識點列表知識點列表l基路徑測試l循環(huán)測試南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試66定義定義l基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。l設(shè)計出的測試用例要保證在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試控制流圖控制流圖67定義定義l程序的控制流圖:描述程序控制流的一種圖示方法。l流圖只有2種圖形符號:l圖中的每一個圓稱為流圖的結(jié)點,代表一條或多條語句。l流圖中的箭頭稱為邊或連接,代表控制流南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試控制流圖控制流圖68注意事項注意事項l在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個匯聚結(jié)點。l邊和結(jié)點圈定的區(qū)域叫做區(qū)域,當(dāng)對區(qū)域計數(shù)時,圖形外的區(qū)域也應(yīng)記為一個區(qū)域。l如果判斷中的條件表達式是由一個或多個邏輯運算符(OR,AND,NAND,NOR)連接的復(fù)合條件表達式,則需要改為一系列只有單條件的嵌套的判斷。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試控制流圖控制流圖69區(qū)域計數(shù)舉例區(qū)域計數(shù)舉例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試控制流圖控制流圖70復(fù)合條件復(fù)合條件1 if a or b2 x3 else4 y南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試控制流圖控制流圖71獨立路徑獨立路徑l至少沿一條新的邊移動的路徑。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試72舉例舉例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試73步驟步驟1.畫出程序的控制流圖2.2.計算計算程序圈復(fù)雜度3.導(dǎo)出獨立路徑4.準(zhǔn)備測試用例南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試74步驟步驟1 1南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試75步驟步驟2 2l圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測度的軟圈復(fù)雜度是一種為程序邏輯復(fù)雜性提供定量測度的軟件度量,將該度量用于計算程序的基本的獨立路徑數(shù)件度量,將該度量用于計算程序的基本的獨立路徑數(shù)目,為確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。目,為確保所有語句至少執(zhí)行一次的測試數(shù)量的上界。獨立路徑必須包含一條在定義之前不曾用到的邊。獨立路徑必須包含一條在定義之前不曾用到的邊。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試76步驟步驟2 2l有以下三種方法計算圈復(fù)雜度:有以下三種方法計算圈復(fù)雜度:l流圖中封閉區(qū)域的數(shù)量流圖中封閉區(qū)域的數(shù)量+1+1個開放區(qū)域個開放區(qū)域=總的區(qū)域總的區(qū)域數(shù)數(shù)=圈復(fù)雜度圈復(fù)雜度l給定流圖給定流圖G G的圈復(fù)雜度的圈復(fù)雜度V(G)V(G),定義為,定義為V(G)=E-N+2V(G)=E-N+2,E E是流圖中邊的數(shù)量,是流圖中邊的數(shù)量,N N是流圖中結(jié)點的數(shù)量是流圖中結(jié)點的數(shù)量;l給定流圖給定流圖G G的圈復(fù)雜度的圈復(fù)雜度V(G)V(G),定義為,定義為V(G)=P+1V(G)=P+1,P P是流圖是流圖G G中判定結(jié)點的數(shù)量。中判定結(jié)點的數(shù)量。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試77步驟步驟2 2南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試78步驟步驟3 3l獨立路徑是指,和其他的獨立路徑相比,至少引入一個新處理語句或一個新判斷的程序通路。lV(G)值正好等于該程序的獨立路徑的條數(shù)。l得出得出4 4條獨立路徑條獨立路徑路徑1:4-14路徑2:4-6-7-14路徑3:4-6-8-10-13-4-14路徑4:4-6-8-11-13-4-14南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試基路徑測試基路徑測試79步驟步驟4 4南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試循環(huán)測試循環(huán)測試80定義和分類定義和分類l循環(huán)測試的目的就是檢查循環(huán)結(jié)構(gòu)的有效性。l循環(huán)測試是一種白盒測試技術(shù),它專注于測試循環(huán)結(jié)構(gòu)的有效性。l在結(jié)構(gòu)化的程序中通常只有 3 種循環(huán),即 l簡單循環(huán)l串接循環(huán)l嵌套循環(huán)南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試循環(huán)測試循環(huán)測試81分類分類南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試循環(huán)測試循環(huán)測試82簡單循環(huán)簡單循環(huán)l簡單循環(huán)。應(yīng)該使用下列測試集來測試簡單循 環(huán),其中 n 是允許通過循環(huán)的最大次數(shù)。l跳過循環(huán)。l只通過循環(huán)一次。l通過循環(huán)兩次。l通過循環(huán) m 次,其中 m=1=1,不可能測到內(nèi)層循環(huán),不可能測到內(nèi)層循環(huán)=0=0的情況。且內(nèi)層循環(huán)的循環(huán)次數(shù)取決于輸入的數(shù)是的情況。且內(nèi)層循環(huán)的循環(huán)次數(shù)取決于輸入的數(shù)是否符合規(guī)則,具有不確定性,因此內(nèi)層循環(huán)的測試僅否符合規(guī)則,具有不確定性,因此內(nèi)層循環(huán)的測試僅能取循環(huán)能取循環(huán)1 1次、循環(huán)次、循環(huán)2 2次和循環(huán)正常次數(shù),這里取次和循環(huán)正常次數(shù),這里取5 5次。次。l外層循環(huán):外層循環(huán)的循環(huán)次數(shù)取決于參數(shù)外層循環(huán):外層循環(huán)的循環(huán)次數(shù)取決于參數(shù)n,n=0n,n=0時,時,不執(zhí)行循環(huán)體,不執(zhí)行循環(huán)體,n1n1時,將進入循環(huán)體,考慮各種循環(huán)時,將進入循環(huán)體,考慮各種循環(huán)次數(shù)都能測試到,取次數(shù)都能測試到,取n=10n=10,此時最大循環(huán)次數(shù)為,此時最大循環(huán)次數(shù)為9.9.南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試循環(huán)測試用例編寫循環(huán)測試用例編寫91測試用例測試用例測試項測試項輸入輸入預(yù)期結(jié)果預(yù)期結(jié)果內(nèi)內(nèi) 層層循環(huán)循環(huán)循環(huán)1次tri數(shù)組,n=1,依次輸入0,201,-5,300,50a=0循環(huán)2次a=201循環(huán)5次a=50,tri0=50外外 層層循環(huán)循環(huán)循環(huán)0次n=0循環(huán)1次tri數(shù)組,n=10,依次輸入10,20,30,40,50,60,70,80,90,100tri0=10循環(huán)2次tri1=20循環(huán)5次tri4=60循環(huán)9次tri9=100南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)小結(jié)任務(wù)小結(jié)921 11.1.路徑測試是最早被應(yīng)用的測試方法之一,它有點類路徑測試是最早被應(yīng)用的測試方法之一,它有點類似于遍歷。通常的過程是,首先選定一些路徑,然似于遍歷。通常的過程是,首先選定一些路徑,然后據(jù)此寫出測試用例。后據(jù)此寫出測試用例。2.2.由于在實踐中對程序的所有路徑組合進行測試是不由于在實踐中對程序的所有路徑組合進行測試是不可能的,所以研究了許多策略來簡化問題,降低選可能的,所以研究了許多策略來簡化問題,降低選取出來的路徑數(shù)。取出來的路徑數(shù)。3.3.基路徑測試方法著眼于獨立路徑的尋找,要求在測基路徑測試方法著眼于獨立路徑的尋找,要求在測試中程序的每個可執(zhí)行語句至少執(zhí)行一次。試中程序的每個可執(zhí)行語句至少執(zhí)行一次。4.4.循環(huán)測試法主要解決的是對循環(huán)的測試方法。循環(huán)測試法主要解決的是對循環(huán)的測試方法。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試public void select_sort(int a)int i,j,k,t,n;n=a.length;for(i=0;i n-1;i+)k=i;for(j=i+1;j n;j+)if(a j a k)k=j;if(i!=k)t=ak;ak=ai;ai=t;拓展訓(xùn)練拓展訓(xùn)練93進一步練習(xí)進一步練習(xí)l請用基路徑測試法和循環(huán)測試法對下面的選擇排序java代碼段進行測試。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)三:綜合案例分析任務(wù)三:綜合案例分析94 任務(wù)簡介 任務(wù)分析 相關(guān)知識點 任務(wù)實施 任務(wù)小結(jié) 拓展訓(xùn)練南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介951 1l下頁程序流程圖描述了最多輸入50個值(以1作為輸入結(jié)束標(biāo)志),計算其中有效的學(xué)生分數(shù)的個數(shù)、總分數(shù)和平均值。l使用白盒測試方法對其進行分析測試。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)簡介任務(wù)簡介v流程圖96南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)分析任務(wù)分析97分析分析l對于該流程圖而言,首先我們要分析其結(jié)構(gòu),確定判定節(jié)點和條件的個數(shù),在決定覆蓋指標(biāo)和具體采取的白盒測試方法。l也可以用多種方法共同驗證選取的測試用例是否充分,是否需要補充。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試相關(guān)知識點相關(guān)知識點98知識點列表知識點列表l白盒測試方法總結(jié)l白盒測試的應(yīng)用策略南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試白盒測試方法總結(jié)白盒測試方法總結(jié)99白盒方法白盒方法l白盒測試是基于被測程序的源代碼設(shè)計測試用例的測試方法。l常見的白盒測試方法l邏輯覆蓋測試l路徑分析測試南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試白盒方法白盒方法100邏輯覆蓋邏輯覆蓋l語句覆蓋:每個語句至少執(zhí)行一次。語句覆蓋:每個語句至少執(zhí)行一次。l判定覆蓋:在語句覆蓋的基礎(chǔ)上,每個判定的每個分支至少執(zhí)判定覆蓋:在語句覆蓋的基礎(chǔ)上,每個判定的每個分支至少執(zhí)行一次。行一次。l條件覆蓋:在語句覆蓋的基礎(chǔ)上,使每個判定表達式的每個條條件覆蓋:在語句覆蓋的基礎(chǔ)上,使每個判定表達式的每個條件都取到各種可能的結(jié)果。件都取到各種可能的結(jié)果。l判定判定/條件覆蓋:即判定覆蓋和條件覆蓋的交集。條件覆蓋:即判定覆蓋和條件覆蓋的交集。l條件組合覆蓋:每個判定表達式中條件的各種可能組合都至少條件組合覆蓋:每個判定表達式中條件的各種可能組合都至少出現(xiàn)一次。出現(xiàn)一次。l修正的條件修正的條件/判定覆蓋:要求在滿足判定判定覆蓋:要求在滿足判定/條件覆蓋的基礎(chǔ)上,條件覆蓋的基礎(chǔ)上,每個簡單邏輯判定條件都應(yīng)能夠獨立影響整個判定表達式。每個簡單邏輯判定條件都應(yīng)能夠獨立影響整個判定表達式。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試白盒方法白盒方法101路徑分析路徑分析l基路徑測試:基本路徑測試法是在程序控制流圖的基基路徑測試:基本路徑測試法是在程序控制流圖的基礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可礎(chǔ)上,通過分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計測試用例的方法。執(zhí)行路徑集合,從而設(shè)計測試用例的方法。l循環(huán)測試是一種著重循環(huán)結(jié)構(gòu)有效性測試的測試方法。循環(huán)測試是一種著重循環(huán)結(jié)構(gòu)有效性測試的測試方法。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試白盒方法應(yīng)用策略白盒方法應(yīng)用策略1021 1l靜態(tài)白盒測試有助于直接定位缺陷,所以應(yīng)優(yōu)先進行靜態(tài)白盒測試有助于直接定位缺陷,所以應(yīng)優(yōu)先進行靜態(tài)白盒測試,特別是重要的、核心的功能模塊,應(yīng)靜態(tài)白盒測試,特別是重要的、核心的功能模塊,應(yīng)進行嚴(yán)格的評審。檢查的內(nèi)容包括對程序代碼的結(jié)構(gòu)進行嚴(yán)格的評審。檢查的內(nèi)容包括對程序代碼的結(jié)構(gòu)進行分析、對代碼質(zhì)量進行度量。同時在靜態(tài)測試的進行分析、對代碼質(zhì)量進行度量。同時在靜態(tài)測試的過程中,應(yīng)不斷總結(jié)經(jīng)驗,更新缺陷檢查表等規(guī)范性過程中,應(yīng)不斷總結(jié)經(jīng)驗,更新缺陷檢查表等規(guī)范性文檔。文檔。l應(yīng)盡量采用現(xiàn)有的測試工具來幫助分析代碼的結(jié)構(gòu)和應(yīng)盡量采用現(xiàn)有的測試工具來幫助分析代碼的結(jié)構(gòu)和評估代碼質(zhì)量。評估代碼質(zhì)量。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試白盒方法應(yīng)用策略白盒方法應(yīng)用策略1032 2l針對黑盒測試檢查不到或難以檢查的地方(如內(nèi)存泄針對黑盒測試檢查不到或難以檢查的地方(如內(nèi)存泄漏)使用特殊的白盒測試方法。漏)使用特殊的白盒測試方法。l根據(jù)代碼的不同結(jié)構(gòu),選用合理的測試覆蓋指標(biāo),評根據(jù)代碼的不同結(jié)構(gòu),選用合理的測試覆蓋指標(biāo),評估黑盒測試方法是否存在漏洞和冗余,若有漏洞,應(yīng)估黑盒測試方法是否存在漏洞和冗余,若有漏洞,應(yīng)有針對性地補充更多必要的測試用例。有針對性地補充更多必要的測試用例。l對于系統(tǒng)測試,也可以借鑒白盒測試中的路徑測試方對于系統(tǒng)測試,也可以借鑒白盒測試中的路徑測試方法的思想,展開相應(yīng)的測試工作。法的思想,展開相應(yīng)的測試工作。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施104策略分析策略分析l白盒測試主要針對被測軟件的內(nèi)部如何進行工作的測試。邏輯覆蓋的關(guān)注點主要在于條件判定表達式本身的復(fù)雜度。而路徑測試必然滿足基本的邏輯覆蓋指標(biāo),所以優(yōu)先考慮路徑測試。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施105步驟步驟l導(dǎo)出過程的流圖l確定環(huán)形復(fù)雜性度量V(G)l確定基本路徑集合(即獨立路徑集合)。l為每一條獨立路徑各設(shè)計一組測試用例,以便強迫程序沿著該路徑至少執(zhí)行一次。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施106步驟步驟1 1南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施107步驟步驟2 21.1.V(G)=6(V(G)=6(個區(qū)域個區(qū)域)2.2.V(G)=EV(G)=EN+2=16N+2=1612+2=612+2=6其中其中E E為流圖中的邊數(shù),為流圖中的邊數(shù),N N為結(jié)點數(shù)為結(jié)點數(shù);3.3.V(G)=P+1=5+1=6V(G)=P+1=5+1=6其中其中P P為謂詞結(jié)點的個數(shù)。在流圖中,結(jié)點為謂詞結(jié)點的個數(shù)。在流圖中,結(jié)點2 2、3 3、5 5、6 6、9 9是謂詞結(jié)點。是謂詞結(jié)點。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施108步驟步驟3 3l可確定6條獨立的路徑:路徑1:1-2-9-10-12路徑2:1-2-9-11-12路徑3:1-2-3-9-10-12路徑4:1-2-3-4-5-8-2路徑5:1-2-3-4-5-6-8-2路徑6:1-2-3-4-5-6-7-8-2南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施109步驟步驟4-14-1l為每一條獨立路徑各設(shè)計一組測試用例,以便強迫程序沿著該路徑至少執(zhí)行一次。1.路徑1(1-2-9-10-12)的測試用例:scorek=有效分數(shù)值,當(dāng)k i;scorei=1,2i50;期望結(jié)果:根據(jù)輸入的有效分數(shù)算出正確的分數(shù)個數(shù)n1、總分sum和平均分average。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施110步驟步驟4-24-22.路徑2(1-2-9-11-12)的測試用例:score 1=1;期望的結(jié)果:average=1,其他量保持初值。3.路徑3(1-2-3-9-10-12)的測試用例:輸入多于50個有效分數(shù),即試圖處理51個分數(shù),要求前51個為有效分數(shù);期望結(jié)果:n1=50、且算出正確的總分和平均分。3.路徑4(1-2-3-4-5-8-2)的測試用例:scorei=有效分數(shù),當(dāng)i50;2.scorek0,k i;期望結(jié)果:根據(jù)輸入的有效分數(shù)算出正確的分數(shù)個數(shù)n1、總分sum和平均分average。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試任務(wù)實施任務(wù)實施111步驟步驟4-34-35.路徑5(1-2-3-4-5-6-8-2)的測試用例:scorei=有效分數(shù),當(dāng)i100,k i;期望結(jié)果:根據(jù)輸入的有效分數(shù)算出正確的分數(shù)個數(shù)n1、總分sum和平均分average。5.路徑6(1-2-3-4-5-6-7-8-2)的測試用例:scorei=有效分數(shù),當(dāng)i1010的程序,的程序,一般會認為過于復(fù)雜而難以測試。一般會認為過于復(fù)雜而難以測試。2.2.在采用了路徑測試的基礎(chǔ)上在采用了路徑測試的基礎(chǔ)上 ,可針對循環(huán),進而,可針對循環(huán),進而采用循環(huán)測試,以驗證循環(huán)結(jié)構(gòu)的正確性。采用循環(huán)測試,以驗證循環(huán)結(jié)構(gòu)的正確性。南京工業(yè)職業(yè)技術(shù)學(xué)院 軟件測試軟件測試void ReadPara(CString temp)if(temp=)m_oper.SetCurSel(0);elseif(temp=)m_oper.SetCurSel(1);elseif(temp=)m_oper.SetCurSel(2);else If(temp=)m_oper.SetCurSel(3);else if(temp=)m_oper.SetCurSel(4);elsem_oper.SetCurSel(5);return;拓展訓(xùn)練拓展訓(xùn)練113進一步練習(xí)進一步練習(xí)l請綜合考慮使用各白盒測試方法對下面的程序代碼段進行測試。
收藏
編號:66077335
類型:共享資源
大?。?span id="ec22sia" class="font-tahoma">13.30MB
格式:ZIP
上傳時間:2022-03-26
25
積分
- 關(guān) 鍵 詞:
-
軟件測試
教學(xué)PPT課件
軟件
測試
教學(xué)
PPT
課件
- 資源描述:
-
軟件測試教學(xué)PPT課件,軟件測試,教學(xué)PPT課件,軟件,測試,教學(xué),PPT,課件
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。