




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第五講第五講 軟件實(shí)現(xiàn)與驗(yàn)證軟件實(shí)現(xiàn)與驗(yàn)證 (Software Implementation and Validation) Welcome to Software Engineering Lecture 5 Zhang Jiannan 目標(biāo)目標(biāo) n了解編程和調(diào)試的基本工作內(nèi)容; n掌握軟件驗(yàn)證和有效性確認(rèn)的基本知識(shí)和程序檢 查過(guò)程及方法; 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)
2、試 n程序設(shè)計(jì)的任務(wù)是把設(shè)計(jì)轉(zhuǎn)換成程序以及在程 序中去除錯(cuò)誤,包括編程與調(diào)試兩個(gè)過(guò)程。 n編程是一種個(gè)人行為通常沒(méi)有統(tǒng)一的模式。 n通常,程序員要對(duì)自己開(kāi)發(fā)的程序進(jìn)行測(cè)試, 這時(shí)程序中的一些明顯的錯(cuò)誤會(huì)暴露出來(lái)并被 根除,這個(gè)過(guò)程叫調(diào)試。 調(diào)試過(guò)程調(diào)試過(guò)程 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 & Validat
3、ion) n在軟件整個(gè)生命周期中 V & V 必須在軟件過(guò)程 的每一個(gè)階段得以執(zhí)行。 nV & V過(guò)程有兩個(gè)基本目標(biāo): n發(fā)現(xiàn)系統(tǒng)的缺陷; n從操作的角度評(píng)價(jià)系統(tǒng)的有用性和可用性。 V & V 過(guò)程過(guò)程 V& V 目標(biāo)目標(biāo) n驗(yàn)證和有效性確認(rèn)的最終目標(biāo)是要建立“軟件 達(dá)到了設(shè)計(jì)目標(biāo)”的信心信心。 n注意:注意:我們并不要求軟件系統(tǒng)完全無(wú)缺陷。而 是足以完成用戶所要求的任務(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 crit
4、ical the software is to an organisation. n用戶期望用戶期望 nUsers 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軟件審查軟件審查 通過(guò)對(duì)系統(tǒng)的各種靜態(tài)成果,如需求文檔、設(shè)計(jì)文 檔、源代碼,進(jìn)行檢查和分析發(fā)現(xiàn)問(wèn)題。 nMay be supplement by tool-bas
5、ed document and code analysis n軟件測(cè)試軟件測(cè)試 通過(guò)使用測(cè)試數(shù)據(jù)執(zhí)行系統(tǒng),檢查運(yùn)行結(jié)果來(lái)發(fā)現(xiàn) 問(wè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 inspections Software testing n測(cè)試的目的是為了揭示程序中存在錯(cuò)誤,而不 是沒(méi)有錯(cuò)誤。 n靜態(tài)檢查無(wú)法檢驗(yàn)軟件是否可用,也不能檢驗(yàn) 非功能需求,因此程序測(cè)試是必不可少的,是 起決定性作用的V & V
6、技術(shù)。 n在V & V過(guò)程中,程序測(cè)試和靜態(tài)檢查通常是 結(jié)合在一起使用的。 程序測(cè)試程序測(cè)試 n缺陷測(cè)試缺陷測(cè)試 nTests designed to 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
7、 requirements has been properly implemented. 測(cè)試類型測(cè)試類型 n缺陷測(cè)試和調(diào)試是不同的過(guò)程,通常交叉進(jìn)行。 n檢驗(yàn)和有效性驗(yàn)證的目的是確定系統(tǒng)中存在缺 陷; n調(diào)試考慮的是定位和修改缺陷。 測(cè)試和調(diào)試測(cè)試和調(diào)試 調(diào)試過(guò)程調(diào)試過(guò)程 n仔細(xì)的規(guī)劃能夠使程序檢查和測(cè)試的工作得到 更多的回報(bào)。 nV & V過(guò)程的規(guī)劃應(yīng)該從開(kāi)發(fā)過(guò)程的早期就開(kāi) 始。 nV & V規(guī)劃應(yīng)該明確的說(shuō)明靜態(tài)檢查與測(cè)試任 務(wù)與分工。 n測(cè)試規(guī)劃主要是制定測(cè)試過(guò)程標(biāo)準(zhǔn),而不是描 述測(cè)試本身。 2.1 V & V 規(guī)劃規(guī)劃 系統(tǒng)開(kāi)發(fā)的系統(tǒng)開(kāi)發(fā)的 V 模型模型 軟件測(cè)試計(jì)劃的結(jié)構(gòu)軟件測(cè)試計(jì)
8、劃的結(jié)構(gòu) n測(cè)試過(guò)程測(cè)試過(guò)程 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過(guò)程,這個(gè)過(guò)程中 通過(guò)對(duì)軟件系統(tǒng)復(fù)查來(lái)發(fā)現(xiàn)錯(cuò)誤、遺漏和異常。 n通常,審查的對(duì)象是源代碼,但也可以是任何 可讀文檔。 n軟件審查是一種比程序測(cè)試更有效的缺陷發(fā)現(xiàn) 技術(shù)。 審查的好處審查的好處 n單一的審查工作就可以發(fā)現(xiàn)系統(tǒng)很多錯(cuò)誤; n無(wú)需額外的成本就可以檢查系統(tǒng)的不完全版本; n審查也能夠檢查更廣泛的程序?qū)傩浴?審查與測(cè)試審查與測(cè)試 n審查與測(cè)試各有優(yōu)缺點(diǎn),它們是互補(bǔ)的而不是 對(duì)立的測(cè)試
9、技術(shù); n兩種技術(shù)在V&V過(guò)程中應(yīng)該一同配合使用; n審查能夠檢查程序與規(guī)格描述是否相符,但不 能檢查程序的運(yùn)行效果是否符合用戶的預(yù)期, 也不能檢查如性能、可用性的非功能需求。 程序?qū)彶檫^(guò)程程序?qū)彶檫^(guò)程 n程序?qū)彶槭菍?duì)程序文檔的正式復(fù)查,目標(biāo)是檢 查程序的缺陷。 n這里所說(shuō)的缺陷可能是邏輯錯(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è)最新的、語(yǔ)法正確的、完整的代碼版本, 并發(fā)給所有的團(tuán)隊(duì)成員; n準(zhǔn)備一個(gè)程序員常出錯(cuò)誤的核對(duì)清單; n管理者要
10、接受程序?qū)彶樵陂_(kāi)發(fā)早期會(huì)增加成本 這一事實(shí)。 審查過(guò)程審查過(guò)程 審查清單審查清單 n審查中,常見(jiàn)錯(cuò)誤核查清單是必要的準(zhǔn)備,是 核查人員進(jìn)行程序檢查的基本依據(jù); n對(duì)于不同的程序設(shè)計(jì)語(yǔ)言要準(zhǔn)備不同的清單, 因?yàn)椴煌恼Z(yǔ)言有不同的錯(cuò)誤特征。 審查清單審查清單 3 軟件測(cè)試軟件測(cè)試 思考: 結(jié)合自己編程經(jīng)驗(yàn),思考測(cè)試的目的是什么 ?單元測(cè)試過(guò)程有哪些活動(dòng)?什么樣的輸入數(shù)據(jù) 是有效的? 3 軟件測(cè)試軟件測(cè)試 測(cè)試階段測(cè)試階段 測(cè)試階段測(cè)試階段 n組件測(cè)試組件測(cè)試 n測(cè)試單個(gè)的程序組件; n通常由程序開(kāi)發(fā)者完成(除了要求特別高的系統(tǒng)); n這個(gè)階段的測(cè)試大多依靠測(cè)試者的經(jīng)驗(yàn)。 n系統(tǒng)測(cè)試系統(tǒng)測(cè)試 n測(cè)試
11、由組件整合成的子系統(tǒng)和系統(tǒng); n有專門(mén)的測(cè)試團(tuán)隊(duì)進(jìn)行測(cè)試; n測(cè)試要依據(jù)需求規(guī)格說(shuō)明進(jìn)行。 測(cè)試過(guò)程的目標(biāo)測(cè)試過(guò)程的目標(biāo) n有效性測(cè)試有效性測(cè)試 n目標(biāo)是向開(kāi)發(fā)者和用戶證實(shí)系統(tǒng)滿足了用戶需求; n每個(gè)需求至少要有一個(gè)測(cè)試,以證明系統(tǒng)是按預(yù)期 運(yùn)行的。 n缺陷測(cè)試缺陷測(cè)試 n目標(biāo)是找出軟件中的缺陷和不足; n一個(gè)成功的測(cè)試就是找出了系統(tǒng)存在某個(gè)目前未知 的缺陷。 軟件測(cè)試過(guò)程軟件測(cè)試過(guò)程 n進(jìn)行無(wú)遺漏測(cè)試是不可能的。 n應(yīng)該有如何選擇測(cè)試用例的策略: n所有能從菜單中得到的功能都應(yīng)被測(cè)試到; n可以從同一個(gè)菜單中訪問(wèn)的組合功能都需要被測(cè)試; n在需要用戶輸入的地方,所有功能都必須用正確的 輸入和
12、不正確的輸入進(jìn)行測(cè)試。 測(cè)試策略測(cè)試策略 3.1 組件測(cè)試組件測(cè)試 n組件測(cè)試(單元測(cè)試)是測(cè)試系統(tǒng)中單個(gè)組件的過(guò)程, 這個(gè)過(guò)程通常和編程工作一起進(jìn)行,作為單元代碼的 檢驗(yàn)手段。組件測(cè)試是一個(gè)缺陷測(cè)試的過(guò)程。 n這里所說(shuō)的組件包括:?jiǎn)蝹€(gè)函數(shù)單個(gè)函數(shù);對(duì)象類對(duì)象類 ;復(fù)合組件復(fù)合組件 。 n由于組件要在一定上下文環(huán)境中運(yùn)行,所以進(jìn)行單元 測(cè)試要為每個(gè)待測(cè)組件開(kāi)發(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集成
13、測(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-box. 集成測(cè)試集成測(cè)試 n自頂向下集成自頂向下集成 n從主控模塊開(kāi)始,沿著控制層次結(jié)構(gòu)逐步向 下,利用深度優(yōu)先或廣度優(yōu)先的方式將從屬 于主控模塊的其他模塊集成到系統(tǒng)結(jié)構(gòu)中。 n自底向上集成自底向上集成 n從原子模塊
14、開(kāi)始,從底層把模塊逐步向上集 成為更大規(guī)模的子系統(tǒng)和系統(tǒng)。 集成測(cè)試包括把組件集成為系統(tǒng)和對(duì)合成的系統(tǒng)進(jìn)行 測(cè)試,以發(fā)現(xiàn)組件集成過(guò)程帶來(lái)的問(wèn)題,集成方式可以分 為: M1 M2M3M4 M5M6 M8 M7 M9 增量集成測(cè)試增量集成測(cè)試 為了簡(jiǎn)化測(cè)試中錯(cuò)誤定位的問(wèn)題,可以采用增量集成的方法。 發(fā)布測(cè)試發(fā)布測(cè)試 n發(fā)布測(cè)試是對(duì)將要發(fā)布給用戶的系統(tǒng)版本進(jìn)行 測(cè)試的過(guò)程。 n目標(biāo)是驗(yàn)證交付的產(chǎn)品是否達(dá)到了要求。 n發(fā)布測(cè)試通常是一個(gè)“黑盒測(cè)試過(guò)程”: n只依據(jù)系統(tǒng)規(guī)格說(shuō)明進(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è)試者選擇使
15、系統(tǒng) 產(chǎn)生錯(cuò)誤的輸入: n選擇能夠迫使系統(tǒng)產(chǎn)生所有錯(cuò)誤消息的輸入; n設(shè)計(jì)能夠使系統(tǒng)的輸入緩沖溢出的輸入; n重復(fù)相同的輸入或一系列輸入很多次; n設(shè)計(jì)能夠產(chǎn)生無(wú)效的輸入; n迫使輸出結(jié)果太大或太小的輸入。 3.3 測(cè)試用例設(shè)計(jì)測(cè)試用例設(shè)計(jì) n設(shè)計(jì)測(cè)試用例是系統(tǒng)測(cè)試與組件測(cè)試的關(guān)鍵工作,主 要是通過(guò)設(shè)計(jì)輸入數(shù)據(jù)設(shè)計(jì)輸入數(shù)據(jù)與預(yù)計(jì)的輸出預(yù)計(jì)的輸出來(lái)測(cè)試系統(tǒng)。 n測(cè)試用例設(shè)計(jì)的目的是建立一組測(cè)試用例集合,用盡 可能少的測(cè)試代價(jià)有效的發(fā)現(xiàn)系統(tǒng)缺陷并證明系統(tǒng)能 夠滿足需求。 n設(shè)計(jì)測(cè)試用例的常用方法:設(shè)計(jì)測(cè)試用例的常用方法: n劃分測(cè)試與邊界值分析;劃分測(cè)試與邊界值分析; n結(jié)構(gòu)化測(cè)試(白盒測(cè)試)。結(jié)
16、構(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ù)作為邊長(zhǎng),判斷該三條 邊構(gòu)成的三角形是等邊、等腰或一般三角形”。請(qǐng)對(duì)該程 序的算法用等價(jià)類和邊界值分析法設(shè)計(jì)測(cè)試用例,并檢查 邏輯覆蓋標(biāo)準(zhǔn)。 輸入數(shù)據(jù)輸入數(shù)
17、據(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,4,5輸入無(wú)效2有非正整 數(shù) 3,3,6輸入無(wú)效3某
18、兩個(gè)數(shù) 相加小 于或等 于剩余 的數(shù) A,B,C輸入無(wú)效4 有非數(shù)字 字符 邊界值分析邊界值分析 n人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生 在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi) 部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出 更多的錯(cuò)誤。 n比如,在做三角形判定時(shí),要輸入三角形的三個(gè)邊長(zhǎng): A、B和C。 我們應(yīng)注意到這三個(gè)數(shù)值應(yīng)當(dāng)滿足A0、B 0、C0、ABC、ACB、BCA,才能構(gòu)成 三角形。但如果把六個(gè)不等式中的任何一個(gè)大于號(hào) “”錯(cuò)寫(xiě)成大于等于號(hào)“”,那就不能構(gòu)成三角 形。問(wèn)題恰出現(xiàn)在容易被疏忽的邊界附近。這里所說(shuō) 的邊界值分析是指找到等價(jià)類中稍高于其邊界值及稍 低于其
19、邊界值的一些特定情況。 等價(jià)類等價(jià)類測(cè)試用例說(shuō)明測(cè)試用例說(shuō)明測(cè)試數(shù)據(jù)測(cè)試數(shù)據(jù)期望結(jié)果期望結(jié)果 輸入值1個(gè)非數(shù)字字符 2個(gè)非數(shù)字字符 全部都是非數(shù)字字符 兩正整數(shù)之和等于第 三個(gè)數(shù) 兩正整數(shù)之和小于第 三邊 3,4,Ok A,B,3 A,B,C 3,3,6 3,3,7 輸入無(wú)效 輸入無(wú)效 輸入無(wú)效 輸入無(wú)效 輸入無(wú)效 三邊相等 A=B =C 3,3,3輸出“等邊三角形” 兩邊相等A=B,AC A=C, AB B=C, BA 3,3,2 5,3,5 5,3,3 輸出“等腰三角形” 三邊不等 A B C 3,4,5輸出“一般三角形” 三角形判定三角形判定 n結(jié)構(gòu)化測(cè)試是根據(jù)軟件的結(jié)構(gòu)知識(shí)導(dǎo)出測(cè)試用
20、例的測(cè)試方法。 n又叫做“白盒測(cè)試法”。 n對(duì)組件中所用的算法結(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è)試法白
21、盒測(cè)試法 n白盒測(cè)試把測(cè)試對(duì)象看做一個(gè)打開(kāi)的盒子,允 許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信 息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路 徑進(jìn)行測(cè)試。 n白盒測(cè)試主要有邏輯覆蓋法邏輯覆蓋法和基本路徑測(cè)試法基本路徑測(cè)試法。 1) 1) 邏輯覆蓋法邏輯覆蓋法 n邏輯覆蓋一系列測(cè)試過(guò)程的總稱,這組測(cè)試會(huì) 逐漸進(jìn)行越來(lái)越完整的通路測(cè)試。 n由于覆蓋測(cè)試的目標(biāo)不同,邏輯覆蓋又可分為: 語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定條件 覆蓋、條件組合覆蓋及路徑覆蓋。 語(yǔ)句覆蓋 n語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,使得每一 可執(zhí)行語(yǔ)句至少執(zhí)行一次。 n它是最弱的邏輯覆蓋策略,效果有限,必須與 其它方法交互使用。 判定覆
22、蓋判定覆蓋 n判定覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,使 得程序中每個(gè)判斷的取真分支和取假分 支至少執(zhí)行一次。判定覆蓋又稱為分支 覆蓋。 n判定覆蓋比語(yǔ)句覆蓋強(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í)行一次。
23、n從表面上來(lái)看,判定條件覆蓋測(cè)試了所有條 件的取值。但存在多個(gè)判定時(shí),可能會(huì)遺漏某 些判定條件取值錯(cuò)誤的情況。 多重條件覆蓋多重條件覆蓋 n多重條件覆蓋就是設(shè)計(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í),真正做到完全覆蓋是很 困難的,
24、必須把覆蓋路徑數(shù)目壓縮到一定限度。 Example: 兩個(gè)判定:d1, (A1)and(B=0) d2, (A=2)or(x1) 四個(gè)條件: 1、A1,2、B=0, 3、A=2,4、 x1 四條路徑: ace、 abd、 abe、 acd Td1 and Td2 ace Fd1 and Fd2 abd Fd1 and Td2 abe Td1 and Fd2 acd T1 and T2 Td1 F1 or F2 Fd1 T3 or T4 Td2 F3 and F4 Fd2 覆蓋方式輸入數(shù)據(jù)(A,B,X)輸出數(shù)據(jù)(A,B,X)取真條件覆蓋路徑 語(yǔ)句覆蓋2,0,42,0,3T1T2T3T4ace 判
25、定覆蓋2,0,1 1,1,1 2,0,3/2 1,1,1 T1T2T3ace abd 條件覆蓋2,0,1 1,1,2 2,0,3/2 1,1,3 T1T2T3 T4 ace abe 判定條件覆蓋2,0,4 1,1,1 2,0,3 1,1,1 T1T2T3T4ace abd 條件組合覆蓋2,0,4 2,1,1 1,0,3 1,1,1 2,0,3 2,1,2 1,0,4 1,1,1 T1T2T3T4 T1T3 T2T4 ace abd abd abd 路徑覆蓋2,0,4 1,1,1 1,1,2 3,0,3 2,0,3 1,1,1 1,1,3 3,0,1 T1T2T3T4 T4 T1T2T4 ace abd ade acd Example: 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í)行語(yǔ)句至少執(zhí)行一次,而且每個(gè)條件每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次,而且每個(gè)條件 在執(zhí)行時(shí)都將分別取真、假兩種值在執(zhí)行時(shí)都將分別取真、假
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年輔導(dǎo)員招聘考試題庫(kù):學(xué)生心理危機(jī)干預(yù)心理干預(yù)方案試題
- 2025年司法考試刑法模擬檢測(cè)試卷:刑法案例分析題實(shí)戰(zhàn)演練
- 2025年注冊(cè)會(huì)計(jì)師考試《會(huì)計(jì)》高頻考點(diǎn)預(yù)測(cè)模擬試題沖刺試題卷解析
- 2025年對(duì)合同法中合同自由原則的深入探討
- 2025年小學(xué)英語(yǔ)畢業(yè)考試模擬卷:英語(yǔ)閱讀理解技巧詳解與高分策略試題
- 2025年區(qū)塊鏈工程師職業(yè)能力測(cè)試卷:區(qū)塊鏈在網(wǎng)絡(luò)安全中的應(yīng)用試題
- 武昌職業(yè)學(xué)院《小型樂(lè)隊(duì)編配》2023-2024學(xué)年第一學(xué)期期末試卷
- 杭州電子科技大學(xué)《臨床醫(yī)學(xué)概論(外科學(xué))》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025版新勞務(wù)合同協(xié)議書(shū)范本
- 泰山科技學(xué)院《中外民族音樂(lè)》2023-2024學(xué)年第二學(xué)期期末試卷
- “條令條例學(xué)習(xí)月”主題授課課件
- DB37T 3862-2020 汽油清凈增效劑技術(shù)要求
- Xxx水閘技術(shù)管理實(shí)施細(xì)則
- 框架涵施工工藝標(biāo)準(zhǔn)
- 小學(xué)美術(shù)1《古代傳說(shuō)中的藝術(shù)形象》ppt
- 病歷書(shū)寫(xiě)?yīng)剳蛯?shí)施辦法
- BPZM-BDM-II注氮滅火說(shuō)明書(shū)
- 住院患者探視登記表
- 交通運(yùn)輸企業(yè)會(huì)計(jì)制度
- 張礦集團(tuán)人才發(fā)展規(guī)劃
- (新版)眼鏡定配工初級(jí)資格考試題庫(kù)(完整版)
評(píng)論
0/150
提交評(píng)論