A-軟件工程課堂教學電子課件-第9課次_第1頁
A-軟件工程課堂教學電子課件-第9課次_第2頁
A-軟件工程課堂教學電子課件-第9課次_第3頁
A-軟件工程課堂教學電子課件-第9課次_第4頁
A-軟件工程課堂教學電子課件-第9課次_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程(課堂教學-第九課次)計算機科學與技術系 張家銳 第8章 軟件測試o 一、測試的基本概念o 二、黑盒測試o 三、白盒測試o 四、開發(fā)過程測試一、測試的基本概念1、什么是軟件測試? IEEE給出的軟件測試定義是:在特定的條件下運行系統(tǒng)或構(gòu)件,觀察或記錄結(jié)果,對系統(tǒng)的某個方面做出評價;或者是分析某個軟件系統(tǒng)項以發(fā)現(xiàn)現(xiàn)存的和要求的條件之差別并評價此軟件項的特性。 G.J.Myers在軟件測試技巧一書中給出的軟件測試定義是:程序測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。3/40一、測試的基本概念2、軟件測試的目的、任務 目的:發(fā)現(xiàn)程序的錯誤。 任務:通過在計算機上執(zhí)行程序,找出程序中潛在的錯誤。3、

2、測試的特性(特點) (1)(1)挑剔性挑剔性 (2)(2)復雜性復雜性 (3)(3)不徹底性不徹底性 (4)(4)經(jīng)濟性經(jīng)濟性4/40一、測試的基本概念4、軟件測試的分類 軟件測試依據(jù)開發(fā)階段可劃分為單元測試單元測試、集成測集成測試、確認測試、系統(tǒng)測試試、確認測試、系統(tǒng)測試和驗收測試驗收測試; 依據(jù)測試技術可劃分為白盒測試白盒測試、黑盒測試黑盒測試及灰盒灰盒測試測試; 依據(jù)執(zhí)行狀態(tài)可劃分為靜態(tài)測試靜態(tài)測試和動態(tài)測試動態(tài)測試; 依據(jù)執(zhí)行主體可劃分為:開發(fā)方測試開發(fā)方測試、用戶測試及用戶測試及第三方測試第三方測試。5/40一、測試的基本概念5、測試的相關文檔 測試計劃:包括測試項目名稱,各項測試的

3、目的、步驟和進度,以及測試用例的設計。 測試報告:包括測試項目名稱,實測結(jié)果與期望值的比較,發(fā)現(xiàn)的問題,以及測試達到的效果。-測試結(jié)果6、測試用例-測試時選用的例子 測試用例=測試數(shù)據(jù)+期望結(jié)果 測試結(jié)果=測試數(shù)據(jù)+期望結(jié)果+實際結(jié)果6/40二、黑盒測試1、黑盒測試含義 黑盒測試是軟件測試的主要方法之一。 黑盒測試也稱功能測試功能測試、數(shù)據(jù)驅(qū)動測試數(shù)據(jù)驅(qū)動測試、基基于規(guī)格說明的測試于規(guī)格說明的測試。 測試者不需具備應用程序的代碼、內(nèi)部結(jié)構(gòu)不需具備應用程序的代碼、內(nèi)部結(jié)構(gòu)和編程語言的專門知識和編程語言的專門知識,只需知道程序的輸輸入、輸出和系統(tǒng)的功能入、輸出和系統(tǒng)的功能,從用戶的角度針對軟件界面

4、、功能及外部表現(xiàn)進行測試,而不考慮程序內(nèi)部邏輯結(jié)構(gòu)。7/40二、黑盒測試2、黑盒測試能找出的錯誤類型黑盒測試法注重于測試軟件的功能需求,主要試圖發(fā)現(xiàn)下列幾類錯誤: 功能不正確或遺漏功能不正確或遺漏; 界面錯誤界面錯誤; 輸入和輸出錯誤輸入和輸出錯誤; 數(shù)據(jù)庫訪問錯誤數(shù)據(jù)庫訪問錯誤; 性能錯誤性能錯誤; 初始化和終止錯誤初始化和終止錯誤等。8/40二、黑盒測試3、黑盒測試常用的用例設計方法: (1)等價分類法等價分類法 (2)邊界值分析法邊界值分析法 (3)錯誤推測法 (4)因果圖法 (5)判定表驅(qū)動法 (6)正交試驗設計法 (7)功能圖法等。9/40二、黑盒測試4、等價分類法-含義 等價分類法

5、是把程序的輸入域劃分成若干部分(子集),然后從每個部分中選取少數(shù)代表性數(shù)據(jù)作為測試用例。每一類的代表性數(shù)據(jù)在測試中的作用等價于這一類中的其他值。 該方法是一種重要的,常用的黑盒測試用例設計方法。10/40二、黑盒測試4、等價分類法-等價類 等價類是指某個輸入域的子集合輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤都是等效的,并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試.因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù)取得較好的測試結(jié)果。11/40二、黑盒測試4、等價分類法-等價類的劃分o 等

6、價類劃分包括:有效等價類有效等價類和無效等價類無效等價類。o 有效等價類:是指對于程序的規(guī)格說明來說是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價類可檢驗程序是否實現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。o 無效等價類:與有效等價類的定義恰巧相反。12/40二、黑盒測試4、等價分類法-等價類劃分的準則在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下,則可以確立一個有效等價類和兩個無效等價類。在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個有效等價類和一個無效等價類。在輸入條件是一個布爾量的情況下,可確定一個有效等價類和一個無效等價類。在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并

7、且程序要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則時,可確立一個有效等價類(符合規(guī)則)和若干個無效等價類(從不同角度違反規(guī)則)。在確知已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應再將該等價類進一步的劃分為更小的等價類。13/40二、黑盒測試5、等價分類法-測試用例設計 設計測試用例時,要同時考慮這兩種等價類。因為,軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗,這樣的測試才能確保軟件具有更高的可靠性。 在確立了等價類后,可建立等價類表,列出所有劃分出的等價類。14/40二、黑盒測試o 5、等價分類法-測試用例設計o 輸入

8、條件 有效等價類 無效等價類15/40二、黑盒測試o 5、等價分類法-測試用例設計然后從劃分出的等價類中按以下三個原則設計測試用例: 為每一個等價類規(guī)定一個唯一的編號。 設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價類,重復這一步直到所有的有效等價類都被覆蓋為止。 設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步直到所有的無效等價類都被覆蓋為止。16/40二、黑盒測試o 6、等價類劃分法進行測試用例設計舉例: 公司圣誕節(jié)獎金發(fā)放計算程序:員工在公司公司圣誕節(jié)獎金發(fā)放計算程序:員工在公司的工作年限超過的工作年限超過3 3年,發(fā)放工資的年,發(fā)放工資的50%50%

9、;在公;在公司的工作年限超過司的工作年限超過5 5年,發(fā)放工資的年,發(fā)放工資的75%75%;在;在公司的工作年限超過公司的工作年限超過8 8年,發(fā)放工資的年,發(fā)放工資的100%100%17/40二、黑盒測試18/40二、黑盒測試o 7、邊界值分析法-含義 邊界值分析是通過選擇等價類邊界的測試用例。邊界值分析法不僅重視輸入條件邊界,而且也必須考慮輸出域邊界。 它是對等價類劃分方法的補充。19/40二、黑盒測試o 8、邊界值分析法-理念o 長期的測試工作經(jīng)驗告訴我們,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部,因此針對各種邊界情況設計測試用例,可以查出更多的錯誤。20

10、/40二、黑盒測試o 9、邊界值分析法-設計測試用例的一般思路 使用邊界值分析方法設計測試用例,首先應確定邊界情況,通常輸入和輸出等價類的邊界,就是應著重測試的邊界情況。應當選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù)。21/40二、黑盒測試o 10、基于邊界值分析法設計測試用例的原則:1)如果輸入條件規(guī)定了值的范圍,則應取剛達到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù)。2)如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù),最小個數(shù),比最小個數(shù)少1,比最大個數(shù)多1的數(shù)作為測試數(shù)據(jù)。3)根據(jù)規(guī)格說明的每個輸出條件,使用前面的

11、原則1)。4)根據(jù)規(guī)格說明的每個輸出條件,應用前面的原則2)。5)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應選取集合的第一個元素和最后一個元素作為測試用例。6)如果程序中使用了一個內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應當選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例。7)分析規(guī)格說明,找出其它可能的邊界條件。22/40二、黑盒測試o 11、邊界值分析法進行測試用例設計舉例: 有函數(shù)有函數(shù)f(x,yf(x,y) ),其中,其中x100,200 x100,200,y1,10y1,10。請寫出該函數(shù)采用基本邊界值。請寫出該函數(shù)采用基本邊界值分析法設計的測試用例。分析法設計的測試用例。23/40二、黑盒測試答:

12、在邊界值分析法中獲取測試用例的方法是:(1)每次保留程序中一個變量,讓其余的變量取正常值,被保留的變量依次取min、 nom 、 max 、min-、max+;(2)對程序中的每個變量重復(1)。本題設計的測試用例是:(100,5),(150,5),(200,5),(99,5),(201,5)(150,1),(150,5),(150,10),(150,0),(150,11)24/40三、白盒測試o 白盒測試-含義:o 白盒測試(white-box testing)也稱透明盒測試(glass box testing)、結(jié)構(gòu)測試(structural testing)、邏輯驅(qū)動測試或基于程序本身的

13、測試;o 軟件測試的主要方法之一;o 測試應用程序的內(nèi)部結(jié)構(gòu)或運作,而不是測試應用程序的功能;o 在白盒測試時,以編程語言的角度來設計測試案例。測試者輸入數(shù)據(jù)驗證數(shù)據(jù)流在程序中的移動路徑,并確定適當?shù)妮敵?,類似測試電路中的節(jié)點。測試者需要了解待測試程序的內(nèi)部結(jié)構(gòu)、算法等信息,這是從程序設計者的角度對程序進行的測試。25/40三、白盒測試o 白盒測試-應用: 白盒測試可以應用于單元測試(unit testing)、集成測試(integration testing)和系統(tǒng)的軟件測試流程,可測試在集成過程中每一單元之間的路徑,或者主系統(tǒng)跟子系統(tǒng)中的測試。盡管這種測試的方法可以發(fā)現(xiàn)許多的錯誤或問題,它

14、可能無法檢測未使用部分的規(guī)范。26/40四、開發(fā)過程測試 1、V模型及測試的層次性 2、單元測試 3、集成測試 4、確認測試 5、系統(tǒng)測試 6、驗收測試 7、其它專項測試27/401、V模型及測試的層次性o 單元測試o 集成測試o 系統(tǒng)測試o 驗收測試28/402、單元測試o 工廠在組裝一臺電視機之前,會對每個元件都進行測試,這就是單元測試。o 在一種傳統(tǒng)的結(jié)構(gòu)化編程語言中,比如C,要進行測試的單元一般是函數(shù)或子過程。在象C+/java這樣的面向?qū)ο蟮恼Z言中, 要進行測試的基本單元是類。o 單元測試(模塊測試)是開發(fā)者編寫的一小段代碼,用于檢驗被測代碼的一個很小的、很明確的功能是否正確。o 進

15、行單元測試,就是為了證明這段代碼的結(jié)果和我們期望的一致。29/403、集成測試o 集成測試是指對系統(tǒng)的各個部件進行聯(lián)合測試,以決定他們能否在一起共同工作而沒有沖突。部件可以是代碼塊、獨立的應用、網(wǎng)絡上的客戶端或服務器端程序。o 集成測試是在單元測試的基礎上,測試將所有的軟件單元按要求組裝成模塊、子系統(tǒng)或系統(tǒng)的過程中各部分工作是否達到或?qū)崿F(xiàn)相應技術指標及要求的活動。o 在集成測試之前,單元測試應該已經(jīng)完成,集成測試中所使用的對象應該是已經(jīng)經(jīng)過單元測試的軟件單元。o 集成測試(組裝測試,聯(lián)合測試)是單元測試的邏輯擴展。30/403、集成測試31/403、集成測試o 常見的集成測試方案: 自底向上集

16、成測試 自頂向下集成測試 Big-Bang集成測試 三明治集成測試 核心集成測試 分層集成測試 基于使用的集成測試等32/404、系統(tǒng)測試o 是對完整集成后的產(chǎn)品和解決方案進行測試,用來評價系統(tǒng)對具體需求規(guī)格說明的功能和非功能的符合性的測試。o 其測試的目的是發(fā)現(xiàn)可能難以直接與模塊或接口關聯(lián)的缺陷,發(fā)現(xiàn)產(chǎn)品設計、體系和代碼的基礎問題(產(chǎn)品級缺陷)。34/405、驗收測試o 驗收測試是部署軟件之前的最后一個測試操作。在軟件產(chǎn)品完成了功能測試和系統(tǒng)測試之后、產(chǎn)品發(fā)布之前所進行的軟件測試活動它是技術測試的最后一個階段,也稱為交付測試。驗收測試的目的是確保軟件準備就緒,并且可以讓最終用戶將其用于執(zhí)行軟

17、件的既定功能和任務。o 驗收測試是向未來的用戶表明系統(tǒng)能夠像預定要求那樣工作。經(jīng)集成測試后,已經(jīng)按照設計把所有的模塊組裝成一個完整的軟件系統(tǒng),接口錯誤也已經(jīng)基本排除了,接著就應該進一步驗證軟件的有效性,這就是驗收測試的任務,即軟件的功能和性能如同用戶所合理期待的那樣。35/406、其它專項測試o 性能測試:是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統(tǒng)的各項性能指標進行測試。o 負載測試和壓力測試是典型的性能測試。o 性能測試包括的測試內(nèi)容豐富多樣。中國軟件評測中心將性能測試概括為三個方面:應用在客戶端性能的測試、應用在網(wǎng)絡上性能的測試和應用在服務器端性能的測試。通常情況下,

18、三方面有效、合理的結(jié)合,可以達到對系統(tǒng)性能全面的分析和瓶頸的預測。36/406、其它專項測試o 負載測試(Load testing): 通過測試系統(tǒng)在資源超負荷情況下的表現(xiàn),以發(fā)現(xiàn)設計上的錯誤或驗證系統(tǒng)的負載能力。 在這種測試中,將使測試對象承擔不同的工作量,以評測測試對象在不同工作量條件下的性能行為,以及持續(xù)正常運行的能力。 負載測試的目標是確定并確保系統(tǒng)在超出最大預期工作量的情況下仍能正常運行。此外,負載測試還要評估性能特征,例如,響應時間、事務處理速率和其他與時間相關的方面。37/406、其它專項測試o 容量測試:o 容量可以看作系統(tǒng)性能指標中一個特定環(huán)境下的一個特定性能指標,即設定的界限或極限值。o 容量測試目的是通過測試預先分析出反映軟件系統(tǒng)應用特征的某項指標的極限值(如最大并發(fā)用戶數(shù)、數(shù)據(jù)庫記錄數(shù)等),系統(tǒng)在其極限值狀態(tài)下沒有出現(xiàn)任何軟件故障或還能保持主要功能正常運行。容量測試還將確定測試對象在給定時間內(nèi)能夠持續(xù)處理的最大負載或工作量。o 容量測試能讓開發(fā)商或用戶了解該系統(tǒng)的承載能力或提供服務的能力。如某個電子商務網(wǎng)站所能承受的、同時進行交易或結(jié)算的在線用戶數(shù)。知道了系統(tǒng)的實際容量,如果不能滿足設計要求,就應該尋求新的技術解決方案,以提高系統(tǒng)的容量。38/40

溫馨提示

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

評論

0/150

提交評論