版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第七章第七章 軟件測試軟件測試2目錄目錄o軟件測試基本概念軟件測試基本概念o軟件測試方法和技術(shù)軟件測試方法和技術(shù)o軟件測試步驟軟件測試步驟3有關(guān)軟件測試的錯(cuò)誤觀點(diǎn)有關(guān)軟件測試的錯(cuò)誤觀點(diǎn)o“軟件測試是為了證明程序是正確的,軟件測試是為了證明程序是正確的,即測試能發(fā)現(xiàn)程序中所有的錯(cuò)誤即測試能發(fā)現(xiàn)程序中所有的錯(cuò)誤”。|事實(shí)上這是不可能的。事實(shí)上這是不可能的。|要通過測試發(fā)現(xiàn)程序中的所有錯(cuò)誤,要通過測試發(fā)現(xiàn)程序中的所有錯(cuò)誤,就要窮舉所有可能的輸入數(shù)據(jù)。就要窮舉所有可能的輸入數(shù)據(jù)。4o例如:對(duì)于一個(gè)輸入三個(gè)例如:對(duì)于一個(gè)輸入三個(gè)16位字長位字長的整型數(shù)據(jù)的程序,輸入數(shù)據(jù)的所有的整型數(shù)據(jù)的程序,輸入數(shù)據(jù)的
2、所有組合情況有組合情況有248 ,如果測試一個(gè)數(shù)據(jù),如果測試一個(gè)數(shù)據(jù)需需1ms,則即使一年,則即使一年365天一天天一天24小時(shí)不停地測試,也需要約小時(shí)不停地測試,也需要約1萬年。萬年。5o例如:一個(gè)小程序的流程圖,它包括例如:一個(gè)小程序的流程圖,它包括了一個(gè)執(zhí)行了一個(gè)執(zhí)行20次的循環(huán),其循環(huán)體次的循環(huán),其循環(huán)體有五個(gè)分支。這個(gè)循環(huán)的不同執(zhí)行路有五個(gè)分支。這個(gè)循環(huán)的不同執(zhí)行路徑數(shù)達(dá)徑數(shù)達(dá)520條,如果對(duì)每一條路徑進(jìn)條,如果對(duì)每一條路徑進(jìn)行測試需要行測試需要1毫秒,那么即使一年工毫秒,那么即使一年工作作365 24小時(shí),要想把所有路小時(shí),要想把所有路徑測試完,大約需徑測試完,大約需3170年。年
3、。6o“軟件測試軟件測試不是不是為了證明程序是正確為了證明程序是正確的,即測試能發(fā)現(xiàn)程序中所有的錯(cuò)的,即測試能發(fā)現(xiàn)程序中所有的錯(cuò)誤誤”。(。()o“程序測試是為了證明程序正確地執(zhí)程序測試是為了證明程序正確地執(zhí)行了預(yù)期的功能行了預(yù)期的功能”。(。()7軟件測試的目的軟件測試的目的o目的是通過軟件測試以最少的時(shí)間和目的是通過軟件測試以最少的時(shí)間和人力找出軟件中潛在的各種錯(cuò)誤和缺人力找出軟件中潛在的各種錯(cuò)誤和缺陷陷。n測試是一個(gè)為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程。n一個(gè)好的測試用例是指很可能找到迄 今為至尚未發(fā)現(xiàn)的錯(cuò)誤的測試用例。n一個(gè)成功的測試是指揭示了迄今為至尚未發(fā)現(xiàn)的錯(cuò)誤的測試。8軟件測試的概念軟件
4、測試的概念軟件測試就是利用測試工具按照測試軟件測試就是利用測試工具按照測試方案和流程對(duì)產(chǎn)品進(jìn)行功能和性能測方案和流程對(duì)產(chǎn)品進(jìn)行功能和性能測試,甚至根據(jù)需要編寫不同的測試工試,甚至根據(jù)需要編寫不同的測試工具,設(shè)計(jì)和維護(hù)測試系統(tǒng),對(duì)測試方具,設(shè)計(jì)和維護(hù)測試系統(tǒng),對(duì)測試方案可能出現(xiàn)的問題進(jìn)行分析和評(píng)估。案可能出現(xiàn)的問題進(jìn)行分析和評(píng)估。執(zhí)行測試用例后,需要跟蹤故障,以執(zhí)行測試用例后,需要跟蹤故障,以確保開發(fā)的產(chǎn)品適合需求。確保開發(fā)的產(chǎn)品適合需求。9測試測試數(shù)據(jù)數(shù)據(jù)程序程序P比較比較結(jié)果數(shù)據(jù)預(yù)期數(shù)據(jù)相符不符追查追查缺陷缺陷10軟件質(zhì)量軟件質(zhì)量o軟件質(zhì)量就是軟件質(zhì)量就是“軟件與明確的和隱含軟件與明確的和隱
5、含的定義的需求相一致的程度的定義的需求相一致的程度”。具體。具體地說,軟件質(zhì)量是軟件符合明確敘述地說,軟件質(zhì)量是軟件符合明確敘述的功能和性能需求、文檔中明確描述的功能和性能需求、文檔中明確描述的開發(fā)標(biāo)準(zhǔn)、以及所有專業(yè)開發(fā)的軟的開發(fā)標(biāo)準(zhǔn)、以及所有專業(yè)開發(fā)的軟件都應(yīng)具有的隱含特征的程度。件都應(yīng)具有的隱含特征的程度。11軟件測試與軟件質(zhì)量的關(guān)系軟件測試與軟件質(zhì)量的關(guān)系o 測試有助于提高軟件的質(zhì)量,但是提高軟件測試有助于提高軟件的質(zhì)量,但是提高軟件的質(zhì)量不能依賴于測試。測試與質(zhì)量的關(guān)系的質(zhì)量不能依賴于測試。測試與質(zhì)量的關(guān)系很象在考試中很象在考試中“檢查檢查”與與“成績成績”的關(guān)系。的關(guān)系。 o 學(xué)習(xí)好
6、的學(xué)生,在考試時(shí)通過認(rèn)真檢查能減學(xué)習(xí)好的學(xué)生,在考試時(shí)通過認(rèn)真檢查能減少因疏忽而造成的答題錯(cuò)誤,從而少因疏忽而造成的答題錯(cuò)誤,從而“提高提高”了考試成績(取得他本來就該得的好成績)。了考試成績(取得他本來就該得的好成績)。 而學(xué)習(xí)差的學(xué)生,他原本就不會(huì)做題目,無而學(xué)習(xí)差的學(xué)生,他原本就不會(huì)做題目,無論檢查多么細(xì)心,也很難提高成績。論檢查多么細(xì)心,也很難提高成績。 o 軟件的高質(zhì)量是設(shè)計(jì)出來的,而不是靠測試軟件的高質(zhì)量是設(shè)計(jì)出來的,而不是靠測試修補(bǔ)出來的。修補(bǔ)出來的。12軟件測試的原則軟件測試的原則(1)盡早地和不間斷地進(jìn)行軟件測試)盡早地和不間斷地進(jìn)行軟件測試(2)測試用例應(yīng)由測試輸入數(shù)據(jù)和與
7、)測試用例應(yīng)由測試輸入數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果兩部分組成之對(duì)應(yīng)的預(yù)期輸出結(jié)果兩部分組成(3)程序員應(yīng)避免檢查自己的程序)程序員應(yīng)避免檢查自己的程序(4)在設(shè)計(jì)測試用例時(shí),應(yīng)當(dāng)包括合)在設(shè)計(jì)測試用例時(shí),應(yīng)當(dāng)包括合理的輸入條件和不合理的輸入條件理的輸入條件和不合理的輸入條件13(5)充分注意測試中的群集現(xiàn)象。)充分注意測試中的群集現(xiàn)象。(6)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的)嚴(yán)格執(zhí)行測試計(jì)劃,排除測試的隨意性隨意性(7)應(yīng)當(dāng)對(duì)每一個(gè)測試結(jié)果做全面檢)應(yīng)當(dāng)對(duì)每一個(gè)測試結(jié)果做全面檢查查(8)妥善保管測試計(jì)劃、測試用例、)妥善保管測試計(jì)劃、測試用例、出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告
8、,為維護(hù)提供方便供方便14目錄目錄o軟件測試基本概念軟件測試基本概念o軟件測試方法和技術(shù)軟件測試方法和技術(shù)o軟件測試步驟軟件測試步驟15軟件測試方法和技術(shù)軟件測試方法和技術(shù)測試方法和測試方法和測試技術(shù)測試技術(shù)靜態(tài)測試技術(shù)靜態(tài)測試技術(shù)動(dòng)態(tài)測試技術(shù)動(dòng)態(tài)測試技術(shù)16o靜態(tài)測試技術(shù):靜態(tài)測試技術(shù): 不運(yùn)行被測程序本身,僅通過分析或不運(yùn)行被測程序本身,僅通過分析或檢查源程序的語法、結(jié)構(gòu)、過程、接檢查源程序的語法、結(jié)構(gòu)、過程、接口等來檢查程序的正確性??诘葋頇z查程序的正確性。17o對(duì)需求規(guī)格說明書、軟件設(shè)計(jì)說明書、對(duì)需求規(guī)格說明書、軟件設(shè)計(jì)說明書、源程序做結(jié)構(gòu)分析、流程圖分析、符源程序做結(jié)構(gòu)分析、流程圖分
9、析、符號(hào)執(zhí)行來找錯(cuò)。例如:號(hào)執(zhí)行來找錯(cuò)。例如:n 不匹配的參數(shù)、不適當(dāng)?shù)难h(huán)嵌套不匹配的參數(shù)、不適當(dāng)?shù)难h(huán)嵌套和分支嵌套、不允許的遞歸、未使和分支嵌套、不允許的遞歸、未使用過的變量、空指針的引用和可疑用過的變量、空指針的引用和可疑的計(jì)算等。的計(jì)算等。o靜態(tài)測試結(jié)果可用于進(jìn)一步的查錯(cuò),靜態(tài)測試結(jié)果可用于進(jìn)一步的查錯(cuò),并為測試用例選取提供指導(dǎo)。并為測試用例選取提供指導(dǎo)。 18o動(dòng)態(tài)測試技術(shù):動(dòng)態(tài)測試技術(shù): 通過運(yùn)行被測程序,檢查運(yùn)行結(jié)果與預(yù)通過運(yùn)行被測程序,檢查運(yùn)行結(jié)果與預(yù)期結(jié)果的差異,并分析運(yùn)行效率和健期結(jié)果的差異,并分析運(yùn)行效率和健壯性等性能。目前,動(dòng)態(tài)測試是公司壯性等性能。目前,動(dòng)態(tài)測試是公
10、司測試工作的主要方式。測試工作的主要方式。 19軟件測試方法和技術(shù)軟件測試方法和技術(shù)測試方法和測試方法和測試技術(shù)測試技術(shù)靜態(tài)測試技術(shù)靜態(tài)測試技術(shù)動(dòng)態(tài)測試技術(shù)動(dòng)態(tài)測試技術(shù)桌前檢查桌前檢查代碼會(huì)審代碼會(huì)審步行檢查步行檢查20o 桌前檢查桌前檢查(Desk Check):程序員自己:程序員自己檢查程序效果不太理想。解決辦法:互檢查程序效果不太理想。解決辦法:互相交換程序檢查。相交換程序檢查。o 代碼會(huì)審代碼會(huì)審(Code Inspections):由一:由一組人通過閱讀、討論和爭議,對(duì)程序進(jìn)組人通過閱讀、討論和爭議,對(duì)程序進(jìn)行靜態(tài)分析的過程。行靜態(tài)分析的過程。o 步行檢查步行檢查(Walkthrou
11、ghs):預(yù)先準(zhǔn):預(yù)先準(zhǔn)備測試數(shù)據(jù),讓與會(huì)者充當(dāng)備測試數(shù)據(jù),讓與會(huì)者充當(dāng)“計(jì)算機(jī)計(jì)算機(jī)”一檢查程序的狀態(tài)。有時(shí)比真正運(yùn)行程一檢查程序的狀態(tài)。有時(shí)比真正運(yùn)行程序可能發(fā)現(xiàn)更多的錯(cuò)誤。序可能發(fā)現(xiàn)更多的錯(cuò)誤。21軟件測試方法和技術(shù)軟件測試方法和技術(shù)測試方法和測試方法和測試技術(shù)測試技術(shù)靜態(tài)測試技術(shù)靜態(tài)測試技術(shù)動(dòng)態(tài)測試技術(shù)動(dòng)態(tài)測試技術(shù)桌前檢查桌前檢查代碼會(huì)審代碼會(huì)審黑盒測試黑盒測試步行檢查步行檢查白盒測試白盒測試22軟件測試方法和技術(shù)軟件測試方法和技術(shù)1. 黑盒測試黑盒測試u等價(jià)類劃分等價(jià)類劃分u邊界值分析邊界值分析u錯(cuò)誤推測法錯(cuò)誤推測法u因果圖因果圖u功能圖功能圖u接口測試接口測試2. 白盒測試白盒測試
12、u邏輯覆蓋邏輯覆蓋u判定結(jié)構(gòu)分析判定結(jié)構(gòu)分析u循環(huán)結(jié)構(gòu)分析循環(huán)結(jié)構(gòu)分析u基本路徑覆蓋基本路徑覆蓋23黑盒測試黑盒測試(Black-Box Test)o又稱又稱功能測試功能測試或或數(shù)據(jù)驅(qū)動(dòng)測試數(shù)據(jù)驅(qū)動(dòng)測試。o把把測試對(duì)象測試對(duì)象看做看做一個(gè)黑盒一個(gè)黑盒,測試人員,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求和功能規(guī)部特性,只依據(jù)程序的需求和功能規(guī)格說明,檢查程序的功能是否符合它格說明,檢查程序的功能是否符合它的功能說明。的功能說明。24需求需求&功能功能規(guī)格說明規(guī)格說明產(chǎn)生產(chǎn)生被測程序被測程序測試結(jié)果測試結(jié)果輸出輸出比較比較測試用例測試
13、用例|黑盒測試只關(guān)心輸黑盒測試只關(guān)心輸入與輸出的對(duì)應(yīng)關(guān)系,入與輸出的對(duì)應(yīng)關(guān)系,不關(guān)心被測程序的內(nèi)不關(guān)心被測程序的內(nèi)部關(guān)系。部關(guān)系。25o黑盒測試方法是在程序接口上進(jìn)行測黑盒測試方法是在程序接口上進(jìn)行測試,主要是為了發(fā)現(xiàn)以下錯(cuò)誤試,主要是為了發(fā)現(xiàn)以下錯(cuò)誤:1)1) 是否有不正確或遺漏了的功能是否有不正確或遺漏了的功能? ?2)2) 在接口上,輸入能否正確地接受在接口上,輸入能否正確地接受? ? 能否輸出正能否輸出正確的結(jié)果確的結(jié)果? ?3)3) 是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問錯(cuò)誤件)訪問錯(cuò)誤? ?4)4) 性能上是否能夠滿足要求性能上是否
14、能夠滿足要求? ?5)5) 是否有初始化或終止性錯(cuò)誤是否有初始化或終止性錯(cuò)誤? ?黑盒測試的方法和特點(diǎn)黑盒測試的方法和特點(diǎn)o (1)等價(jià)類劃分:等價(jià)類劃分是將輸入數(shù)據(jù)域按有效的或無效的(也稱合理的或不合理的)劃分成若干個(gè)等價(jià)類,測試每個(gè)等價(jià)類的代表值就等于對(duì)該類其它值的測試。o (2)邊界值分析:該方法是將測試邊界情況作為重點(diǎn)目標(biāo),選取正好等于,剛剛大于或剛剛小于邊界值的情況,根據(jù)這些情況選擇測試用例。o (3)錯(cuò)誤推測:錯(cuò)誤推測法沒有確定的步驟,憑經(jīng)驗(yàn)進(jìn)行。它的基本思想是列出程序中可能發(fā)生錯(cuò)誤的情況,根據(jù)這些情況選擇測試用例。o (4)因果圖:因果圖能有效的檢測輸入條件的各種組合可能會(huì)引起的
15、錯(cuò)誤。因果圖的基本原理是通過畫因果圖,把用自然語言描述的功能說明轉(zhuǎn)換為判定表,最后為判定表的每一列設(shè)計(jì)一個(gè)測試用例。2627白盒測白盒測試(試(White-Box Test)o又稱又稱結(jié)構(gòu)測試結(jié)構(gòu)測試或或邏輯驅(qū)動(dòng)測試。邏輯驅(qū)動(dòng)測試。o把把測試對(duì)象測試對(duì)象看做一個(gè)看做一個(gè)玻璃盒子玻璃盒子,它允,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測試用例,及有關(guān)信息,設(shè)計(jì)或選擇測試用例,對(duì)程序所有邏輯路徑進(jìn)行測試。對(duì)程序所有邏輯路徑進(jìn)行測試。28o軟件人員使用白盒測試方法,主要想軟件人員使用白盒測試方法,主要想對(duì)程序模塊進(jìn)行如下的檢查:對(duì)程序模塊進(jìn)行如下的檢
16、查:1)1)對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測試一次至少測試一次 路徑覆蓋測試路徑覆蓋測試;2)2)對(duì)所有的邏輯判定,取對(duì)所有的邏輯判定,取“真真”與取與取“假假”的兩種情況都至少測試一的兩種情況都至少測試一次次 邏輯覆蓋測試邏輯覆蓋測試;293)3)在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體環(huán)體 控制流測試控制流測試;4)4)測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性 數(shù)數(shù)據(jù)流測試、領(lǐng)域測試據(jù)流測試、領(lǐng)域測試等。等。30黑盒測試與白盒測試優(yōu)缺點(diǎn)比較黑盒測試與白盒測試優(yōu)缺點(diǎn)比較黑盒測試黑盒測試 白盒測試白盒測試 優(yōu)優(yōu)點(diǎn)點(diǎn)缺缺點(diǎn)點(diǎn)性性質(zhì)
17、質(zhì)適用于各階段測試適用于各階段測試從產(chǎn)品功能角度測試從產(chǎn)品功能角度測試容易入手生成測試數(shù)據(jù)容易入手生成測試數(shù)據(jù)可構(gòu)成測試數(shù)據(jù)使特定程可構(gòu)成測試數(shù)據(jù)使特定程序部分得到測試序部分得到測試有一定的充分性度量手段有一定的充分性度量手段可獲較多工具支持可獲較多工具支持某些代碼得不到測試某些代碼得不到測試如果規(guī)格說明有誤,如果規(guī)格說明有誤, 則無法發(fā)現(xiàn)則無法發(fā)現(xiàn)不易進(jìn)行充分性測試不易進(jìn)行充分性測試不易生成測試數(shù)據(jù)不易生成測試數(shù)據(jù)( (通常通常) )無法對(duì)未實(shí)現(xiàn)規(guī)格說明的部分無法對(duì)未實(shí)現(xiàn)規(guī)格說明的部分進(jìn)行測試進(jìn)行測試工作量大,通常只用于單元測工作量大,通常只用于單元測試,有應(yīng)用局限試,有應(yīng)用局限是一種是一種
18、確認(rèn)確認(rèn)技術(shù),回答技術(shù),回答“我們在構(gòu)造一個(gè)正確我們在構(gòu)造一個(gè)正確 的系統(tǒng)嗎的系統(tǒng)嗎?”是一種是一種驗(yàn)證驗(yàn)證技術(shù),回答技術(shù),回答“我們在正確地構(gòu)造一個(gè)系我們在正確地構(gòu)造一個(gè)系 統(tǒng)嗎統(tǒng)嗎?”31目錄目錄o軟件測試基本概念軟件測試基本概念o軟件測試方法和技術(shù)軟件測試方法和技術(shù)o軟件測試步驟軟件測試步驟32軟件測試的步驟和策略軟件測試的步驟和策略o軟件開發(fā)過程是一個(gè)自頂向下、逐步軟件開發(fā)過程是一個(gè)自頂向下、逐步細(xì)化的過程,細(xì)化的過程,o測試過程則是自底向上、逐步集成的測試過程則是自底向上、逐步集成的過程。低一級(jí)測試為上一級(jí)測試準(zhǔn)備過程。低一級(jí)測試為上一級(jí)測試準(zhǔn)備條件,條件, 如下頁圖所示如下頁圖所示
19、33規(guī)格定義規(guī)格定義設(shè)計(jì)設(shè)計(jì)編碼編碼系統(tǒng)測試系統(tǒng)測試集成測試集成測試單元測試單元測試用戶需求用戶需求驗(yàn)收測試驗(yàn)收測試自頂向下逐步細(xì)化自頂向下逐步細(xì)化相反順序集成過程相反順序集成過程回回歸歸測測試試3435單元測試單元測試模塊1模塊2集成測試集成的軟件確認(rèn)測試確認(rèn)的軟件系統(tǒng)測試交付軟件已測模塊1已測模塊n設(shè)計(jì)信息軟件需求其他系統(tǒng)元素n36編程編程(同步同步)單元測試單元測試其他測試其他測試37o單元測試的內(nèi)容:單元測試的內(nèi)容:1、模塊接口測試、模塊接口測試2、檢查局部數(shù)據(jù)結(jié)構(gòu)能否保持完整性、檢查局部數(shù)據(jù)結(jié)構(gòu)能否保持完整性3、模塊邊界條件測試、模塊邊界條件測試4、模塊執(zhí)行路徑測試、模塊執(zhí)行路徑測試
20、5、檢查模塊內(nèi)部錯(cuò)誤處理是否有效、檢查模塊內(nèi)部錯(cuò)誤處理是否有效o單元測試方法:單元測試方法:|白盒測試為主,黑盒測試為輔。白盒測試為主,黑盒測試為輔。38o單元測試檢查單單元測試檢查單1、邏輯和算法:正確實(shí)現(xiàn)了邏輯和算法。、邏輯和算法:正確實(shí)現(xiàn)了邏輯和算法。2、數(shù)據(jù)結(jié)構(gòu)(全局和局部):使用了全、數(shù)據(jù)結(jié)構(gòu)(全局和局部):使用了全局?jǐn)?shù)據(jù)結(jié)構(gòu)?哪些?如果有,作了哪些關(guān)局?jǐn)?shù)據(jù)結(jié)構(gòu)?哪些?如果有,作了哪些關(guān)于全局?jǐn)?shù)據(jù)的假設(shè)?這些假設(shè)正確嗎?使于全局?jǐn)?shù)據(jù)的假設(shè)?這些假設(shè)正確嗎?使用了局部數(shù)據(jù)?在算法執(zhí)行的所有步驟期用了局部數(shù)據(jù)?在算法執(zhí)行的所有步驟期間,保持局部數(shù)據(jù)的完整性了嗎?間,保持局部數(shù)據(jù)的完整性了
21、嗎?393、接口:來自調(diào)用模塊的數(shù)據(jù)匹配被調(diào)、接口:來自調(diào)用模塊的數(shù)據(jù)匹配被調(diào) 用的模塊的期望接收的數(shù)據(jù)?被調(diào)用模塊用的模塊的期望接收的數(shù)據(jù)?被調(diào)用模塊的數(shù)據(jù)匹配調(diào)用的模塊提供的數(shù)據(jù)?的數(shù)據(jù)匹配調(diào)用的模塊提供的數(shù)據(jù)?4、獨(dú)立路徑:標(biāo)識(shí)了所有穿過模塊的獨(dú)、獨(dú)立路徑:標(biāo)識(shí)了所有穿過模塊的獨(dú)立路徑?執(zhí)行了嗎?立路徑?執(zhí)行了嗎?5、邊界條件:了解邊界條件嗎?進(jìn)行了、邊界條件:了解邊界條件嗎?進(jìn)行了測試確保該模塊在其邊界條件上的適當(dāng)?shù)臏y試確保該模塊在其邊界條件上的適當(dāng)?shù)牟僮髁藛??操作了嗎?、出錯(cuò)處理:所有出錯(cuò)處理路徑均執(zhí)行、出錯(cuò)處理:所有出錯(cuò)處理路徑均執(zhí)行到了嗎?到了嗎?4041單元測試單元測試模塊1
22、模塊2集成測試集成的軟件確認(rèn)測試確認(rèn)的軟件系統(tǒng)測試交付軟件已測模塊1已測模塊n設(shè)計(jì)信息軟件需求其他系統(tǒng)元素n42 各單元的接口是否吻合、代碼是否符各單元的接口是否吻合、代碼是否符合規(guī)定的標(biāo)準(zhǔn)、界面標(biāo)準(zhǔn)是否統(tǒng)一等。合規(guī)定的標(biāo)準(zhǔn)、界面標(biāo)準(zhǔn)是否統(tǒng)一等。 既要求參與的人熟悉單元的內(nèi)部細(xì)節(jié),既要求參與的人熟悉單元的內(nèi)部細(xì)節(jié),又要求他們能夠從足夠高的層次上觀又要求他們能夠從足夠高的層次上觀察整個(gè)系統(tǒng)。一般由有經(jīng)驗(yàn)的測試人察整個(gè)系統(tǒng)。一般由有經(jīng)驗(yàn)的測試人員和主要的軟件開發(fā)者來完成集成測員和主要的軟件開發(fā)者來完成集成測試的計(jì)劃。試的計(jì)劃。43 集成測試計(jì)劃由系統(tǒng)設(shè)計(jì)人員在設(shè)計(jì)階集成測試計(jì)劃由系統(tǒng)設(shè)計(jì)人員在設(shè)計(jì)
23、階段制定,它是和設(shè)計(jì)規(guī)格說明同時(shí)完段制定,它是和設(shè)計(jì)規(guī)格說明同時(shí)完成的。內(nèi)容有:成的。內(nèi)容有:n 測試的描述和范圍測試的描述和范圍n 測試環(huán)境測試環(huán)境n 測試時(shí)間表測試時(shí)間表44n 集成次序集成次序n 測試用例以及測試的預(yù)期結(jié)果等測試用例以及測試的預(yù)期結(jié)果等4546 確認(rèn)測試又稱有效性測試。它的任務(wù)是確認(rèn)測試又稱有效性測試。它的任務(wù)是檢查軟件的功能與性能是否與需求規(guī)格檢查軟件的功能與性能是否與需求規(guī)格說明書中確定的指標(biāo)相符合說明書中確定的指標(biāo)相符合單元測試單元測試模塊1模塊2集成測試集成的軟件確認(rèn)測試確認(rèn)的軟件系統(tǒng)測試交付軟件已測模塊1已測模塊n設(shè)計(jì)信息軟件需求其他系統(tǒng)元素no 確認(rèn)測試階段有
24、兩項(xiàng)工作,進(jìn)行確認(rèn)測試與軟件配置審查。確認(rèn)測試一般是在模擬環(huán)境中運(yùn)用黑盒測試方法,由專門測試人員和用戶參加的測試。軟件配置審查的任務(wù)是檢查軟件的所有文檔資料的完整性、正確性。如果發(fā)現(xiàn)遺漏和錯(cuò)誤,應(yīng)補(bǔ)充和改正,同時(shí)要編排好目錄,為以后的軟件維護(hù)工作奠定基礎(chǔ)。474849單元測試單元測試模塊1模塊2集成測試集成的軟件確認(rèn)測試確認(rèn)的軟件系統(tǒng)測試交付軟件已測模塊1已測模塊n設(shè)計(jì)信息軟件需求其他系統(tǒng)元素n50o為了發(fā)現(xiàn)缺陷并度量產(chǎn)品質(zhì)量,按照為了發(fā)現(xiàn)缺陷并度量產(chǎn)品質(zhì)量,按照系統(tǒng)的功能和性能需求進(jìn)行的測試系統(tǒng)的功能和性能需求進(jìn)行的測試n 一般使用黑盒測試技術(shù)一般使用黑盒測試技術(shù)n 一般由獨(dú)立的測試人員完成
25、一般由獨(dú)立的測試人員完成51o通常意義上的系統(tǒng)測試包括:通常意義上的系統(tǒng)測試包括:n 功能測試功能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity test)n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試52功能測試53o通常意義上的系統(tǒng)測試包括:通常意義上的系統(tǒng)測試包括:n 功能測試功能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity test)n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試
26、54o壓力測試壓力測試n 也稱強(qiáng)度測試。也稱強(qiáng)度測試。n 目的:目的:o在軟件投入使用以前或軟件負(fù)載達(dá)在軟件投入使用以前或軟件負(fù)載達(dá)到極限以前,通過執(zhí)行可重復(fù)的負(fù)到極限以前,通過執(zhí)行可重復(fù)的負(fù)載測試,預(yù)先分析出軟件可承受的載測試,預(yù)先分析出軟件可承受的并發(fā)用戶極限值和性能瓶頸,以幫并發(fā)用戶極限值和性能瓶頸,以幫助軟件廠商或用戶優(yōu)化自己的程序。助軟件廠商或用戶優(yōu)化自己的程序。55o通常意義上的系統(tǒng)測試包括:通常意義上的系統(tǒng)測試包括:n 功能測試功能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity te
27、st)n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試56o性能測試性能測試n 對(duì)于那些實(shí)時(shí)和嵌入式系統(tǒng),軟件部分即使?jié)M足功能要求,也未必能夠滿足性能要求,雖然從單元測試起,每一測試步驟都包含性能測試,但只有當(dāng)系統(tǒng)真正集成之后,在真實(shí)環(huán)境中才能全面、可靠地測試運(yùn)行性能,系統(tǒng)性能測試就是為了完成這一任務(wù)。57o通常意義上的系統(tǒng)測試包括:通常意義上的系統(tǒng)測試包括:n 功能測試功能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity test)n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試58o容量
28、測試容量測試n 對(duì)軟件容量的測試,能讓用戶明白對(duì)軟件容量的測試,能讓用戶明白到底此軟件能一次性承擔(dān)多大訪問到底此軟件能一次性承擔(dān)多大訪問量。有了對(duì)軟件負(fù)載的準(zhǔn)確預(yù)測,量。有了對(duì)軟件負(fù)載的準(zhǔn)確預(yù)測,不僅能讓用戶對(duì)軟件在實(shí)際使用中不僅能讓用戶對(duì)軟件在實(shí)際使用中的性能狀況充滿信心,同時(shí)也可以的性能狀況充滿信心,同時(shí)也可以幫助用戶最經(jīng)濟(jì)地規(guī)劃自己的網(wǎng)絡(luò)幫助用戶最經(jīng)濟(jì)地規(guī)劃自己的網(wǎng)絡(luò)配置,避免無謂的硬件投入,還可配置,避免無謂的硬件投入,還可以減少網(wǎng)絡(luò)系統(tǒng)的宕機(jī)時(shí)間和因此以減少網(wǎng)絡(luò)系統(tǒng)的宕機(jī)時(shí)間和因此帶來的經(jīng)濟(jì)損失。帶來的經(jīng)濟(jì)損失。59o通常意義上的系統(tǒng)測試包括:通常意義上的系統(tǒng)測試包括:n 功能測試功
29、能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity test)n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試60o用戶界面的測試用戶界面的測試:n 符合標(biāo)準(zhǔn)和規(guī)范符合標(biāo)準(zhǔn)和規(guī)范n 直觀性直觀性 一致性一致性 n 靈活性靈活性 舒適性舒適性n 正確性正確性 實(shí)用性實(shí)用性61o通常意義上的系統(tǒng)測試包括:通常意義上的系統(tǒng)測試包括:n 功能測試功能測試n 壓力測試壓力測試(Stress test)n 性能測試性能測試(Performance test)n 容量測試容量測試(Capacity test)
30、n 用戶界面測試用戶界面測試n 兼容性測試兼容性測試62o其他還有一些關(guān)于測試的分類,例如其他還有一些關(guān)于測試的分類,例如:n 健壯性測試健壯性測試n 容災(zāi)測試容災(zāi)測試n 內(nèi)存泄漏測試內(nèi)存泄漏測試n 并發(fā)性測試并發(fā)性測試n 安全性測試安全性測試n 配套產(chǎn)品測試配套產(chǎn)品測試| 實(shí)際上,這些測試都是因?yàn)闇y試的目的不同,實(shí)際上,這些測試都是因?yàn)闇y試的目的不同,而在制定測試策略和測試設(shè)計(jì)的時(shí)候有不同而在制定測試策略和測試設(shè)計(jì)的時(shí)候有不同的側(cè)重點(diǎn)。的側(cè)重點(diǎn)。63o必做的測試:必做的測試:n 安裝測試安裝測試n 功能測試功能測試n 值域測試值域測試n 界面測試界面測試n 可用性測試可用性測試n 說明書測試
31、說明書測試n 配置測試配置測試n 加密問題測試加密問題測試n 裸機(jī)測試裸機(jī)測試o可選的測試:可選的測試:n 內(nèi)存泄漏測試內(nèi)存泄漏測試n 接口測試接口測試n 性能測試性能測試n 并發(fā)性測試并發(fā)性測試n 安全性測試安全性測試n 破壞性測試破壞性測試n 配套產(chǎn)品測試配套產(chǎn)品測試64656667測試級(jí)測試級(jí)目的目的執(zhí)行者執(zhí)行者 測試環(huán)境測試環(huán)境測試方法測試方法單元單元從單個(gè)模塊中從單個(gè)模塊中發(fā)現(xiàn)邏輯、數(shù)發(fā)現(xiàn)邏輯、數(shù)據(jù)和運(yùn)算缺陷據(jù)和運(yùn)算缺陷軟件工程師軟件工程師單獨(dú)的;單獨(dú)的;樁和支撐樁和支撐程序程序白盒測試白盒測試集成集成發(fā)現(xiàn)模塊間發(fā)現(xiàn)模塊間接口缺陷接口缺陷軟件工程師軟件工程師單 獨(dú) 的 和單 獨(dú) 的
32、和 /或模擬;樁或模擬;樁和支撐程序和支撐程序白盒測試白盒測試To p - d o w n , bottom-up, 或或outside-in系統(tǒng)系統(tǒng)測定軟件是測定軟件是否滿足需求否滿足需求軟件質(zhì)保組軟件質(zhì)保組軟件確認(rèn)組軟件確認(rèn)組實(shí) 際 的 環(huán) 境實(shí) 際 的 環(huán) 境(可能沒有最(可能沒有最終的硬件)終的硬件)功能測試和功能測試和ALAC68一些問題一些問題o問題問題1 1:有了:有了“黑盒黑盒”測試為什么還要測試為什么還要“白盒白盒”測試?測試?答:黑盒測試只能觀察軟件的外部表現(xiàn),即使軟答:黑盒測試只能觀察軟件的外部表現(xiàn),即使軟件的輸入輸出都是正確的,卻并不能說明軟件件的輸入輸出都是正確的,卻
33、并不能說明軟件就是正確的。因?yàn)槌绦蛴锌赡苡缅e(cuò)誤的運(yùn)算方就是正確的。因?yàn)槌绦蛴锌赡苡缅e(cuò)誤的運(yùn)算方式得出正確的結(jié)果,例如式得出正確的結(jié)果,例如“負(fù)負(fù)得正,錯(cuò)錯(cuò)得負(fù)負(fù)得正,錯(cuò)錯(cuò)得對(duì)對(duì)”,只有白盒測試才能發(fā)現(xiàn)真正的原因。,只有白盒測試才能發(fā)現(xiàn)真正的原因。 白盒測試能發(fā)現(xiàn)程序里的隱患,象內(nèi)存泄漏、白盒測試能發(fā)現(xiàn)程序里的隱患,象內(nèi)存泄漏、誤差累計(jì)問題。在這方面,黑盒測試存在嚴(yán)重誤差累計(jì)問題。在這方面,黑盒測試存在嚴(yán)重的不足。的不足。69o問題問題2 2:由于單元測試要寫測試驅(qū)動(dòng)程序,:由于單元測試要寫測試驅(qū)動(dòng)程序,非常麻煩,能否等到整個(gè)系統(tǒng)全部開發(fā)非常麻煩,能否等到整個(gè)系統(tǒng)全部開發(fā)完后,再集中精力進(jìn)行一次性地單元測完后,再集中精力進(jìn)行一次性地單元測試呢?試呢?答:如果這樣做,在開發(fā)過程中,缺陷會(huì)越答:如果這樣做,在開發(fā)過程中,缺陷會(huì)越積越多并且分布得更廣、隱藏得更深,反積越多并且分布得更廣、隱藏得更深,反而導(dǎo)致測試與改錯(cuò)的代價(jià)大大增加。最糟而導(dǎo)致測試與改錯(cuò)的代價(jià)大大增加。最糟糕的是無法估計(jì)測試與改錯(cuò)的工作量,使糕的是無法估計(jì)測試與改錯(cuò)的工作量,使進(jìn)度失去控制。因此為圖眼前省事而省略進(jìn)度失去控制。因此為圖眼前省事而省略單元測試或者單元測試或者“偷工減料偷工減料”,是,是“得不償?shù)貌粌斒А钡淖龇?。的做法?0o問題問題3 3:如果每個(gè)單元都通過了
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年農(nóng)業(yè)大棚種植與農(nóng)業(yè)生態(tài)保護(hù)合作框架協(xié)議4篇
- 三年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)匯編及答案
- 泥工班組承包合同(二零二五年度)2篇
- 2025年存量房買賣合同(帶租賃權(quán)優(yōu)先購買權(quán)條款)4篇
- 二零二四年度養(yǎng)老院場地租賃與養(yǎng)老服務(wù)合同
- Unit 1 School Subjects Let's Spell(說課稿)-2023-2024學(xué)年人教新起點(diǎn)版英語三年級(jí)下冊
- 二零二五年度生態(tài)濕地植物種植與養(yǎng)護(hù)服務(wù)合同范例4篇
- 2025年度綠色建筑產(chǎn)業(yè)園區(qū)租賃合同3篇
- 二零二五版班組工前會(huì)工后會(huì)記錄與應(yīng)急管理服務(wù)合同3篇
- 個(gè)性化群智計(jì)算激勵(lì)機(jī)制研究
- 三級(jí)人工智能訓(xùn)練師(高級(jí))職業(yè)技能等級(jí)認(rèn)定考試題及答案
- 華為全屋智能試題
- 第三單元名著導(dǎo)讀《經(jīng)典常談》知識(shí)清單 統(tǒng)編版語文八年級(jí)下冊
- 第十七章-阿法芙·I·梅勒斯的轉(zhuǎn)變理論
- 焊接機(jī)器人在汽車制造中應(yīng)用案例分析報(bào)告
- 合成生物學(xué)在生物技術(shù)中的應(yīng)用
- 中醫(yī)門診病歷
- 廣西華銀鋁業(yè)財(cái)務(wù)分析報(bào)告
- 無違法犯罪記錄證明申請表(個(gè)人)
- 大學(xué)生勞動(dòng)教育PPT完整全套教學(xué)課件
- 繼電保護(hù)原理應(yīng)用及配置課件
評(píng)論
0/150
提交評(píng)論