




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第五講第五講 軟件實現(xiàn)與驗證軟件實現(xiàn)與驗證(Software Implementation and Validation)Welcome to Software EngineeringLecture 5Zhang J目標目標n了解編程和調(diào)試的基本工作內(nèi)容;n掌握軟件驗證和有效性確認的基本知識和程序檢查過程及方法;n熟悉軟件測試的基本方法;n了解有效性測試和缺陷測試的區(qū)別;n掌握系統(tǒng)及組件測試的原則和常用的測試用例設(shè)計方法;n了解支持測試的CASE工具的工作原理。內(nèi)容內(nèi)容n程序設(shè)計與調(diào)試;n驗證與有效性確認; n軟件測試1 程序設(shè)計與調(diào)試程序設(shè)計與調(diào)試n程序設(shè)計的任務(wù)是把設(shè)計轉(zhuǎn)換成程序以及在程序
2、中去除錯誤,包括編程與調(diào)試兩個過程。n編程是一種個人行為通常沒有統(tǒng)一的模式。n通常,程序員要對自己開發(fā)的程序進行測試,這時程序中的一些明顯的錯誤會暴露出來并被根除,這個過程叫調(diào)試。調(diào)試過程調(diào)試過程n驗證驗證: “Are we building the product right?”.n檢查軟件是否符合它的規(guī)格描述。n有效性確認有效性確認: “Are we building the right product?”.n檢查軟件是否滿足客戶的期待。2 驗證和有效性確認驗證和有效性確認( Verification & Validation)n在軟件整個生命周期中 V & V 必須在軟件過程的每一個階段
3、得以執(zhí)行。nV & V過程有兩個基本目標:n發(fā)現(xiàn)系統(tǒng)的缺陷;n從操作的角度評價系統(tǒng)的有用性和可用性。V & V 過程過程V& V 目標目標n驗證和有效性確認的最終目標是要建立“軟件達到了設(shè)計目標”的信心信心。n注意:注意:我們并不要求軟件系統(tǒng)完全無缺陷。而是足以完成用戶所要求的任務(wù)。V & V 信心信心n對V & V所要求的信心程度信心程度取決于系統(tǒng)的設(shè)計目標、用戶的期望和目前的市場環(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市場環(huán)境市場環(huán)境nGetting a product to market early may be more important than finding defects in the program.n軟件審查軟件審查 通過對系統(tǒng)的各種靜態(tài)成果,如需求文檔、設(shè)計文檔、源代碼,進行檢查和分析發(fā)現(xiàn)問題。nMay be supplement by tool-based document and code analysisn軟件測試軟件測試 通過使用測試數(shù)據(jù)執(zhí)行系統(tǒng),檢查運行結(jié)果
5、來發(fā)現(xiàn)問題。nThe system is executed with test data and its operational behaviour is observed靜態(tài)與動態(tài)驗證靜態(tài)與動態(tài)驗證靜態(tài)與動態(tài)驗證靜態(tài)與動態(tài)驗證Software inspectionsSoftware testingn測試的目的是為了揭示程序中存在錯誤,而不是沒有錯誤。n靜態(tài)檢查無法檢驗軟件是否可用,也不能檢驗非功能需求,因此程序測試是必不可少的,是起決定性作用的V & V技術(shù)。n在V & V過程中,程序測試和靜態(tài)檢查通常是結(jié)合在一起使用的。程序測試程序測試n缺陷測試缺陷測試nTests designed to
6、 discover system defects.nA successful defect test is one which reveals the presence of defects in a system.n有效性測試有效性測試nIntended to show that the software meets its requirements.nA successful test is one that shows that a requirements has been properly implemented.測試類型測試類型n缺陷測試和調(diào)試是不同的過程,通常交叉進行。n檢驗和有
7、效性驗證的目的是確定系統(tǒng)中存在缺陷;n調(diào)試考慮的是定位和修改缺陷。測試和調(diào)試測試和調(diào)試調(diào)試過程調(diào)試過程n仔細的規(guī)劃能夠使程序檢查和測試的工作得到更多的回報。nV & V過程的規(guī)劃應(yīng)該從開發(fā)過程的早期就開始。nV & V規(guī)劃應(yīng)該明確的說明靜態(tài)檢查與測試任務(wù)與分工。n測試規(guī)劃主要是制定測試過程標準,而不是描述測試本身。2.1 V & V 規(guī)劃規(guī)劃系統(tǒng)開發(fā)的系統(tǒng)開發(fā)的 V 模型模型軟件測試計劃的結(jié)構(gòu)軟件測試計劃的結(jié)構(gòu)n測試過程測試過程n需求跟蹤需求跟蹤n測試項目測試項目n測試進度測試進度n測試記錄程序測試記錄程序n硬軟件需求硬軟件需求n約束約束2.2 軟件審查軟件審查n軟件審查是一個靜態(tài)的V&V過程
8、,這個過程中通過對軟件系統(tǒng)復(fù)查來發(fā)現(xiàn)錯誤、遺漏和異常。n通常,審查的對象是源代碼,但也可以是任何可讀文檔。n軟件審查是一種比程序測試更有效的缺陷發(fā)現(xiàn)技術(shù)。審查的好處審查的好處 n單一的審查工作就可以發(fā)現(xiàn)系統(tǒng)很多錯誤;n無需額外的成本就可以檢查系統(tǒng)的不完全版本;n審查也能夠檢查更廣泛的程序?qū)傩?。審查與測試審查與測試n審查與測試各有優(yōu)缺點,它們是互補的而不是對立的測試技術(shù);n兩種技術(shù)在V&V過程中應(yīng)該一同配合使用;n審查能夠檢查程序與規(guī)格描述是否相符,但不能檢查程序的運行效果是否符合用戶的預(yù)期,也不能檢查如性能、可用性的非功能需求。程序?qū)彶檫^程程序?qū)彶檫^程n程序?qū)彶槭菍Τ绦蛭臋n的正式復(fù)查,目標是檢
9、查程序的缺陷。n這里所說的缺陷可能是邏輯錯誤,可能是代碼中能夠指示錯誤條件的異常,還可能是與機構(gòu)和項目目標不相符的情況。程序?qū)彶榈那皸l件程序?qū)彶榈那皸l件n對被審查的代碼有一個精確的描述;n審查小組成員應(yīng)該熟悉機構(gòu)的標準;n有一個最新的、語法正確的、完整的代碼版本,并發(fā)給所有的團隊成員;n準備一個程序員常出錯誤的核對清單;n管理者要接受程序?qū)彶樵陂_發(fā)早期會增加成本這一事實。審查過程審查過程審查清單審查清單n審查中,常見錯誤核查清單是必要的準備,是核查人員進行程序檢查的基本依據(jù);n對于不同的程序設(shè)計語言要準備不同的清單,因為不同的語言有不同的錯誤特征。審查清單審查清單3 軟件測試軟件測試思考: 結(jié)
10、合自己編程經(jīng)驗,思考測試的目的是什么?單元測試過程有哪些活動?什么樣的輸入數(shù)據(jù)是有效的?3 軟件測試軟件測試測試階段測試階段測試階段測試階段n組件測試組件測試 n測試單個的程序組件;n通常由程序開發(fā)者完成(除了要求特別高的系統(tǒng));n這個階段的測試大多依靠測試者的經(jīng)驗。n系統(tǒng)測試系統(tǒng)測試n測試由組件整合成的子系統(tǒng)和系統(tǒng);n有專門的測試團隊進行測試;n測試要依據(jù)需求規(guī)格說明進行。測試過程的目標測試過程的目標n有效性測試有效性測試n目標是向開發(fā)者和用戶證實系統(tǒng)滿足了用戶需求;n每個需求至少要有一個測試,以證明系統(tǒng)是按預(yù)期運行的。n缺陷測試缺陷測試n目標是找出軟件中的缺陷和不足;n一個成功的測試就是找
11、出了系統(tǒng)存在某個目前未知的缺陷。軟件測試過程軟件測試過程n進行無遺漏測試是不可能的。n應(yīng)該有如何選擇測試用例的策略:n所有能從菜單中得到的功能都應(yīng)被測試到;n可以從同一個菜單中訪問的組合功能都需要被測試;n在需要用戶輸入的地方,所有功能都必須用正確的輸入和不正確的輸入進行測試。測試策略測試策略3.1 組件測試組件測試n組件測試(單元測試)是測試系統(tǒng)中單個組件的過程,這個過程通常和編程工作一起進行,作為單元代碼的檢驗手段。組件測試是一個缺陷測試的過程。n這里所說的組件包括:單個函數(shù)單個函數(shù);對象類對象類 ;復(fù)合組件復(fù)合組件 。n由于組件要在一定上下文環(huán)境中運行,所以進行單元測試要為每個待測組件開
12、發(fā)額外的驅(qū)動模塊和樁模塊。組件測試環(huán)境組件測試環(huán)境驅(qū)動模塊待測模塊樁模塊樁模塊不與最終產(chǎn)品一起交付3.2 系統(tǒng)測試系統(tǒng)測試n系統(tǒng)測試包括集成組件形成子系統(tǒng)和系統(tǒng)進行測試。n可以結(jié)合增量式交付。n兩個不同的階段:n集成測試集成測試 - the test team have access to the system source code. The system is tested as components are integrated.n發(fā)布測試發(fā)布測試 - the test team test the complete system to be delivered as a black-bo
13、x.集成測試集成測試n自頂向下集成自頂向下集成n從主控模塊開始,沿著控制層次結(jié)構(gòu)逐步向下,利用深度優(yōu)先或廣度優(yōu)先的方式將從屬于主控模塊的其他模塊集成到系統(tǒng)結(jié)構(gòu)中。n自底向上集成自底向上集成n從原子模塊開始,從底層把模塊逐步向上集成為更大規(guī)模的子系統(tǒng)和系統(tǒng)。 集成測試包括把組件集成為系統(tǒng)和對合成的系統(tǒng)進行測試,以發(fā)現(xiàn)組件集成過程帶來的問題,集成方式可以分為:M1M2M3M4M5M6M8M7M9增量集成測試增量集成測試為了簡化測試中錯誤定位的問題,可以采用增量集成的方法。發(fā)布測試發(fā)布測試n發(fā)布測試是對將要發(fā)布給用戶的系統(tǒng)版本進行測試的過程。n目標是驗證交付的產(chǎn)品是否達到了要求。n發(fā)布測試通常是一個
14、“黑盒測試過程”:n只依據(jù)系統(tǒng)規(guī)格說明進行測試;n測試者不需了解有關(guān)系統(tǒng)實現(xiàn)的任何細節(jié)。黑盒測試黑盒測試測試指導(dǎo)測試指導(dǎo)n以下測試指導(dǎo)原則能夠幫助測試者選擇使系統(tǒng)產(chǎn)生錯誤的輸入:n選擇能夠迫使系統(tǒng)產(chǎn)生所有錯誤消息的輸入;n設(shè)計能夠使系統(tǒng)的輸入緩沖溢出的輸入;n重復(fù)相同的輸入或一系列輸入很多次;n設(shè)計能夠產(chǎn)生無效的輸入;n迫使輸出結(jié)果太大或太小的輸入。3.3 測試用例設(shè)計測試用例設(shè)計n設(shè)計測試用例是系統(tǒng)測試與組件測試的關(guān)鍵工作,主要是通過設(shè)計輸入數(shù)據(jù)設(shè)計輸入數(shù)據(jù)與預(yù)計的輸出預(yù)計的輸出來測試系統(tǒng)。n測試用例設(shè)計的目的是建立一組測試用例集合,用盡可能少的測試代價有效的發(fā)現(xiàn)系統(tǒng)缺陷并證明系統(tǒng)能夠滿足需
15、求。n設(shè)計測試用例的常用方法:設(shè)計測試用例的常用方法:n劃分測試與邊界值分析;劃分測試與邊界值分析;n結(jié)構(gòu)化測試(白盒測試)。結(jié)構(gòu)化測試(白盒測試)。3.3.1 劃分測試劃分測試n劃分測試又叫做等價類劃分測試法,是一種黑盒測試方法。n程序的輸入與輸出結(jié)果總會落到幾個不同的類中,這些類中的數(shù)據(jù)有著共同的特征,我們把這些類叫作等價類等價類或等價劃分等價劃分。n合理劃分等價類,在每一個等價類中取一個或少數(shù)幾個數(shù)據(jù)作為測試輸入,就可以用少數(shù)有代表性的數(shù)據(jù),取得較好的測試效果。等價劃分等價劃分例:三角形判定例:三角形判定n某程序的功能是“輸入三個正整數(shù)作為邊長,判斷該三條邊構(gòu)成的三角形是等邊、等腰或一般
16、三角形”。請對該程序的算法用等價類和邊界值分析法設(shè)計測試用例,并檢查邏輯覆蓋標準。 輸入數(shù)據(jù)輸入數(shù)據(jù)合理等價類合理等價類不合理等價類不合理等價類A,B,C1 正整數(shù)2 有非正整數(shù)3 某兩個數(shù)相加小于或等于剩余的數(shù)4 有非數(shù)字字符5 三邊相等6 兩邊相等7 三邊不相等合理等價類測試用例表合理等價類測試用例表 不合理等價類測試用例表不合理等價類測試用例表 測試數(shù)據(jù)測試數(shù)據(jù)期望結(jié)果期望結(jié)果覆蓋范圍覆蓋范圍3,4,5輸出“一般三角形”1正整數(shù)7三邊不相等3,3,3輸出“等邊三角形”1正整數(shù),5三邊相等3,3,2輸出“等腰三角形”1正整數(shù),6兩邊相等測試數(shù)據(jù)測試數(shù)據(jù)期望結(jié)果期望結(jié)果覆蓋范圍覆蓋范圍-3,
17、4,5輸入無效2有非正整數(shù)3,3,6輸入無效3某兩個數(shù)相加小于或等于剩余的數(shù)A,B,C輸入無效4 有非數(shù)字字符邊界值分析邊界值分析n人們從長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。n比如,在做三角形判定時,要輸入三角形的三個邊長:A、B和C。 我們應(yīng)注意到這三個數(shù)值應(yīng)當(dāng)滿足A0、B0、C0、ABC、ACB、BCA,才能構(gòu)成三角形。但如果把六個不等式中的任何一個大于號“”錯寫成大于等于號“”,那就不能構(gòu)成三角形。問題恰出現(xiàn)在容易被疏忽的邊界附近。這里所說的邊界值分析是指找到等價類中稍高于其邊界值
18、及稍低于其邊界值的一些特定情況。等價類等價類測試用例說明測試用例說明測試數(shù)據(jù)測試數(shù)據(jù)期望結(jié)果期望結(jié)果輸入值1個非數(shù)字字符2個非數(shù)字字符全部都是非數(shù)字字符兩正整數(shù)之和等于第三個數(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)化測試是根據(jù)軟件的結(jié)構(gòu)知識導(dǎo)出測試用例的測試方法。n又叫做“白盒測試法”。n對組件中所
19、用的算法結(jié)構(gòu)的理解可以幫助我們找出更多的測試用例。3.3.3 結(jié)構(gòu)化測試結(jié)構(gòu)化測試結(jié)構(gòu)化測試結(jié)構(gòu)化測試結(jié)構(gòu)化測試的目標結(jié)構(gòu)化測試的目標n目標:(1)保證一個模塊中的所有保證一個模塊中的所有獨立路徑至少被執(zhí)行一次;獨立路徑至少被執(zhí)行一次;(2)對所有的邏輯值均需測)對所有的邏輯值均需測試真和假;試真和假;(3)在上下邊界以及可操作)在上下邊界以及可操作的范圍內(nèi)執(zhí)行所有循環(huán);的范圍內(nèi)執(zhí)行所有循環(huán);(4)檢驗內(nèi)部結(jié)構(gòu)以確保其)檢驗內(nèi)部結(jié)構(gòu)以確保其有效性。有效性。n白盒測試能夠比黑盒測試發(fā)現(xiàn)更細小的缺陷。白盒測試法白盒測試法n白盒測試把測試對象看做一個打開的盒子,允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有
20、關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試。n白盒測試主要有邏輯覆蓋法邏輯覆蓋法和基本路徑測試法基本路徑測試法。1) 1) 邏輯覆蓋法邏輯覆蓋法n邏輯覆蓋一系列測試過程的總稱,這組測試會逐漸進行越來越完整的通路測試。n由于覆蓋測試的目標不同,邏輯覆蓋又可分為:語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、條件組合覆蓋及路徑覆蓋。 語句覆蓋n語句覆蓋就是設(shè)計若干個測試用例,使得每一可執(zhí)行語句至少執(zhí)行一次。n它是最弱的邏輯覆蓋策略,效果有限,必須與其它方法交互使用。 判定覆蓋判定覆蓋n判定覆蓋就是設(shè)計若干個測試用例,使得程序中每個判斷的取真分支和取假分支至少執(zhí)行一次。判定覆蓋又稱為分支覆
21、蓋。n判定覆蓋比語句覆蓋強,但對程序邏輯的覆蓋程度依然不高。 條件覆蓋條件覆蓋n條件覆蓋就是設(shè)計若干個測試用例,使得程序中每個判斷的每個條件的每個可能取值至少執(zhí)行一次。n條件覆蓋深入到判定中的每個條件,使每個條件都取到了兩個不同的結(jié)果,覆蓋性強于判定覆蓋,但有時可能會不滿足判定覆蓋的要求。 判定條件覆蓋判定條件覆蓋n判定條件覆蓋就是設(shè)計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷本身的所有可能判斷結(jié)果至少執(zhí)行一次。n從表面上來看,判定條件覆蓋測試了所有條件的取值。但存在多個判定時,可能會遺漏某些判定條件取值錯誤的情況。 多重條件覆蓋多重條件覆蓋n多重條件覆蓋就是設(shè)
22、計足夠的測試用例,使得每個判斷的所有可能的條件取值組合至少執(zhí)行一次。也稱為條件組合覆蓋。n這是一種相當(dāng)強的覆蓋準則,可以有效地檢查各種可能的條件取值的組合是否正確。它不但可覆蓋所有條件的可能取值的組合,還可覆蓋所有判斷的可取分支,但并不一定可以使程序中的每條路徑都執(zhí)行到。 路徑測試路徑測試n路徑測試就是設(shè)計足夠的測試用例,覆蓋程序中所有可能的路徑。這是最強的覆蓋準則。n但在路徑數(shù)目很大時,真正做到完全覆蓋是很困難的,必須把覆蓋路徑數(shù)目壓縮到一定限度。 Example:兩個判定:d1, (A1)and(B=0) d2, (A=2)or(x1)四個條件: 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) 基本路徑測試基本路徑測試n基本路徑測試的原理:基本路徑測試的原理: “在程序控制流圖的基礎(chǔ)上,分析控制結(jié)構(gòu)的環(huán)路復(fù)雜度,并用這個復(fù)雜度為指南定義執(zhí)行路徑的基本集合,從而導(dǎo)出基本可執(zhí)行路徑集合,設(shè)計出測試用例并保證每個可執(zhí)行語句至少執(zhí)行一次,而且每個條件每個可執(zhí)行語句至少執(zhí)行一次,而且每個條件在執(zhí)行時都將分別取真、假兩種值在執(zhí)行時都將分別取真、假兩種值
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 63522-9:2025 EN-FR Electrical relays - Tests and measurements - Part 9: Climatic tests
- 2025年現(xiàn)場施工管理考試試題及答案
- 2025年水利工程管理測試試卷及答案
- 2025年寶石學(xué)與鑒定技術(shù)考試卷及答案
- 2025年公共政策分析基礎(chǔ)考試試卷及答案
- 2025年公共健康科學(xué)考試試題及答案
- 2025年公共衛(wèi)生與預(yù)防醫(yī)學(xué)考題及答案
- 2025年科技與管理結(jié)合的職業(yè)考試試題及答案
- 2025年戶外教育與青少年發(fā)展課程考試題目及答案
- 七級語文測試題及答案
- 醫(yī)療器械網(wǎng)絡(luò)銷售質(zhì)量管理規(guī)范宣貫培訓(xùn)課件2025年
- SL631水利水電工程單元工程施工質(zhì)量驗收標準第1部分:土石方工程
- DL∕T 5370-2017 水電水利工程施工通 用安全技術(shù)規(guī)程
- 廣東省2024年中考數(shù)學(xué)試卷【附真題答案】
- (高清版)TDT 1075-2023 光伏發(fā)電站工程項目用地控制指標
- 監(jiān)控立桿基礎(chǔ)國家標準
- 億賽通數(shù)據(jù)泄露防護(DLP)_CDG_V3.1用戶使用手冊
- 方格子漢字獨體字表
- 德魯克的績效觀
- 那洛巴尊者傳
- 包材產(chǎn)品HACCP計劃
評論
0/150
提交評論