河北工業(yè)大學(xué)軟件工程教師課件第五節(jié)軟件實(shí)現(xiàn)與驗(yàn)證_第1頁
河北工業(yè)大學(xué)軟件工程教師課件第五節(jié)軟件實(shí)現(xiàn)與驗(yàn)證_第2頁
河北工業(yè)大學(xué)軟件工程教師課件第五節(jié)軟件實(shí)現(xiàn)與驗(yàn)證_第3頁
河北工業(yè)大學(xué)軟件工程教師課件第五節(jié)軟件實(shí)現(xiàn)與驗(yàn)證_第4頁
河北工業(yè)大學(xué)軟件工程教師課件第五節(jié)軟件實(shí)現(xiàn)與驗(yàn)證_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第五講第五講 軟件實(shí)現(xiàn)與驗(yàn)證軟件實(shí)現(xiàn)與驗(yàn)證(Software Implementation and Validation)Welcome to Software EngineeringLecture 5Zhang J目標(biāo)目標(biāo)n了解編程和調(diào)試的基本工作內(nèi)容;n掌握軟件驗(yàn)證和有效性確認(rèn)的基本知識(shí)和程序檢查過程及方法;n熟悉軟件測(cè)試的基本方法;n了解有效性測(cè)試和缺陷測(cè)試的區(qū)別;n掌握系統(tǒng)及組件測(cè)試的原則和常用的測(cè)試用例設(shè)計(jì)方法;n了解支持測(cè)試的CASE工具的工作原理。內(nèi)容內(nèi)容n程序設(shè)計(jì)與調(diào)試;n驗(yàn)證與有效性確認(rèn); n軟件測(cè)試1 程序設(shè)計(jì)與調(diào)試程序設(shè)計(jì)與調(diào)試n程序設(shè)計(jì)的任務(wù)是把設(shè)計(jì)轉(zhuǎn)換成程序以及在程序

2、中去除錯(cuò)誤,包括編程與調(diào)試兩個(gè)過程。n編程是一種個(gè)人行為通常沒有統(tǒng)一的模式。n通常,程序員要對(duì)自己開發(fā)的程序進(jìn)行測(cè)試,這時(shí)程序中的一些明顯的錯(cuò)誤會(huì)暴露出來并被根除,這個(gè)過程叫調(diào)試。調(diào)試過程調(diào)試過程n驗(yàn)證驗(yàn)證: “Are we building the product right?”.n檢查軟件是否符合它的規(guī)格描述。n有效性確認(rèn)有效性確認(rèn): “Are we building the right product?”.n檢查軟件是否滿足客戶的期待。2 驗(yàn)證和有效性確認(rèn)驗(yàn)證和有效性確認(rèn)( Verification & Validation)n在軟件整個(gè)生命周期中 V & V 必須在軟件過程的每一個(gè)階段

3、得以執(zhí)行。nV & V過程有兩個(gè)基本目標(biāo):n發(fā)現(xiàn)系統(tǒng)的缺陷;n從操作的角度評(píng)價(jià)系統(tǒng)的有用性和可用性。V & V 過程過程V& V 目標(biāo)目標(biāo)n驗(yàn)證和有效性確認(rèn)的最終目標(biāo)是要建立“軟件達(dá)到了設(shè)計(jì)目標(biāo)”的信心信心。n注意:注意:我們并不要求軟件系統(tǒng)完全無缺陷。而是足以完成用戶所要求的任務(wù)。V & V 信心信心n對(duì)V & V所要求的信心程度信心程度取決于系統(tǒng)的設(shè)計(jì)目標(biāo)、用戶的期望和目前的市場(chǎng)環(huán)境:n軟件功能軟件功能nThe level of confidence depends on how critical the software is to an organisation.n用戶期望用戶期望nU

4、sers may have low expectations of certain kinds of software.n市場(chǎng)環(huán)境市場(chǎng)環(huán)境nGetting a product to market early may be more important than finding defects in the program.n軟件審查軟件審查 通過對(duì)系統(tǒng)的各種靜態(tài)成果,如需求文檔、設(shè)計(jì)文檔、源代碼,進(jìn)行檢查和分析發(fā)現(xiàn)問題。nMay be supplement by tool-based document and code analysisn軟件測(cè)試軟件測(cè)試 通過使用測(cè)試數(shù)據(jù)執(zhí)行系統(tǒng),檢查運(yùn)行結(jié)果

5、來發(fā)現(xiàn)問題。nThe system is executed with test data and its operational behaviour is observed靜態(tài)與動(dòng)態(tài)驗(yàn)證靜態(tài)與動(dòng)態(tài)驗(yàn)證靜態(tài)與動(dòng)態(tài)驗(yàn)證靜態(tài)與動(dòng)態(tài)驗(yàn)證Software inspectionsSoftware testingn測(cè)試的目的是為了揭示程序中存在錯(cuò)誤,而不是沒有錯(cuò)誤。n靜態(tài)檢查無法檢驗(yàn)軟件是否可用,也不能檢驗(yàn)非功能需求,因此程序測(cè)試是必不可少的,是起決定性作用的V & V技術(shù)。n在V & V過程中,程序測(cè)試和靜態(tài)檢查通常是結(jié)合在一起使用的。程序測(cè)試程序測(cè)試n缺陷測(cè)試缺陷測(cè)試nTests designed to

6、 discover system defects.nA successful defect test is one which reveals the presence of defects in a system.n有效性測(cè)試有效性測(cè)試nIntended to show that the software meets its requirements.nA successful test is one that shows that a requirements has been properly implemented.測(cè)試類型測(cè)試類型n缺陷測(cè)試和調(diào)試是不同的過程,通常交叉進(jìn)行。n檢驗(yàn)和有

7、效性驗(yàn)證的目的是確定系統(tǒng)中存在缺陷;n調(diào)試考慮的是定位和修改缺陷。測(cè)試和調(diào)試測(cè)試和調(diào)試調(diào)試過程調(diào)試過程n仔細(xì)的規(guī)劃能夠使程序檢查和測(cè)試的工作得到更多的回報(bào)。nV & V過程的規(guī)劃應(yīng)該從開發(fā)過程的早期就開始。nV & V規(guī)劃應(yīng)該明確的說明靜態(tài)檢查與測(cè)試任務(wù)與分工。n測(cè)試規(guī)劃主要是制定測(cè)試過程標(biāo)準(zhǔn),而不是描述測(cè)試本身。2.1 V & V 規(guī)劃規(guī)劃系統(tǒng)開發(fā)的系統(tǒng)開發(fā)的 V 模型模型軟件測(cè)試計(jì)劃的結(jié)構(gòu)軟件測(cè)試計(jì)劃的結(jié)構(gòu)n測(cè)試過程測(cè)試過程n需求跟蹤需求跟蹤n測(cè)試項(xiàng)目測(cè)試項(xiàng)目n測(cè)試進(jìn)度測(cè)試進(jìn)度n測(cè)試記錄程序測(cè)試記錄程序n硬軟件需求硬軟件需求n約束約束2.2 軟件審查軟件審查n軟件審查是一個(gè)靜態(tài)的V&V過程

8、,這個(gè)過程中通過對(duì)軟件系統(tǒng)復(fù)查來發(fā)現(xiàn)錯(cuò)誤、遺漏和異常。n通常,審查的對(duì)象是源代碼,但也可以是任何可讀文檔。n軟件審查是一種比程序測(cè)試更有效的缺陷發(fā)現(xiàn)技術(shù)。審查的好處審查的好處 n單一的審查工作就可以發(fā)現(xiàn)系統(tǒng)很多錯(cuò)誤;n無需額外的成本就可以檢查系統(tǒng)的不完全版本;n審查也能夠檢查更廣泛的程序?qū)傩?。審查與測(cè)試審查與測(cè)試n審查與測(cè)試各有優(yōu)缺點(diǎn),它們是互補(bǔ)的而不是對(duì)立的測(cè)試技術(shù);n兩種技術(shù)在V&V過程中應(yīng)該一同配合使用;n審查能夠檢查程序與規(guī)格描述是否相符,但不能檢查程序的運(yùn)行效果是否符合用戶的預(yù)期,也不能檢查如性能、可用性的非功能需求。程序?qū)彶檫^程程序?qū)彶檫^程n程序?qū)彶槭菍?duì)程序文檔的正式復(fù)查,目標(biāo)是檢

9、查程序的缺陷。n這里所說的缺陷可能是邏輯錯(cuò)誤,可能是代碼中能夠指示錯(cuò)誤條件的異常,還可能是與機(jī)構(gòu)和項(xiàng)目目標(biāo)不相符的情況。程序?qū)彶榈那皸l件程序?qū)彶榈那皸l件n對(duì)被審查的代碼有一個(gè)精確的描述;n審查小組成員應(yīng)該熟悉機(jī)構(gòu)的標(biāo)準(zhǔn);n有一個(gè)最新的、語法正確的、完整的代碼版本,并發(fā)給所有的團(tuán)隊(duì)成員;n準(zhǔn)備一個(gè)程序員常出錯(cuò)誤的核對(duì)清單;n管理者要接受程序?qū)彶樵陂_發(fā)早期會(huì)增加成本這一事實(shí)。審查過程審查過程審查清單審查清單n審查中,常見錯(cuò)誤核查清單是必要的準(zhǔn)備,是核查人員進(jìn)行程序檢查的基本依據(jù);n對(duì)于不同的程序設(shè)計(jì)語言要準(zhǔn)備不同的清單,因?yàn)椴煌恼Z言有不同的錯(cuò)誤特征。審查清單審查清單3 軟件測(cè)試軟件測(cè)試思考: 結(jié)

10、合自己編程經(jīng)驗(yàn),思考測(cè)試的目的是什么?單元測(cè)試過程有哪些活動(dòng)?什么樣的輸入數(shù)據(jù)是有效的?3 軟件測(cè)試軟件測(cè)試測(cè)試階段測(cè)試階段測(cè)試階段測(cè)試階段n組件測(cè)試組件測(cè)試 n測(cè)試單個(gè)的程序組件;n通常由程序開發(fā)者完成(除了要求特別高的系統(tǒng));n這個(gè)階段的測(cè)試大多依靠測(cè)試者的經(jīng)驗(yàn)。n系統(tǒng)測(cè)試系統(tǒng)測(cè)試n測(cè)試由組件整合成的子系統(tǒng)和系統(tǒng);n有專門的測(cè)試團(tuán)隊(duì)進(jìn)行測(cè)試;n測(cè)試要依據(jù)需求規(guī)格說明進(jìn)行。測(cè)試過程的目標(biāo)測(cè)試過程的目標(biāo)n有效性測(cè)試有效性測(cè)試n目標(biāo)是向開發(fā)者和用戶證實(shí)系統(tǒng)滿足了用戶需求;n每個(gè)需求至少要有一個(gè)測(cè)試,以證明系統(tǒng)是按預(yù)期運(yùn)行的。n缺陷測(cè)試缺陷測(cè)試n目標(biāo)是找出軟件中的缺陷和不足;n一個(gè)成功的測(cè)試就是找

11、出了系統(tǒng)存在某個(gè)目前未知的缺陷。軟件測(cè)試過程軟件測(cè)試過程n進(jìn)行無遺漏測(cè)試是不可能的。n應(yīng)該有如何選擇測(cè)試用例的策略:n所有能從菜單中得到的功能都應(yīng)被測(cè)試到;n可以從同一個(gè)菜單中訪問的組合功能都需要被測(cè)試;n在需要用戶輸入的地方,所有功能都必須用正確的輸入和不正確的輸入進(jìn)行測(cè)試。測(cè)試策略測(cè)試策略3.1 組件測(cè)試組件測(cè)試n組件測(cè)試(單元測(cè)試)是測(cè)試系統(tǒng)中單個(gè)組件的過程,這個(gè)過程通常和編程工作一起進(jìn)行,作為單元代碼的檢驗(yàn)手段。組件測(cè)試是一個(gè)缺陷測(cè)試的過程。n這里所說的組件包括:單個(gè)函數(shù)單個(gè)函數(shù);對(duì)象類對(duì)象類 ;復(fù)合組件復(fù)合組件 。n由于組件要在一定上下文環(huán)境中運(yùn)行,所以進(jìn)行單元測(cè)試要為每個(gè)待測(cè)組件開

12、發(fā)額外的驅(qū)動(dòng)模塊和樁模塊。組件測(cè)試環(huán)境組件測(cè)試環(huán)境驅(qū)動(dòng)模塊待測(cè)模塊樁模塊樁模塊不與最終產(chǎn)品一起交付3.2 系統(tǒng)測(cè)試系統(tǒng)測(cè)試n系統(tǒng)測(cè)試包括集成組件形成子系統(tǒng)和系統(tǒng)進(jìn)行測(cè)試。n可以結(jié)合增量式交付。n兩個(gè)不同的階段:n集成測(cè)試集成測(cè)試 - the test team have access to the system source code. The system is tested as components are integrated.n發(fā)布測(cè)試發(fā)布測(cè)試 - the test team test the complete system to be delivered as a black-bo

13、x.集成測(cè)試集成測(cè)試n自頂向下集成自頂向下集成n從主控模塊開始,沿著控制層次結(jié)構(gòu)逐步向下,利用深度優(yōu)先或廣度優(yōu)先的方式將從屬于主控模塊的其他模塊集成到系統(tǒng)結(jié)構(gòu)中。n自底向上集成自底向上集成n從原子模塊開始,從底層把模塊逐步向上集成為更大規(guī)模的子系統(tǒng)和系統(tǒng)。 集成測(cè)試包括把組件集成為系統(tǒng)和對(duì)合成的系統(tǒng)進(jìn)行測(cè)試,以發(fā)現(xiàn)組件集成過程帶來的問題,集成方式可以分為:M1M2M3M4M5M6M8M7M9增量集成測(cè)試增量集成測(cè)試為了簡化測(cè)試中錯(cuò)誤定位的問題,可以采用增量集成的方法。發(fā)布測(cè)試發(fā)布測(cè)試n發(fā)布測(cè)試是對(duì)將要發(fā)布給用戶的系統(tǒng)版本進(jìn)行測(cè)試的過程。n目標(biāo)是驗(yàn)證交付的產(chǎn)品是否達(dá)到了要求。n發(fā)布測(cè)試通常是一個(gè)

14、“黑盒測(cè)試過程”:n只依據(jù)系統(tǒng)規(guī)格說明進(jìn)行測(cè)試;n測(cè)試者不需了解有關(guān)系統(tǒng)實(shí)現(xiàn)的任何細(xì)節(jié)。黑盒測(cè)試黑盒測(cè)試測(cè)試指導(dǎo)測(cè)試指導(dǎo)n以下測(cè)試指導(dǎo)原則能夠幫助測(cè)試者選擇使系統(tǒng)產(chǎn)生錯(cuò)誤的輸入:n選擇能夠迫使系統(tǒng)產(chǎn)生所有錯(cuò)誤消息的輸入;n設(shè)計(jì)能夠使系統(tǒng)的輸入緩沖溢出的輸入;n重復(fù)相同的輸入或一系列輸入很多次;n設(shè)計(jì)能夠產(chǎn)生無效的輸入;n迫使輸出結(jié)果太大或太小的輸入。3.3 測(cè)試用例設(shè)計(jì)測(cè)試用例設(shè)計(jì)n設(shè)計(jì)測(cè)試用例是系統(tǒng)測(cè)試與組件測(cè)試的關(guān)鍵工作,主要是通過設(shè)計(jì)輸入數(shù)據(jù)設(shè)計(jì)輸入數(shù)據(jù)與預(yù)計(jì)的輸出預(yù)計(jì)的輸出來測(cè)試系統(tǒng)。n測(cè)試用例設(shè)計(jì)的目的是建立一組測(cè)試用例集合,用盡可能少的測(cè)試代價(jià)有效的發(fā)現(xiàn)系統(tǒng)缺陷并證明系統(tǒng)能夠滿足需

15、求。n設(shè)計(jì)測(cè)試用例的常用方法:設(shè)計(jì)測(cè)試用例的常用方法:n劃分測(cè)試與邊界值分析;劃分測(cè)試與邊界值分析;n結(jié)構(gòu)化測(cè)試(白盒測(cè)試)。結(jié)構(gòu)化測(cè)試(白盒測(cè)試)。3.3.1 劃分測(cè)試劃分測(cè)試n劃分測(cè)試又叫做等價(jià)類劃分測(cè)試法,是一種黑盒測(cè)試方法。n程序的輸入與輸出結(jié)果總會(huì)落到幾個(gè)不同的類中,這些類中的數(shù)據(jù)有著共同的特征,我們把這些類叫作等價(jià)類等價(jià)類或等價(jià)劃分等價(jià)劃分。n合理劃分等價(jià)類,在每一個(gè)等價(jià)類中取一個(gè)或少數(shù)幾個(gè)數(shù)據(jù)作為測(cè)試輸入,就可以用少數(shù)有代表性的數(shù)據(jù),取得較好的測(cè)試效果。等價(jià)劃分等價(jià)劃分例:三角形判定例:三角形判定n某程序的功能是“輸入三個(gè)正整數(shù)作為邊長,判斷該三條邊構(gòu)成的三角形是等邊、等腰或一般

16、三角形”。請(qǐng)對(duì)該程序的算法用等價(jià)類和邊界值分析法設(shè)計(jì)測(cè)試用例,并檢查邏輯覆蓋標(biāo)準(zhǔn)。 輸入數(shù)據(jù)輸入數(shù)據(jù)合理等價(jià)類合理等價(jià)類不合理等價(jià)類不合理等價(jià)類A,B,C1 正整數(shù)2 有非正整數(shù)3 某兩個(gè)數(shù)相加小于或等于剩余的數(shù)4 有非數(shù)字字符5 三邊相等6 兩邊相等7 三邊不相等合理等價(jià)類測(cè)試用例表合理等價(jià)類測(cè)試用例表 不合理等價(jià)類測(cè)試用例表不合理等價(jià)類測(cè)試用例表 測(cè)試數(shù)據(jù)測(cè)試數(shù)據(jù)期望結(jié)果期望結(jié)果覆蓋范圍覆蓋范圍3,4,5輸出“一般三角形”1正整數(shù)7三邊不相等3,3,3輸出“等邊三角形”1正整數(shù),5三邊相等3,3,2輸出“等腰三角形”1正整數(shù),6兩邊相等測(cè)試數(shù)據(jù)測(cè)試數(shù)據(jù)期望結(jié)果期望結(jié)果覆蓋范圍覆蓋范圍-3,

17、4,5輸入無效2有非正整數(shù)3,3,6輸入無效3某兩個(gè)數(shù)相加小于或等于剩余的數(shù)A,B,C輸入無效4 有非數(shù)字字符邊界值分析邊界值分析n人們從長期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。n比如,在做三角形判定時(shí),要輸入三角形的三個(gè)邊長:A、B和C。 我們應(yīng)注意到這三個(gè)數(shù)值應(yīng)當(dāng)滿足A0、B0、C0、ABC、ACB、BCA,才能構(gòu)成三角形。但如果把六個(gè)不等式中的任何一個(gè)大于號(hào)“”錯(cuò)寫成大于等于號(hào)“”,那就不能構(gòu)成三角形。問題恰出現(xiàn)在容易被疏忽的邊界附近。這里所說的邊界值分析是指找到等價(jià)類中稍高于其邊界值

18、及稍低于其邊界值的一些特定情況。等價(jià)類等價(jià)類測(cè)試用例說明測(cè)試用例說明測(cè)試數(shù)據(jù)測(cè)試數(shù)據(jù)期望結(jié)果期望結(jié)果輸入值1個(gè)非數(shù)字字符2個(gè)非數(shù)字字符全部都是非數(shù)字字符兩正整數(shù)之和等于第三個(gè)數(shù)兩正整數(shù)之和小于第三邊3,4,OkA,B,3A,B,C3,3,63,3,7輸入無效輸入無效輸入無效輸入無效輸入無效三邊相等 A=B =C 3,3,3輸出“等邊三角形”兩邊相等A=B,ACA=C, ABB=C, BA3,3,25,3,55,3,3輸出“等腰三角形”三邊不等 A B C 3,4,5輸出“一般三角形”三角形判定三角形判定n結(jié)構(gòu)化測(cè)試是根據(jù)軟件的結(jié)構(gòu)知識(shí)導(dǎo)出測(cè)試用例的測(cè)試方法。n又叫做“白盒測(cè)試法”。n對(duì)組件中所

19、用的算法結(jié)構(gòu)的理解可以幫助我們找出更多的測(cè)試用例。3.3.3 結(jié)構(gòu)化測(cè)試結(jié)構(gòu)化測(cè)試結(jié)構(gòu)化測(cè)試結(jié)構(gòu)化測(cè)試結(jié)構(gòu)化測(cè)試的目標(biāo)結(jié)構(gòu)化測(cè)試的目標(biāo)n目標(biāo):(1)保證一個(gè)模塊中的所有保證一個(gè)模塊中的所有獨(dú)立路徑至少被執(zhí)行一次;獨(dú)立路徑至少被執(zhí)行一次;(2)對(duì)所有的邏輯值均需測(cè))對(duì)所有的邏輯值均需測(cè)試真和假;試真和假;(3)在上下邊界以及可操作)在上下邊界以及可操作的范圍內(nèi)執(zhí)行所有循環(huán);的范圍內(nèi)執(zhí)行所有循環(huán);(4)檢驗(yàn)內(nèi)部結(jié)構(gòu)以確保其)檢驗(yàn)內(nèi)部結(jié)構(gòu)以確保其有效性。有效性。n白盒測(cè)試能夠比黑盒測(cè)試發(fā)現(xiàn)更細(xì)小的缺陷。白盒測(cè)試法白盒測(cè)試法n白盒測(cè)試把測(cè)試對(duì)象看做一個(gè)打開的盒子,允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有

20、關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。n白盒測(cè)試主要有邏輯覆蓋法邏輯覆蓋法和基本路徑測(cè)試法基本路徑測(cè)試法。1) 1) 邏輯覆蓋法邏輯覆蓋法n邏輯覆蓋一系列測(cè)試過程的總稱,這組測(cè)試會(huì)逐漸進(jìn)行越來越完整的通路測(cè)試。n由于覆蓋測(cè)試的目標(biāo)不同,邏輯覆蓋又可分為:語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋及路徑覆蓋。 語句覆蓋n語句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,使得每一可執(zhí)行語句至少執(zhí)行一次。n它是最弱的邏輯覆蓋策略,效果有限,必須與其它方法交互使用。 判定覆蓋判定覆蓋n判定覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,使得程序中每個(gè)判斷的取真分支和取假分支至少執(zhí)行一次。判定覆蓋又稱為分支覆

21、蓋。n判定覆蓋比語句覆蓋強(qiáng),但對(duì)程序邏輯的覆蓋程度依然不高。 條件覆蓋條件覆蓋n條件覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,使得程序中每個(gè)判斷的每個(gè)條件的每個(gè)可能取值至少執(zhí)行一次。n條件覆蓋深入到判定中的每個(gè)條件,使每個(gè)條件都取到了兩個(gè)不同的結(jié)果,覆蓋性強(qiáng)于判定覆蓋,但有時(shí)可能會(huì)不滿足判定覆蓋的要求。 判定條件覆蓋判定條件覆蓋n判定條件覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷本身的所有可能判斷結(jié)果至少執(zhí)行一次。n從表面上來看,判定條件覆蓋測(cè)試了所有條件的取值。但存在多個(gè)判定時(shí),可能會(huì)遺漏某些判定條件取值錯(cuò)誤的情況。 多重條件覆蓋多重條件覆蓋n多重條件覆蓋就是設(shè)

22、計(jì)足夠的測(cè)試用例,使得每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次。也稱為條件組合覆蓋。n這是一種相當(dāng)強(qiáng)的覆蓋準(zhǔn)則,可以有效地檢查各種可能的條件取值的組合是否正確。它不但可覆蓋所有條件的可能取值的組合,還可覆蓋所有判斷的可取分支,但并不一定可以使程序中的每條路徑都執(zhí)行到。 路徑測(cè)試路徑測(cè)試n路徑測(cè)試就是設(shè)計(jì)足夠的測(cè)試用例,覆蓋程序中所有可能的路徑。這是最強(qiáng)的覆蓋準(zhǔn)則。n但在路徑數(shù)目很大時(shí),真正做到完全覆蓋是很困難的,必須把覆蓋路徑數(shù)目壓縮到一定限度。 Example:兩個(gè)判定:d1, (A1)and(B=0) d2, (A=2)or(x1)四個(gè)條件: 1、A1,2、B=0, 3、A=2,4、

23、x1四條路徑: ace、 abd、 abe、 acdTd1 and Td2 ace Fd1 and Fd2 abdFd1 and Td2 abeTd1 and Fd2 acdT1 and T2 Td1F1 or F2 Fd1T3 or T4 Td2F3 and F4 Fd2覆蓋方式輸入數(shù)據(jù)(A,B,X)輸出數(shù)據(jù)(A,B,X)取真條件覆蓋路徑語句覆蓋2,0,42,0,3T1T2T3T4ace判定覆蓋2,0,11,1,12,0,3/21,1,1 T1T2T3aceabd條件覆蓋2,0,11,1,22,0,3/21,1,3T1T2T3 T4aceabe判定條件覆蓋2,0,41,1,12,0,31,1

24、,1T1T2T3T4aceabd條件組合覆蓋2,0,42,1,11,0,31,1,12,0,32,1,21,0,41,1,1T1T2T3T4T1T3T2T4aceabdabdabd路徑覆蓋2,0,41,1,11,1,23,0,32,0,31,1,11,1,33,0,1T1T2T3T4T4T1T2T4aceabdadeacdExample:2) 2) 基本路徑測(cè)試基本路徑測(cè)試n基本路徑測(cè)試的原理:基本路徑測(cè)試的原理: “在程序控制流圖的基礎(chǔ)上,分析控制結(jié)構(gòu)的環(huán)路復(fù)雜度,并用這個(gè)復(fù)雜度為指南定義執(zhí)行路徑的基本集合,從而導(dǎo)出基本可執(zhí)行路徑集合,設(shè)計(jì)出測(cè)試用例并保證每個(gè)可執(zhí)行語句至少執(zhí)行一次,而且每個(gè)條件每個(gè)可執(zhí)行語句至少執(zhí)行一次,而且每個(gè)條件在執(zhí)行時(shí)都將分別取真、假兩種值在執(zhí)行時(shí)都將分別取真、假兩種值

溫馨提示

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

最新文檔