版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、軟件工程導(dǎo)論(7)軟件測試南京理工大學(xué)汪惠芬2019年10月6日第七章 軟件測試引言軟件系統(tǒng)的開發(fā)體現(xiàn)了人們智力勞動的成果。在軟件開發(fā)過程中,盡管人們利用了許多旨在改進、保證軟件質(zhì)量的方法去分析、設(shè)計和實現(xiàn)軟件,但難免會在工作中犯這樣那樣的錯誤。這樣,在軟件產(chǎn)品中就會隱藏許多的錯誤和缺陷。對于規(guī)模大、復(fù)雜性高的軟件更是如此。在這些錯誤中,有些甚至是致命的錯誤,如果不排除,就會導(dǎo)致財產(chǎn)以至生命的重大損失。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/20222軟 件 工 程 導(dǎo) 論第七章 軟件測試引言例如,1963年美國發(fā)生了這樣一件事:一個FORTRAN程序的循環(huán)語
2、句: DO 5 I1, 3被誤寫成:DO 5 I1. 3由于空格對FORTRAN編譯程序沒有意義,誤寫的語句被當作了賦值語句:DO5I1.3這里“,”被誤寫為“.”,一點之差致使飛往火星的火箭爆炸,造成1000萬美元的損失。這種情況迫使人們必須認真計劃、徹底地進行軟件測試。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/20223軟 件 工 程 導(dǎo) 論第七章 軟件測試7.1 軟件測試的基礎(chǔ)7.2 測試用例設(shè)計7.3 白盒測試的測試用例設(shè)計7.4 黑盒測試的測試用例設(shè)計7.5 軟件測試的策略7.6 人工測試7.7 調(diào)試(Debug,排錯)7.8 本章小結(jié)測試基礎(chǔ)用例設(shè)計
3、白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/20224軟 件 工 程 導(dǎo) 論7.1 軟件測試的基礎(chǔ)7.1.1 軟件測試的概念7.1.2 軟件測試的目的和原則7.1.3 軟件測試的對象7.1.4 測試信息流7.1.5 測試與軟件開發(fā)各階段的關(guān)系測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/20225軟 件 工 程 導(dǎo) 論7.1.1 軟件測試的概念概述:軟件測試是在軟件投入生產(chǎn)性運行之前,對軟件需求分析、設(shè)計規(guī)格說明和編碼的最終復(fù)審,是軟件質(zhì)量保證的關(guān)鍵步驟。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/20226軟 件 工 程
4、 導(dǎo) 論7.1.1 軟件測試的概念定義:軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程?;蛘哒f,軟件測試是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計一批測試用例,并利用這些測試用例取運行程序,以發(fā)現(xiàn)程序錯誤的過程。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/20227軟 件 工 程 導(dǎo) 論7.1.1 軟件測試的概念 軟件測試在軟件生存期中橫跨兩個階段:通常在編寫出每一模塊后就對它作單元測試。模塊的編寫者與測試者是同一個人。在每個模塊都完成單元測試后,對軟件系統(tǒng)還要進行各種綜合測試,通常由專門的測試人員承擔這項工作。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策
5、略人工測試調(diào)試排錯7/20/20228軟 件 工 程 導(dǎo) 論7.1.2 軟件測試的目的和原則概述:從用戶角度出發(fā):希望通過軟件測試暴露軟件中隱藏的錯誤和缺陷,以考慮是否可以接受該產(chǎn)品;從軟件開發(fā)者的角度出發(fā):希望測試成為表明軟件產(chǎn)品中不存在錯誤的過程,驗證該軟件已正確地實現(xiàn)了用戶的要求,確立人們對軟件質(zhì)量的信心。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/20229軟 件 工 程 導(dǎo) 論7.1.2 軟件測試的目的和原則測試目的:測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。 也就是
6、說,設(shè)計測試的目標是想以最少的時間和人力系統(tǒng)地找出軟件中潛在的各種錯誤和缺陷。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202210軟 件 工 程 導(dǎo) 論7.1.2 軟件測試的目的和原則測試原則:應(yīng)當把“盡早地和不斷地進行軟件測試”作為軟件開發(fā)者的座右銘;測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對應(yīng)的預(yù)期輸出結(jié)果這兩部分組成;程序員應(yīng)避免檢查自己的程序;在設(shè)計測試用例時,應(yīng)當包括合理的輸入條件和不合理輸入條件;測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202211軟 件 工 程 導(dǎo) 論7.1.2 軟件測試的目的和原則測試原則:充分注意測試中
7、的群集現(xiàn)象;嚴格執(zhí)行測試計劃,排除測試的隨意性;應(yīng)當對每一個測試結(jié)果作全面檢查;妥善保存測試計劃、測試用例、出錯統(tǒng)計和最終分析報告,為維護提供方便。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202212軟 件 工 程 導(dǎo) 論7.1.3 軟件測試的對象軟件測試并不等于程序測試。軟件測試應(yīng)貫穿于軟件定義與開發(fā)的整個期間。因此,需求分析、概要設(shè)計、詳細設(shè)計以及程序編碼等各階段所得到的文檔資料,包括需求規(guī)格說明、概要設(shè)計規(guī)格說明、詳細設(shè)計規(guī)格說明以及源程序,都應(yīng)成為軟件測試的對象。軟件測試不應(yīng)僅限在程序測試的狹小范圍內(nèi),而置其它階段的工作于不顧。測試基礎(chǔ)用例設(shè)計白盒測試
8、黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202213軟 件 工 程 導(dǎo) 論7.1.3 軟件測試的對象軟件測試包括確認和驗證工作:確認(validation),是一系列的活動和過程,其目的是想證實在一個給定的外部環(huán)境中軟件的邏輯正確性。靜態(tài)確認:通過人工分析或程序正確性證明來確認程序的正確性;動態(tài)確認:通過動態(tài)分析和程序測試來檢查程序的執(zhí)行狀態(tài),以確認程序是否正確。驗證(verification):視圖證明在軟件生存期各個階段,以及階段間的邏輯協(xié)調(diào)性、完備性和正確性。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202214軟 件 工 程 導(dǎo) 論7.1.3
9、軟件測試的對象軟件生存期各個階段之間需要保持的正確性測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯用戶要求用戶:我要什么?運行結(jié)果計算機:程序運行得到的結(jié)果設(shè)計說明書設(shè)計原:我要讓程序做什么?源程序程序員:我要讓計算機怎么做?需求說明書分析員:我可以提供什么?12345相符嗎?理解正確性表達正確性運行正確性輸入正確性理解正確性編碼正確性理解正確性設(shè)計正確性表達正確性7/20/202215軟 件 工 程 導(dǎo) 論7.1.4 測試信息流測試過程需要三類輸入:軟件配置:包括軟件需求規(guī)格說明、軟件設(shè)計規(guī)格說明、源代碼等;測試配置:包括測試計劃、測試計劃、測試驅(qū)動程序等;測試工具:包括測
10、試數(shù)據(jù)自動生成程序、靜態(tài)分析程序、動態(tài)分析程序、測試結(jié)果分析程序以及驅(qū)動測試的測試數(shù)據(jù)庫等。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202216軟 件 工 程 導(dǎo) 論7.1.4 測試信息流測試信息流測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯可靠性分析結(jié)果分析測試排錯錯誤改正的軟件預(yù)測的可靠性 果 結(jié) 試測 預(yù) 期 結(jié)果軟件配置測試配置測試工具出 錯 率 數(shù) 據(jù)7/20/202217軟 件 工 程 導(dǎo) 論7.1.5 測試與軟件開發(fā)各階段的關(guān)系軟件開發(fā)過程是一個自頂向下、逐步細化的過程,而測試過程則是依相反的順序安排的、自底向上、逐步集成的過
11、程。低一級測試為上一級測試準備條件。當然不排除兩者平行地進行測試。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202218軟 件 工 程 導(dǎo) 論7.1.5 測試與軟件開發(fā)各階段的關(guān)系軟件測試與軟件開發(fā)過程的關(guān)系測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯需求分析確認測試設(shè)計集成測試編程單元測試需求分析說明書概要設(shè)計說明書詳細設(shè)計說明書源程序代碼確認測試集成測試單元測試7/20/202219軟 件 工 程 導(dǎo) 論7.2 測試用例設(shè)計 任何工程產(chǎn)品都可以使用以下兩種方法之一進行測試:黑盒測試:已知產(chǎn)品的功能設(shè)計規(guī)格,可以進行測試證明每個實現(xiàn)了的功能
12、是否符合要求;白盒測試:已知產(chǎn)品的內(nèi)部工作過程,可以通過測試證明每種內(nèi)部操作是否符合設(shè)計規(guī)格要求,所有內(nèi)部成分是否已經(jīng)過檢查。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202220軟 件 工 程 導(dǎo) 論黑盒測試 黑盒測試主要根據(jù)軟件的外部特性進行,主要為了發(fā)現(xiàn):是否有不正確或遺漏了的功能?在接口上輸入能否正確地接受?能否輸出正確的結(jié)果?是否有數(shù)據(jù)結(jié)構(gòu)或外部信息訪問錯誤?性能上是否能夠滿足要求?是否有初始化或終止性錯誤?測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7.2 測試用例設(shè)計7/20/202221軟 件 工 程 導(dǎo) 論白盒測試 白盒測試
13、是對軟件的過程性細節(jié)作細致的檢查,主要對程序模塊進行檢查:對程序模塊的所有獨立的執(zhí)行路徑至少測試一次;對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測試一次;在循環(huán)的邊界和運行界限內(nèi)執(zhí)行循環(huán)體;測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7.2 測試用例設(shè)計7/20/202222軟 件 工 程 導(dǎo) 論但對一個具有多種選擇和循環(huán)體嵌套的程序,不同的路徑數(shù)據(jù)可能是天文數(shù)字。而且即使精確地實現(xiàn)了白盒測試,也不能斷言測試過的程序完全正確。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7.2 測試用例設(shè)計7/20/202223軟 件
14、 工 程 導(dǎo) 論例如,100行源代碼,包括一個執(zhí)行達20次的循環(huán),共包含不同執(zhí)行路徑數(shù)高達520(1013),如進行窮舉測試,假設(shè)測試需要1毫秒條,一天工作24小時,一年工作365天,則測試完成需要3170年。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7.2 測試用例設(shè)計循環(huán)20次7/20/202224軟 件 工 程 導(dǎo) 論7.3 白盒測試的測試用例設(shè)計7.3.1 邏輯覆蓋7.3.2 語句覆蓋7.3.3 判定覆蓋7.3.4 條件覆蓋7.3.5 判定條件覆蓋7.3.6 條件組合覆蓋7.3.7 路徑覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/
15、202225軟 件 工 程 導(dǎo) 論7.3.1 邏輯覆蓋邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計測試用例的技術(shù)。它屬于白盒測試。這一方法要求測試人員對程序的邏輯結(jié)構(gòu)有清楚的了解,甚至要能掌握源程序的所有細節(jié)。由于覆蓋測試的目標不同,又可分為:語句覆蓋判定覆蓋判定條件覆蓋條件組合覆蓋路徑覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202226軟 件 工 程 導(dǎo) 論7.3.1 邏輯覆蓋測試用例設(shè)計參考實例4條路徑:L1:aceL2:abdL3:abeL4:acd測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯(A1)(B=0)(A2)(X1)X=X
16、/AX=X+1FFTTabcde7/20/202227軟 件 工 程 導(dǎo) 論7.3.1 邏輯覆蓋各路徑邏輯式:L1(ace)L2( abd )測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202228軟 件 工 程 導(dǎo) 論7.3.1 邏輯覆蓋各路徑邏輯式:L3(abe)L4(acd)測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202229軟 件 工 程 導(dǎo) 論7.3.2 語句覆蓋概述:所謂語句覆蓋就是設(shè)計若干個測試用例,運行被測程序,使得每一個可執(zhí)行語句至少執(zhí)行一次。實例中正好所有的可執(zhí)行語句都在路徑L1上,所以選擇路徑L1設(shè)計測試用例
17、,就可以覆蓋所有可執(zhí)行語句。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202230軟 件 工 程 導(dǎo) 論7.3.2 語句覆蓋測試用例設(shè)計格式:【輸入的(A,B,X),輸出的(A,B,X)】實例的測試用例:【(2,0,4),(2,0,3)】覆蓋ace【L1】測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202231軟 件 工 程 導(dǎo) 論7.3.3 判定覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯概述:所謂判定覆蓋就是設(shè)計若干個測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少經(jīng)歷一次。故又稱分支覆
18、蓋。實例中選擇路徑L1和L2,或者L3和L4設(shè)計測試用例,均可以覆蓋所有判定分支。7/20/202232軟 件 工 程 導(dǎo) 論7.3.3 判定覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯實例的測試用例:選擇L1和L2得到測試用例:【(2,0,4),(2,0,3)】覆蓋ace【L1】【(1,1,1),(1,1,1)】覆蓋abd【L2】選擇L3和L4得到測試用例:【(2,1,1),(2,1,2)】覆蓋abe【L3】 【(3,0,3),(3,1,1)】覆蓋acd【L4】7/20/202233軟 件 工 程 導(dǎo) 論7.3.4 條件覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試
19、策略人工測試調(diào)試排錯概述:所謂條件覆蓋就是設(shè)計若干個測試用例,運行被測程序,使得程序中每個判斷的每個條件的可能取值至少執(zhí)行一次。實例中記:判斷條件取真取假第一個判斷A1T1B=0T2第二個判斷A=2T3X1T47/20/202234軟 件 工 程 導(dǎo) 論實例的測試用例:選擇L1、L2、L3得到測試用例:選擇L3得到測試用例:7.3.4 條件覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯測試用例通過路徑條件取值覆蓋分支【(2,0,4),(2,0,3) 】ace(L1)c,e【(1,0,1),(1,0,1) 】abd(L2)b,d【(2,1,1),(2,1,2) 】abe(L
20、3)b,e測試用例通過路徑條件取值覆蓋分支【(1,0,3),(1,0,4) 】abd(L3)b,e【(2,1,1),(2,1,2) 】abe(L3)b,e7/20/202235軟 件 工 程 導(dǎo) 論7.3.5 判定條件覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯概述:所謂判定條件覆蓋就是設(shè)計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執(zhí)行一次,同時每個判斷本身的所有可能判斷結(jié)果至少執(zhí)行一次。7/20/202236軟 件 工 程 導(dǎo) 論實例的測試用例:實例中只須設(shè)計兩個測試用例即可覆蓋8個條件取值及4個判斷分支:從表面上看,判定條件覆蓋測試了所有條件的取值,但實際
21、上有些條件并沒有檢查到。如第一個判斷中的(B=0)和第二個判斷中的(X1)。7.3.5 判定條件覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯測試用例通過路徑條件取值覆蓋分支【(2,0,4),(2,0,3) 】ace(L1)c,e【(1,1,1),(1,1,1) 】abd(L2)b,d7/20/202237軟 件 工 程 導(dǎo) 論7.3.5 判定條件覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯為徹底檢查所有條件的取值,可以將實例圖中的多重判定分解,形成由多個基本判斷組成的流程圖,這樣可以有效地檢查所有的條件是否正確。(A1)X=X/AX=X+1(B=
22、0)(A=2)(X1)7/20/202238軟 件 工 程 導(dǎo) 論7.3.6 條件組合覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯概述:所謂條件組合覆蓋就是設(shè)計足夠的測試用例,運行被測程序,使得程序中每個判斷的所有可能的取值組合至少執(zhí)行一次。實例中有兩個判斷,每個判斷各有兩個條件,所以各有4個條件取值的組合,可用4個測試用例覆蓋8個條件取值的組合。7/20/202239軟 件 工 程 導(dǎo) 論7.3.6 條件組合覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯實例中各判斷條件取值組合標記:標記條件覆蓋條件判斷分支第一個取真取假取假取假第二個取真取真取真
23、取假7/20/202240軟 件 工 程 導(dǎo) 論7.3.6 條件組合覆蓋測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯實例測試用例:測試用例通過路徑覆蓋條件覆蓋組合號【(2,0,4), (2,0,3)】ace(L1), 【(2,1,1), (2,1,2)】abe(L3), 【(1,0,3), (1,0,4)】abe(L3), 【(1,1,1), (1,1,1)】abd(L2), 7/20/202241軟 件 工 程 導(dǎo) 論7.3.7 路徑測試測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯概述:所謂路徑覆蓋就是設(shè)計足夠的測試用例,運行被測程序,使得程序中所有可
24、能的路徑至少執(zhí)行一次。實例中設(shè)計4個測試用例即可覆蓋該程序段的所有路徑L1、L2、L3和L4。7/20/202242軟 件 工 程 導(dǎo) 論7.3.7 路徑測試測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯實例測試用例:測試用例通過路徑覆蓋條件【(2,0,4), (2,0,3) 】ace(L1)【(1,1,1), (1,1,1) 】abe(L2)【(1,1,2), (1,1,3) 】abe(L3)【(3,0,3), (3,0,1) 】abd(L4)7/20/202243軟 件 工 程 導(dǎo) 論7.4 黑盒測試的測試用例設(shè)計7.4.1 等價類劃分7.4.2 邊界值分析7.4.3 錯
25、誤推測法7.4.4 因果圖測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202244軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分概述等價類劃分是一種典型的黑盒測試方法,也是一種非常實用的重要測試方法。使用這一方法設(shè)計測試用例要經(jīng)歷劃分等價類(列出等價類表)和選取測試用例兩步。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202245軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分步驟1)劃分等價類首先將數(shù)目極多的輸入數(shù)據(jù)(有效的和無效的)劃分為若干等價類。所謂等價類是指某個輸入域的子集合。在該子集中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的
26、。并合理地假定:測試某等價的代表值等價于對這一類其它值的測試。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202246軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分步驟1)劃分等價類等價類劃分有兩種情況:有效等價類:是指對于程序的規(guī)格來說,是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。無效等價類:是指對于程序的規(guī)格說明來說,是不合理的、無意義的輸入數(shù)據(jù)構(gòu)成的集合。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202247軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分步驟1)劃分等價類劃分等價類的原則:如果輸入條件規(guī)定了取值范圍或值的個數(shù),則可以確立
27、一個有效等價類和兩個無效等價類。如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,則可確立一個有效等價類和一個無效等價類。如果輸入條件是一個布爾值,則可以確立一個有效等價類和一個無效等價類。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202248軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分步驟1)劃分等價類劃分等價類的原則:如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對每個輸入值分別進行處理。則可為每一個輸入值確立一個有效等價類,針對這組值確立一個無效等價類。如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度
28、違反規(guī)則)。如果我們確知已劃分的等價類中各元素在程序中的處理方式不同,則應(yīng)將此等價類進一步劃分成更小的等價類。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202249軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分步驟2)確立測試用例在確立了等價類之后,建立等價類表,列出所有劃分出的等價類:再從劃分出的等價類中選擇測試用例。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯輸入條件有效等價類無效等價類7/20/202250軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分步驟2)確立測試用例測試用例選擇原則:為每一個等價類規(guī)定一個唯一的編號;設(shè)計一個新的測試用
29、例,使其盡可能多地覆蓋尚未被覆蓋的有效等價類,重復(fù)這一步,直到所有的有效等價類都被覆蓋為止;設(shè)計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復(fù)這一步,直到所有的無效等價類都被覆蓋為止。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202251軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分設(shè)計實例在某一PASCAL語言版本中規(guī)定:“標識符是由字母開頭、后跟字母或數(shù)字的任意組合構(gòu)成。有效字符數(shù)為8個,最大字符數(shù)為80個。”并規(guī)定:“標識符必須先說明,再使用。”“在同一說明語句中,標識符至少必須有一個?!睖y試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試
30、調(diào)試排錯7/20/202252軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分實例等價類表測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯輸入條件有效等價類無效等價類標識符個數(shù)1個(1),多個(2)0個(3)標識符字符數(shù)18個(4)0個(5),8個(6),80個(7)標識符組成字母(8),數(shù)字(9)非字母數(shù)字字符(10),保留字(11)第一個字符字母(12)非字母(13)標識符使用先說明后使用(14)未說明已使用(15)7/20/202253軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分實例測試用例VAR x, T1234567: REAL; (1),(2),(4),(8),(9),
31、(12),(14)BEGIN x:=3.414; T1234567:=2.732;VAR : REAL; (3)VAR x,:REAL; (5)VAR T12345678:REAL; (6)VAR T12345:REAL; (7) 多于80個字符測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202254軟 件 工 程 導(dǎo) 論7.4.1 等價類劃分實例測試用例VAR T $: CHAR; (10)VAR GOTO: INTEGER (11)VAR 2T: REAL; (13)VAR PAR: REAL; (15)BEGIN PAP:=SIN(3.140.8)/6;測試
32、基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202255軟 件 工 程 導(dǎo) 論7.4.2 邊界值分析概述邊界值分析也是一種黑盒測試方法,是對等價類劃分方法的補充。使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況。通常輸入等價類與輸出等價類的邊界,就是應(yīng)著重測試的邊界情況。應(yīng)當選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選擇等價類中的典型值或任意值作為測試數(shù)據(jù)。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202256軟 件 工 程 導(dǎo) 論7.4.2 邊界值分析選擇測試用例的原則(1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達到
33、這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù)。(2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最大個數(shù)多1、比最小個數(shù)少1的數(shù)作為測試數(shù)據(jù)。(3)根據(jù)規(guī)格說明的每個輸出條件,使用前面的原則(1)。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202257軟 件 工 程 導(dǎo) 論7.4.2 邊界值分析選擇測試用例的原則(4) 根據(jù)規(guī)格說明的每個輸出條件,使用前面的原則(2)。(5) 如果程序的規(guī)格說明給出的輸入域或輸出域?qū)嵱行蚣希ㄈ缬行虮?、順序文件等),則應(yīng)選取集合的第一個元素和最后一個元素作為測試用例。(6) 如果程序中使用了一個內(nèi)部
34、數(shù)據(jù)結(jié)構(gòu),則應(yīng)當選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。(7) 分析規(guī)格說明找出其它可能的邊界條件。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202258軟 件 工 程 導(dǎo) 論7.4.2 邊界值分析設(shè)計實例(閱卷給出成績報告)測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯(試題部分)標 題 1 80試題數(shù)標準答案 第150題2 1 3 4 9 10 59 60 79 80標準答案 第51100題2 1 9 10 59 60 79 80標準答案 第101150題2 1 9 10 59 60 79 80.7/20/202259軟 件 工 程
35、導(dǎo) 論7.4.2 邊界值分析測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯(學(xué)生答卷部分)某甲學(xué)號標準答案 第150題3 1 9 10 59 60 79 80標準答案 第51100題3 1 9 10 59 60 79 80.某乙學(xué)號標準答案 第150題3 1 9 10 59 60 79 80標準答案 第51100題3 1 9 10 59 60 79 80.7/20/202260軟 件 工 程 導(dǎo) 論7.4.2 邊界值分析記錄分組標題各題的標準答案學(xué)生的答卷輸出報告按學(xué)號排列的成績單,列出每個學(xué)生的成績、名次;按學(xué)生成績排列的成績單;平均分數(shù)及標準偏差的報告;試題分析報告。測試
36、基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202261軟 件 工 程 導(dǎo) 論7.4.2 邊界值分析測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯輸入條件測 試 用 例輸入文件空輸入文件標題沒有標題記錄標題只有一個字符標題有80個字符試題數(shù)試題數(shù)為1 試題數(shù)為50 試題數(shù)為51 試題數(shù)為100 試題數(shù)為999 試題數(shù)為0 試題數(shù)含有非數(shù)字字符標準答案記錄沒有標準答案記錄,有標題標準答案記錄多一個標準答案記錄少一個7/20/202262軟 件 工 程 導(dǎo) 論7.4.2 邊界值分析測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯輸入條件測
37、 試 用 例學(xué)生人數(shù)0個學(xué)生1個學(xué)生200個學(xué)生201個學(xué)生學(xué)生答題某學(xué)生只有一個回答記錄,但有兩個標準答案記錄該學(xué)生是文件中的第一個學(xué)生該學(xué)生是文件中的最后一個學(xué)生(記錄數(shù)出錯的學(xué)生)學(xué)生答題某學(xué)生有兩個回答記錄,但只有一個標準答案記錄該學(xué)生是文件中的第一個學(xué)生(記錄數(shù)出錯的學(xué)生) 該學(xué)生是文件中的最后一個學(xué)生7/20/202263軟 件 工 程 導(dǎo) 論7.4.2 邊界值分析測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯輸出條件測試用例學(xué)生成績所有學(xué)生成績都相等每個學(xué)生的成績都互不相同部分(不是全體)學(xué)生的成績相同(檢查是否按成績排名次)有個學(xué)生得0分有個學(xué)生得100分輸出
38、報告 有個學(xué)生的學(xué)號最?。z查按學(xué)號排列是否正確)有個學(xué)生的學(xué)號最大(檢查按學(xué)號排列是否正確)適當?shù)膶W(xué)生人數(shù),使產(chǎn)生的報告剛好印滿一頁(檢查打印頁數(shù))學(xué)生人數(shù)比剛才多1人(檢查打印換頁)7/20/202264軟 件 工 程 導(dǎo) 論7.4.2 邊界值分析測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯輸出條件測試用例輸出報告平均成績?yōu)?00分(所有學(xué)生都得滿分)平均成績?yōu)?分(所有學(xué)生都得0分) 標準偏差為最大值(有一半學(xué)生得0分,其他100份)標準偏差為0(所有學(xué)生成績都相等)輸出報告所有學(xué)生都答對了第一題所有學(xué)生都答錯了第一題所有學(xué)生都答對了最后一題所有學(xué)生都答錯了最后一題選
39、擇適當?shù)脑囶}數(shù),使第四個報告剛好打滿一頁試題數(shù)比剛才多1題,使報告打滿一頁后,剛好剩下一題未打 7/20/202265軟 件 工 程 導(dǎo) 論7.4.3 錯誤推測法概述錯誤推測法的基本想法是:列舉出程序中所有可能由的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)它們選擇測試用例。對于模塊中常見的錯誤和程序中容易出錯的情況,已有一些經(jīng)驗總結(jié)出來。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202266軟 件 工 程 導(dǎo) 論7.4.3 錯誤推測法實例(閱卷給出成績報告)錯誤推測法可以補充一些測試用例:程序是否把空格作為回答;在回答記錄中混有標準答案記錄;除了標題記錄外,還有一些記錄
40、的最后一個字符既不是“2”也不是“3”;有兩個學(xué)生的學(xué)號相同;試題數(shù)是負值。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202267軟 件 工 程 導(dǎo) 論7.4.4 因果圖因果圖的適用范圍因果圖適用于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來考慮設(shè)計測試用例的情況。因果圖方法最終生成的是判定表。它適合于檢查程序輸入條件的各種組合情況。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202268軟 件 工 程 導(dǎo) 論7.4.4 因果圖用因果圖生成測試用例的基本步驟(1)分析軟件規(guī)格說明描述中,哪些是原因,哪些是結(jié)果,并給每個原因和結(jié)果
41、賦予一個標識。(2)分析軟件規(guī)格說明描述中的語義,找出原因和結(jié)果之間、原因與原因之間對應(yīng)的是什么關(guān)系?根據(jù)這些關(guān)系,畫出因果圖。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202269軟 件 工 程 導(dǎo) 論7.4.4 因果圖用因果圖生成測試用例的基本步驟(3)由于語法或環(huán)境限制,有些原因與原因之間、原因與結(jié)果之間的組合情況不可能出現(xiàn)。為了表明這些特殊情況,在因果圖上用一記號標明約束或限制條件。(4)把因果圖轉(zhuǎn)換成判定表。(5)把判定表的每一列拿出來作為依據(jù),設(shè)計測試用例。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202270軟 件
42、工 程 導(dǎo) 論7.4.4 因果圖在因果圖中出現(xiàn)的基本符號(a)恒等:C1 E1(b)非:C1 E1(c)或:C1 C2(d)與:C1 C2測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯 E1 E17/20/202271軟 件 工 程 導(dǎo) 論7.4.4 因果圖表示約束條件的符號測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯EIORMababababacb唯一a和b中必須有一個,且僅有一個成立互斥排他a、b兩個原因不會同時出現(xiàn)包含或a、b、c三個原因中至少有一個必須成立屏蔽當a是1是b必須是0,而當a為0是b的值不定要求當a出現(xiàn)時b也必須出現(xiàn)7/20/20227
43、2軟 件 工 程 導(dǎo) 論7.4.4 因果圖設(shè)計實例自動售貨機軟件若投入5角錢或1元錢的硬幣,押下澄汁或啤酒的按鈕,則送出相應(yīng)的飲料。若售貨機沒有零錢找,則顯示零錢找完的紅燈亮,這時在投入1元硬幣并押下按鈕后,飲料不送出且退出1元硬幣;若有零錢找,則顯示零錢找完的紅燈滅,在送出飲料的同時退出5角硬幣。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202273軟 件 工 程 導(dǎo) 論7.4.4 因果圖設(shè)計實例原因和結(jié)果分析測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯原因1. 售貨機有零錢找結(jié)果21. 售貨機零錢找完燈亮2. 投入1元硬幣22. 退還1元
44、硬幣3. 投入5角硬幣23. 找回5角硬幣4. 押下澄汁按鈕24. 送出澄汁飲料5. 押下啤酒按鈕25. 送出啤酒飲料7/20/202274軟 件 工 程 導(dǎo) 論7.4.4 因果圖設(shè)計實例因果圖測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯售貨機有零錢找投入1元硬幣投入5角硬幣押下澄汁按鈕押下啤酒按鈕售貨機“零錢找完”燈亮退還1元硬幣找回5角硬幣送出澄汁飲料送出啤酒飲料12345212223242511121314EE中間結(jié)點:11. 投入1元硬幣且押下飲料按鈕 12. 押下澄汁或啤酒按鈕 13. 應(yīng)當找5角零錢并且售貨機有零錢找 14. 錢已付清7/20/202275軟 件
45、 工 程 導(dǎo) 論設(shè)計實例判定表序號12345678910123456789201234567893012條件1111111111111111000000000000000011111111000000001111111100000000111100001111000011110000111100001100110011001100110011001100110010101010101010101010101010101010中間結(jié)果110000000110000000110110110110110110110000000000000000110111000000111000結(jié)果00000000
46、0111111111000000000110000000110000000000000000100100000000100000010010000000010000測試用例YYYYYYYYYYYYYYYY123451112131421222324257/20/202276軟 件 工 程 導(dǎo) 論7.5 軟件測試的策略測試過程按4個步驟進行:單元測試組裝測試確認測試系統(tǒng)測試測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202277軟 件 工 程 導(dǎo) 論7.5 軟件測試的策略軟件測試的過程測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯單元測試單元測試單元
47、測試集成測試確認測試系統(tǒng)測試被測模塊被測模塊被測模塊設(shè) 計 信 息軟 件 需 求系 統(tǒng) 其 它 元 素 已經(jīng)過 測試的模塊已集成的軟件已確認的軟件可交付的軟件7/20/202278軟 件 工 程 導(dǎo) 論7.5 軟件測試的策略7.5.1 單元測試(unit testing)7.5.2 組裝測試(integrated testing)7.5.3 確認測試(validation testing)7.5.4 系統(tǒng)測試(system testing)7.5.5 測試的步驟及相應(yīng)的測試種類測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202279軟 件 工 程 導(dǎo) 論7.5.1
48、 單元測試(unit testing)概述單元測試又稱模塊測試,是針對軟件設(shè)計的最小單位程序模塊,進行正確性檢驗的測試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯。單元測試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計測試用例。多個模塊可以并行地獨立進行單元測試。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202280軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)單元測試的工作測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯模塊模塊接口出錯處理局部數(shù)據(jù)結(jié)構(gòu)邊界條件獨立路徑7/20/202281軟 件 工 程 導(dǎo) 論7.5.1 單元測試(u
49、nit testing)單元測試的內(nèi)容單元測試主要采用白盒測試的測試用例,輔之以黑盒測試的測試用例,是指對任何合理的輸入和不合理的輸入,都能鑒別和相應(yīng)。這要求對所有的局部的和全局的數(shù)據(jù)結(jié)構(gòu)、外部接口和程序代碼的關(guān)鍵部分,都要進行桌前檢查和嚴格的代碼審查。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202282軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)單元測試的內(nèi)容(1)模塊接口測試:調(diào)用本模塊時的輸入?yún)?shù)與模塊的形式參數(shù)的匹配情況;本模塊調(diào)用子模塊時,它輸入給子模塊的參數(shù)與子模塊中的形式參數(shù)的匹配情況;是否修改了只作為輸入用的形式參數(shù);
50、全局量的定義在各模塊中是否一致;限制是否通過形式參數(shù)來傳送。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202283軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)當使用外設(shè)輸入輸出時應(yīng)附加測試:文件屬性是否正確;OPEN語句與CLOSE語句是否正確;規(guī)定的IO格式說明與IO語句是否匹配;緩沖區(qū)容量與記錄長度是否匹配;在進行讀寫操作前是否打開了文件;在結(jié)束文件處理時是否關(guān)閉了文件;正文書寫輸入錯誤以及IO錯誤是否檢查并作了處理。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202284軟 件 工 程 導(dǎo) 論7.5.
51、1 單元測試(unit testing)單元測試的內(nèi)容(2)局部數(shù)據(jù)結(jié)構(gòu)測試:不正確或不一致的數(shù)據(jù)類型說明;使用尚未賦值或尚未初始化的變量;錯誤的初始值或錯誤的缺省值;變量名拼寫錯或書寫錯;不一致的數(shù)據(jù)類型。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202285軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)單元測試的內(nèi)容(3)路徑測試:選擇適當?shù)臏y試用例,對模塊中重要的執(zhí)行路徑進行測試。應(yīng)當設(shè)計測試用例查找由于錯誤的計算、不正確的比較或不正常的控制流而導(dǎo)致的錯誤。對基本執(zhí)行路徑和循環(huán)進行測試可以發(fā)現(xiàn)大量的路徑錯誤。測試基礎(chǔ)用例設(shè)計白盒測試
52、黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202286軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)常見的不正確計算:運算的優(yōu)先次序不正確或誤解了運算的優(yōu)先次序;運算的方式錯,即運算的對象彼此在類型上不相容;算法錯;初始化不正確;運算精度不夠;表達式的符號表示不正確。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202287軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)常見的比較和控制流錯誤:不同數(shù)據(jù)類型量的相互比較;不正確的邏輯運算符或優(yōu)先級;因浮點數(shù)運算精度問題而造成的量值比較不等;關(guān)系表達式中不正確的變量
53、和比較符;差“1”錯,即不正確地多循環(huán)一次或少循環(huán)一次;不適當?shù)匦薷牧搜h(huán)變量。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202288軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)單元測試的內(nèi)容(4)錯誤處理測試:比較完善的模塊設(shè)計要求能預(yù)見出錯的條件,并設(shè)置適當?shù)某鲥e處理,以便在一旦程序出錯時,能對出錯程序重作安排,保證其邏輯上的正確性。若出現(xiàn)下列情況之一,則表明模塊的錯誤處理功能包含有錯誤或缺陷:測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202289軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit
54、testing)若出現(xiàn)下列情況之一,則表明模塊的錯誤處理功能包含有錯誤或缺陷:出錯的描述難以理解;出錯的描述不足以對錯誤定位,不足以確定出錯的原因;顯示的錯誤與實際的錯誤不符;對錯誤條件的處理不正確;在對錯誤處理之前,錯誤條件已經(jīng)引起系統(tǒng)的干預(yù)。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202290軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)單元測試的內(nèi)容(5)邊界測試:在邊界上出現(xiàn)錯誤時常見的。要特別注意數(shù)據(jù)流、控制流中剛好等于、大于或小于確定的比較值時出錯的可能性。對這些地方要仔細地選擇測試用例,認真加以測試。測試基礎(chǔ)用例設(shè)計白盒測
55、試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202291軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)單元測試的步驟通常單元測試是在編碼階段進行的。在源程序代碼編制完成,經(jīng)過評審和驗證,確認沒有語法錯誤之后,就開始進行單元測試的測試用例設(shè)計。利用設(shè)計文檔,設(shè)計可以驗證程序功能、找出程序錯誤的多個測試用例。對于每一組輸入,應(yīng)有預(yù)期的正確結(jié)果。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202292軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)模塊并不是一個獨立的程序,在考慮測試模塊時,同時要考慮它和外界的聯(lián)系,
56、用一些輔助模塊去模擬與被測模塊相聯(lián)系的其它模塊。這些輔助模塊分為兩種:驅(qū)動模塊:相當于被測模塊的主模塊。樁模塊:用以代替被測模塊調(diào)用的子模塊。測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯7/20/202293軟 件 工 程 導(dǎo) 論7.5.1 單元測試(unit testing)單元測試的測試環(huán)境測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯驅(qū)動模塊被測模塊樁模塊樁模塊樁模塊測試用例測試結(jié)果7/20/202294軟 件 工 程 導(dǎo) 論7.5.2 組裝測試(integrated testing)測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯概
57、述組裝測試也叫做集成測試或聯(lián)合測試。通常,在單元測試的基礎(chǔ)上,需要將所有的模塊按照設(shè)計要求組裝成為系統(tǒng)。在單元測試的同時可進行組裝測試,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問題,最終構(gòu)成要求的軟件系統(tǒng)。7/20/202295軟 件 工 程 導(dǎo) 論7.5.2 組裝測試(integrated testing)測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯在系統(tǒng)組裝時要考慮的問題是:在把各個模塊連接起來時穿越模塊接口的數(shù)據(jù)是否會丟失;一個模塊的功能是否會對另一個模塊的工程產(chǎn)生不利的影響;各個子功能組合起來,能否達到預(yù)期要求的父功能;全局數(shù)據(jù)結(jié)構(gòu)是否有問題;單個模塊的誤差積累起來,是否會
58、放大,從而達到不能接受的程度。7/20/202296軟 件 工 程 導(dǎo) 論7.5.2 組裝測試(integrated testing)測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯概述選擇什么方式把模塊組裝起來形成一個可運行的系統(tǒng),直接影響到模塊測試用例的形式、所用測試工具的類型、模塊編號的次序和測試的次序、以及生成測試用例的費用和調(diào)試的費用。把模塊組裝成系統(tǒng)的方式有兩種:一次性組裝方式和增殖式組裝方式。7/20/202297軟 件 工 程 導(dǎo) 論7.5.2 組裝測試(integrated testing)測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯1)一
59、次性組裝方式它是一種非增殖式組裝方式。也叫做整體拼裝。使用這種方式,首先對每個模塊分別進行測試,然后再把所有模塊組裝在一起進行測試,最終得到要求的軟件系統(tǒng)。7/20/202298軟 件 工 程 導(dǎo) 論7.5.2 組裝測試(integrated testing)測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯單元測試和組裝順序ABCDEFABDCEFd1d2d3d4d5s1s2s3s4s5ABCDEF7/20/202299軟 件 工 程 導(dǎo) 論7.5.2 組裝測試(integrated testing)測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯2)增殖式組裝
60、方式這種組裝方法又稱漸增式組裝,首先對一個個模塊進行模塊測試,然后將這些模塊逐步組裝成較大的系統(tǒng),在組裝過程中邊連接邊測試,以發(fā)現(xiàn)連接過程中產(chǎn)生的問題。最后通過增殖逐步組裝成為要求的軟件系統(tǒng)。7/20/2022100軟 件 工 程 導(dǎo) 論7.5.2 組裝測試(integrated testing)測試基礎(chǔ)用例設(shè)計白盒測試黑盒測試本章小結(jié)測試策略人工測試調(diào)試排錯自頂向下的增殖方式 這種組裝方式將模塊按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進行組裝。其步驟如下: 對主模塊進行測試; 采用深度優(yōu)先或?qū)挾葍?yōu)先策略逐個加入其它模塊; 進行回歸測試; 判斷是否所有的模塊都已組裝到系統(tǒng)中,是則結(jié)束測試,否則轉(zhuǎn)到
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024鋁合金間接擠壓鑄造工藝規(guī)范
- 蘇州市2024-2025學(xué)年九年級上學(xué)期期中數(shù)學(xué)摸底調(diào)研卷
- 中語文必背古詩文默寫大全(含答案)
- 新疆某聯(lián)排別墅住宅小區(qū)工程施工組織設(shè)計
- 自然語言處理中的多任務(wù)學(xué)習(xí)與聯(lián)合學(xué)習(xí)
- 大理-PEP-2024年小學(xué)6年級上冊英語第五單元測驗卷
- 2023年舒血寧注射液資金籌措計劃書
- 強化企業(yè)職代會制度建設(shè)-規(guī)范促進企業(yè)民主管理
- 2023年天然氣汽車泄漏報警器投資申請報告
- 三維數(shù)字內(nèi)容制作-三維動畫模型制作流程規(guī)范
- 二年級數(shù)學(xué)看錯數(shù)字問題專項練習(xí)
- 七十歲老人換駕照考三力測試題庫
- 2024《整治形式主義為基層減負若干規(guī)定》全文課件
- 北京市八中2023-2024學(xué)年高二上學(xué)期期中生物試題 含解析
- 醫(yī)院感染預(yù)防與控制標準規(guī)范知識考試題庫500題(含答案)
- 走進非遺-山東民間美術(shù)智慧樹知到答案2024年山東第二醫(yī)科大學(xué)
- 中國法律史-第三次平時作業(yè)-國開-參考資料
- SYT 0452-2021 石油天然氣金屬管道焊接工藝評定-PDF解密
- PCBA審核表實用模板
- 后進生轉(zhuǎn)化課件
- 5篇XX街道鄉(xiāng)鎮(zhèn)掃黃打非工作總結(jié)匯報報告范文5篇
評論
0/150
提交評論