第2講 黑盒測試 1_第1頁
已閱讀1頁,還剩115頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、,實驗一 科技樓 測試二室周二/三下午 5-6節(jié)。第7節(jié)回教室上課。上機時,第2節(jié)課開始后,實驗完成一部分的,可以給我檢查。檢查后繼續(xù)完成實驗,第7節(jié)課回到教室上課。,黑盒測試技術,僅需:被測對象的輸入、預期輸出無需:程序的結(jié)構、實現(xiàn)邏輯、源代碼 … …依據(jù):系統(tǒng)需求or測試需求,黑盒測試技術,適用階段當被測對象為函數(shù)時 JPGs\2\TwoPS.java完成對函數(shù)功能的測試無需

2、查看函數(shù)代碼,只需了解函數(shù)接口和返回值。對應單元測試階段。當被測對象為功能時 JPGs\1\NEXTDAY.exe完成對整個軟件系統(tǒng)功能和一些特性的測試也無需看各功能點如何編程實現(xiàn),只需要了解SRS中關于輸入和輸出的規(guī)定,就可以設計測試用例,開展測試。對應系統(tǒng)測試,或有用戶共同參與的驗收測試階段。,黑盒測試技術,常用測試方法邊界值測試、等價類測試、基于決策表的測試和基于正交表的測試等主要從數(shù)據(jù)

3、優(yōu)選的角度展開測試,適用于單元測試(和系統(tǒng)測試),用于對函數(shù)或類的方法進行測試基于場景的測試從業(yè)務流程優(yōu)選的角度展開測試,適用于系統(tǒng)測試階段,用于對功能、界面等進行測試,黑盒測試技術,優(yōu)勢對測試人員的開發(fā)技術要求相對較低。只要對照需求規(guī)格說明書SRS 或用戶手冊來開展測試。不需要了解程序?qū)崿F(xiàn)的細節(jié),測試團隊與開發(fā)團隊可以并行完成各自的任務。SRS確定后,即可開始制定測試計劃和測試設計工作,提高團隊開發(fā)進度。

4、黑盒測試方法簡單有效,可以整體測試系統(tǒng)的行為,黑盒測試技術,等價類測試邊界值測試實驗一保險金案例,等價類測試,1994年,Intel P CPU芯片就有一個缺陷(4195835/3145727)x3145727 – 4195835計算結(jié)果不是0,表示計算機的浮點除法存在缺陷!當然,Intel 內(nèi)部測試時發(fā)現(xiàn)了這個缺陷。NextDate,需要在輸入數(shù)據(jù)域上取大量的測試數(shù)據(jù),執(zhí)行測試。以達(或接近)完全覆蓋,避免測

5、試漏洞。,簡單隨機設計的測試用例盡管數(shù)量大,未必覆蓋率就高。很多用例都只能發(fā)現(xiàn)同一個bug,不需要重復執(zhí)行這么多用例。,請回答,你會怎么來設計測試用例呢?,等價類測試,測試方法的兩個目標不可能做到窮盡測試,因而希望測試方法達到:完備性采用少量測試用例,能在理論上完全覆蓋被測對象的輸入域和輸出域。無冗余性測試用例之間不存在冗余,每個測試用例都是為了揭示某一類型的軟件缺陷而設計的。刪去任何一個測試用例都將影響對該

6、缺陷的挖掘能力。人們提出等價類方法(equivalent class)來達到這兩個目標。,等價類測試,基本原理:通過等價劃分的方式,來將輸入數(shù)據(jù)(如月份,或年月日)的區(qū)域分片。從每個分片中抽取典型數(shù)據(jù)展開測試,以滿足測試的完備性和無冗余性。,等價類測試,通過劃分方式,將輸入域劃分為多個子集(等價類),子集滿足:每個子集內(nèi)所有數(shù)據(jù)等價(理論假設上可以等價),即被測系統(tǒng)對該子集中每個數(shù)據(jù)的處理方式相同(選擇典型數(shù)據(jù)能保證對相應子

7、集的覆蓋)處理方式相同 ~ 執(zhí)行的代碼(線路)流程就很可能一樣各子集之間互不相交,即輸入域中的某個數(shù)據(jù)(或某項)唯一隸屬于某個子集(保證無冗余)所有子集的并集是整個輸入域(保證完備)對每個子集,抽取一個典型數(shù)據(jù),所構成的數(shù)據(jù)集合可滿足測試的完備和無冗余性,降低測試工作量。,請思考,找出一些NextDate 問題的等價數(shù)據(jù),等價類測試,用例設計選擇被測對象有效等價類和無效等價類等價類的劃分針對有效等價類的測試用

8、例設計針對無效等價類的測試用例設計,等價類測試,等價類測試的難點選擇被測對象:即輸入域或輸出域等價類劃分:如何對輸入域或輸出域劃分等價類,確保系統(tǒng)對每個等價類中的所有項采用相同的處理方式。是否存在一般規(guī)律?測試用例設計:如何根據(jù)劃分得到的等價類集合設計測試用例,簡單地將所有輸入的等價類按照排列組合方式構建測試用例就可以了嗎?理論目標的達成:理論上而言,等價類測試可以做到測試的完備和無冗余。實際設計得到的測試用例確實可以保

9、證滿足理論目標嗎?2,代碼各式各樣…,等價類測試,輸入域的確定整體輸入域根據(jù)被測對象的特性,針對整體輸入域進行等價劃分。年月日 作為一個輸入整體。個體輸入域基于“獨立性假設”,將整體輸入域拆分成由各個輸入條件分別構成的個體輸入域進行等價劃分。年/月/日,三個獨立的輸入,等價類測試,等價類有效等價類對于SRS而言,合理、有意義的輸入數(shù)據(jù)構成的集合,即被測對象能接受的數(shù)據(jù)。用于考查軟件的正

10、常工作能力。無效等價類對于SRS而言,不合理、無意義的輸入數(shù)據(jù)構成的集合,即被測對象不能接受的數(shù)據(jù)。如 2015年18月0號用于考查軟件的容錯能力。,等價類測試,等價類的劃分的一些原則(1)若輸入條件規(guī)定了取值范圍,且取值范圍上、下限之間的數(shù)據(jù)是有意義的數(shù)據(jù),則取值范圍內(nèi)的數(shù)據(jù)構成一個有效等價類小于下限、或大于上限的所有數(shù)據(jù)分別構成兩個無效等價類;(2)若輸入條件規(guī)定了“必須如何”的條件,則滿足必須條件的

11、數(shù)據(jù)構成一個有效等價類其他數(shù)據(jù)構成一個無效等價類; 比如賬號注冊,等價類測試,(3)若輸入條件是一個布爾量,則取真值的數(shù)據(jù)構成一個有效等價類,取假值的數(shù)據(jù)構成一個無效等價類;(4)若輸入條件是一個邏輯量,即規(guī)定了輸入數(shù)據(jù)的一組值,且系統(tǒng)要對每個輸入值分別進行處理M L XL XXL, 未勾選,勾選多個則可為每一個輸入值確立一個有效等價類,此外還要針對這組值確立一個無效等價類,它是所有不允許的輸入值的集合,等

12、價類測試,用例設計選擇被測對象有效等價類和無效等價類等價類的劃分針對有效等價類的測試用例設計針對無效等價類的測試用例設計,等價類測試,等價類劃分的簡便方法(1)將某個輸入條件所有可能的取值劃分為一個有效等價類,其余取值劃分為一個無效等價類 (2)針對有效等價類,通過不斷施加規(guī)則,將滿足規(guī)則和不滿足規(guī)則的數(shù)據(jù)劃分為不同的等價類(3)重復該步驟,將有效等價類中不斷劃分為更多的子等價類,直至無法繼續(xù)劃分為止最終得到的每個有

13、效等價類代表了被測對象的一種特定的處理方式對于無效等價類也采用這個原則,但一般不會進行過多的劃分。,等價類測試,判斷等價類的簡便原則在某個指定的等價類中,分析被測對象對該等價類中的輸入數(shù)據(jù)或輸入項的處理方式是否一致例如在等價類中,選擇等價類的邊界或中值附近的幾個值,觀察其處理方式是否一致。如果不一致,則該等價類需要進一步做等價劃分,等價類測試,捉蟲實踐:NextDate的等價類測試針對個體輸入域每個輸入條件的等

14、價類劃分JPGs\2\c21_1.png,等價類測試,針對無效等價類,可得到測試用例JPGs\2\c21_2.png較好地考察了系統(tǒng)的容錯能力(健壯性)。,等價類測試,針對有效等價類,可得到測試用例 250年的范圍內(nèi)只有 1個測試用例具有典型性,代表普通日期(非月末),占全年日期的 96.7%。,黑盒測試技術,評價測試方法的質(zhì)量測試用例對被測對象的覆蓋率測試用例的冗余測試用例的數(shù)量測試用例對缺陷的定位能力

15、測試用例設計的復雜度不的測試方法有不同的適用方面,場合和階段,可產(chǎn)生不同的測試效果。結(jié)合多種方法能保證整體的測試效果。,測試最怕漏洞。對被測對象的覆蓋程度越高,遺漏缺陷的風險就越低,測試方法都是對某個關鍵問題或方面的簡化建模,得到的用例可能會存在冗余。數(shù)量雖多,但缺陷的發(fā)現(xiàn)率無法提高。,在無漏洞和無冗余的前提下,某測試方法的用例數(shù)量越少,對應的測試工作量越低用例報告、管理、腳本、執(zhí)行、檢驗結(jié)果,用例都對應著某類數(shù)據(jù)或缺陷。好的測

16、試方法能確保用例失敗時,可快速隔離和定位相應的缺陷。,復雜度越低,設計越簡單,對測試人員的經(jīng)驗要求就低,工作量也低,等價類測試,占全年日期的 96.7%。有漏洞,沒達到前面所說的完備性。然而,測試最怕漏洞,未覆蓋的3.3%對應著最復雜的日期,對應代碼(P115)的重點部分,存在缺陷的風險極高?;仡櫼幌拢狠斎胗虻拇_定:個體輸入域基于“獨立性假設”,將整體輸入域拆分成由各個輸入條件分別構成的個體輸入域進行等價劃分。然而

17、,日期的三個輸入條件之間并不獨立,有關聯(lián)性。NextDate對多種月末的處理方式不同于一般日期,等價類劃分不合理,不等價,需要改進劃分方法。,等價類測試,等價類的劃分通常需要結(jié)合領域知識,即充分利用被測系統(tǒng)的業(yè)務功能特性來劃分。特殊日期主要在于月末日期,而不同月份的月末日期也有不相同。因此得到新的日期劃分:,請思考,怎么單獨等價劃分:年,月,日,系統(tǒng)對每年(每月/每日)都一樣嗎,等價類測試,針對有效等價類的測試用例設計

18、每個輸入條件都有多個有效等價類。假設輸入條件x和y,分別有m和n個有效等價類。強組合方式將得到 mn 個測試用例。如果輸入條件多或等價類多,用例規(guī)模將會龐大。弱組合方式,等價類測試,強組合方式 任意m,n m=3,n=2,等價類測試,弱組合方式基本思想:測試用例完全覆蓋所有輸入條件的有效等價類即可。假設有m和n個有效等價類,將可

19、能得到m個測試用例。假設m>n,將得到用例集(CX1,CY1), …,(CXn,CYn), (CXn+1,CY1),…,(CXm,Cym-n)測試用例集不唯一確定,對應的測試效果也不同。,等價類測試,弱組合方式 任意m,n m=3,n=22,無法對整個有效輸入域進行覆蓋,并非真正意義上的完備測試。一般情況,采用強組合方式,請

20、回答,應該用強組合,還是弱組合來設計用例?考慮年月日的組合。,等價類測試,可以得到30個(2x3x5)測試用例。JPGs\2\c21_3.pngJPGs\2\c21_4.png,等價類測試,測試分析完備性方面:覆蓋了 3類情況,普通日期,31號,30號,和2月末。年末日期未覆蓋到。經(jīng)濟性方面:30個用例,可以接受。冗余性方面:多個日期對應普通日期等冗余情況嚴重在M1中,選取了7月作為典型值設計用例,如果取12月,就可以

21、覆蓋年末日期,避免漏洞了。但是,當?shù)葍r類劃分合理時,等價類中取任何值都不會影響覆蓋程度。其實類別劃分不夠合理,應增加一個等價類來覆蓋年末日期:月份M4:12。,輸入間有關聯(lián)性,個體輸入域方法將導致測試冗余。如何消除冗余呢?在基于決策表的測試中可以解決。,等價類測試,針對無效等價類的測試用例設計單缺陷假設:一個測試用例僅覆蓋一個輸入條件的某一個無效等價類,其他輸入取有效值。每個測試用例不同時覆蓋兩個輸入(以上)的無

22、效等價類。實際上,可以將每個無效等價類看作可能潛伏著缺陷,應針對每類可能的缺陷單獨進行測試,即其他輸入取有效值。,等價類測試,無效等價類的測試用例 任意m,n m=3,n=22,假設 x,y 分別有兩個無效等價類則將得到2(m+n)個測試用例。,等價類測試,針對無效等價類 JPGs\2\c21_1.png可得到測試用例JPG

23、s\2\c21_2.png較好地考察了系統(tǒng)的容錯能力(健壯性)。,等價類測試,輸入域的確定整體輸入域根據(jù)被測對象的特性,針對整體輸入域進行等價劃分。年月日 作為一個輸入整體。個體輸入域基于“獨立性假設”,將整體輸入域拆分成由各個輸入條件分別構成的個體輸入域進行等價劃分。年/月/日,三個獨立的輸入,等價類測試,針對整體輸入域的測試      等價類劃分的簡便方法(1)將某個輸入條件所有可能的取值劃分

24、為一個有效等價類,其余取值劃分為一個無效等價類 (2)針對有效等價類,通過不斷施加規(guī)則,將滿足規(guī)則和不滿足規(guī)則的數(shù)據(jù)劃分為不同的有效等價類(3)重復該步驟,將有效等價類中不斷劃分為更多的子等價類,直至無法繼續(xù)劃分為止。最終得到的每個有效等價類代表了被測對象的一種特定的處理方式,等價類測試,針對整體輸入域的測試等價劃分從最小值和最大值開始1800.1.1-2050.12.31系統(tǒng)的不同處理方式 ~ 日期(y-m-

25、d)提出劃分規(guī)則有哪些不同的處理方式?都找出來普通日期(d+1),多種其他日期(d變1, m y年也變)繼續(xù)劃分…,請思考練習,有哪些處理方式,如何提出規(guī)則,劃分等價類,等價類測試,然后繼續(xù)劃分有效等價類:JPGs\2\c21_p59.png,等價類測試,最后將整體有效輸入劃分為6個有效等價類,對應6個測試用例。,合理有效地進行了等價劃分。無冗余、具有完備性。用例數(shù)量少,有效。,看起來劃分得很好嘛!只用這6個用例夠嗎?請

26、思考回答??梢园催@種層次來編寫代碼嗎?,從處理方式的結(jié)果上看都包括了,但從處理方式的區(qū)分輸入的角度,是不夠的,會漏測很多情況的。個體域的劃分和強組合用例還是需要的。,等價類測試,測試分析無論是基于個體域還是整體域,都必須嚴格保證等價類所有項的等價特性,否則,劃分不夠好,都將造成測試漏洞。方法的關鍵在于選擇等價關系,進行合理的劃分。直接基于整體輸入域劃分,不會產(chǎn)生冗余,但要求測試人員對被測對像充分了解,且能對對象進行合理的

27、等價劃分。,等價類測試,捉蟲實踐:傭金問題的等價類測試針對輸出域(測試對象)的等價類測試關注的是某一個輸出,一般不需要考慮等價類的組合,且關注的重點是有效輸出。因此,測試用例應集中于有效等價類。,等價類測試,捉蟲實踐2:傭金問題的邊界值測試某酒水銷售公司指派銷售員銷售各種酒水,其中白酒、紅酒和啤酒的單價分別為168元/瓶、 120元/瓶、5元/瓶。每個銷售員,白酒每月的最高供應量為5000瓶,紅酒為3000瓶,

28、啤酒為30000瓶。各銷售員每月至少需售出白酒50瓶,紅酒30瓶,啤酒300瓶。月末,各銷售員向酒水銷售公司上報他所在區(qū)域的銷售業(yè)績,酒水銷售公司根據(jù)其銷售額計算該銷售員的傭金,并作為獎金發(fā)放。,等價類測試,捉蟲實踐2:傭金問題的邊界值測試銷售員的傭金計算方法如下:2萬元以下(含):4%;2萬元(不含)~4.5萬元(含):1%;4.5萬元以上(不含):0.5%。最終將由傭金計算系統(tǒng)生成月銷售報告,對當月售出的

29、白酒、紅酒和啤酒總數(shù)進行匯總,并計算銷售公司的總銷售額和各銷售員的傭金,等價類測試,銷售員的傭金計算方法如下:2萬元以下(含):4%;2萬元(不含)~4.5萬元(含):1%;4.5萬元以上(不含):0.5%。,有哪些處理方式?怎么做等價劃分呢,輸入是3個銷量,輸出是傭金,請思考回答。,計算流程如何?有幾個計算環(huán)節(jié),等價類測試,NextDate問題只有一個處理環(huán)節(jié),分不同類型的日期來進行處理,該環(huán)節(jié)涉及輸入日期和得到下一

30、天日期而傭金問題的3個銷量不直接對應到傭金的計算方法。有兩層計算環(huán)節(jié):3個銷量-銷售額,銷售額-傭金因為第二層計算的分段曲線,銷售額為自變量。不同的銷售額,有不同的計算方法。(處理方式)兩個環(huán)節(jié)的等價類,都要覆蓋好,第一個環(huán)節(jié)需要等價劃分嗎?,等價類測試,有效等價類JPGs\2\c2_p61_1.png測試用例JPGs\2\c2_p61_2.png,等價類測試,要點回顧原理:通過等價劃分的方式來將數(shù)據(jù)分片,從中

31、抽取典型數(shù)據(jù)展開測試,以滿足測試的完備性和無冗余性。普通日期和各種月末,銷售額分段計算,處理方式相同,等價類測試,用例設計選擇被測對象(個體域/整體域,軟件的處理環(huán)節(jié))有效等價類和無效等價類等價類的劃分針對有效等價類的測試用例設計針對無效等價類的測試用例設計,等價類測試,個體輸入域有效等價類(強組合方式~用例)無效等價類(單缺陷假設~用例)整體輸入域輸出域(與輸入域不相似,即第二層處理環(huán)節(jié)),等價類

32、測試,目標是從理論上追求測試的完備性和無冗余性基于:獨立性假設(個體域)和單缺陷假設(無效)當?shù)葍r劃分不合理(即存在漏洞時),將導致測試用例的漏洞;如漏掉年末日期。當輸入條件之間存在關聯(lián)時,若基于個體輸入域進行測試,將導致測試用例的冗余。,等價類測試,測試實踐:三角形問題三角形軟件接受三個整數(shù)a、b和c作為輸入,用作三角形的邊。程序的輸出是由這三條邊確定的三角形類型:等邊三角形、等腰三角形、不等邊三角形或非三角形。

33、整數(shù)a、b和c必須滿足以下條件:C1. 1≤ a ≤ 200C2. 1≤ b ≤ 200C3. 1≤ c ≤ 200,等價類測試,測試實踐:三角形問題如果輸入值不滿足條件C1、C2和C3中的任何一個,則程序會通過輸出消息來進行通知,如“b的取值不在允許范圍內(nèi)”如果a、b和c滿足C1、C2和C3,則輸出以下四種三角形類型(互相排斥):等邊三角形等腰三角形不等邊三角形非三角形,等價類測試,課堂作業(yè)三角形問

34、題的等價類測試用例設計。寫上班級(在班序號)、名字。提示:針對個體域、整體域還是輸出域來劃分?每種類型對應一種輸出,即處理方式(等價類),可以分析設計等價劃分規(guī)則。自己用白紙寫,或者寫在實驗報告本的背面。做好了就可以上交。沒聽課的,一點分析內(nèi)容都沒的,就不要交了。,等價類測試,測試實踐:三角形問題輸出有4種類型每種類型對應一種輸出,即處理方式(等價類),可以分析設計等價劃分規(guī)則。列出處理方式進

35、行分析。思考:針對個體域、整體域還是輸出域來劃分?單個的邊長a(或b,c) 沒有具體意義,對應不到處理方式,難以下手劃分。應從整體域來劃分。(參考NextDate)分析輸出結(jié)果間的關系,提出規(guī)則進行劃分,,等價類測試,分析輸出結(jié)果間的關系,提出規(guī)則進行劃分>>是否是三角形? -否 VEC1(非三角形)?。欠袷堑妊切?? -否 EC1(不等邊)-是否是等邊三角形?

36、 -否 EC2(等腰)是 EC3(等邊)是否滿足C1-3, 否 VEC2(邊長出界),等價類測試,得到VEC1 = {:a、b和c不構成三角形}VEC2 = {:a、b和c不完全滿足C123}EC1 = {:a、b和c構成不等腰三角形}EC2 = {:a、b和c構成等腰三角形}EC3 = {:a、b和c構成等邊三角形}還沒有具體的條件來設計用例的輸入值?需要用輸入條件來表示等價類。,等

37、價類測試,EC1 ~ D1 = {:a≠b, a≠c, b≠c,且滿足C1-6}EC2 ~ D21 = {:a=b, a≠c,且滿足C1-6}~ D22,D23EC3 ~ D3 = {:a=b, a=c, b=c,且滿足C1-6}VEC1 ~ VD1 = {:a≥b+c}~ VD12,VD13VEC2 ~ VD21 = {:a200}~ VD22,VD23,等價類測試,設計用例D1 D21 D3

38、VD11 VD21 基于整體域的等價劃分,用例設計,具有無冗余,完備的優(yōu)點。需要選擇合適的測試對象,和好的等價劃分規(guī)則。,黑盒測試技術,等價類測試邊界值測試,邊界值測試,思考:運用等價類法設計測試用例,足夠了嗎?能保證不會漏測各式各樣的bug嗎?被測對象是具體的程序(源代碼,1人甚至整個部門的)就像病人的癥狀和病因,五花八門不單要驗血,還要做X光,B超,小便,把脈,望聞問切…軟件測試需要運用業(yè)界發(fā)展成熟的測

39、試方法和思想 和個人的智力經(jīng)驗能力,邊界值測試,人們從長期的測試工作中總結(jié)出一個實踐經(jīng)驗:大量缺陷發(fā)生在被測對象的輸入域或輸出域的邊界(即極值)上。如果開發(fā)階段導致缺陷,在邊界處出現(xiàn)錯誤的可能性要遠大于非邊界處。 JPGs\2\TwoPS.java例如:循環(huán)條件可能在應該判斷=<時判斷了<;計數(shù)器也總是“少記一次”。一種打印出版程序,有兩種文本顯示模式:一種通過虛線指示新一頁;一種則顯示頁面。如

40、果光標位于一頁的最后一行,增加新文本,會有異常。在頁面模式下新文本丟失,前后兩頁都沒有顯示。,邊界值測試,測試思想:在被測對象的邊界及邊界附近設計測試用例。用例設計:選擇對象、確定邊界和鄰域、設計用例測試用例設計:1 選擇被測對象2 確定邊界3 確定鄰域4 設計用例,邊界值測試,測試用例設計1 選擇被測對象:即輸入域或輸出域,以進行后續(xù)的邊界值測試用例設計 日期/銷售額2 確定邊界:即域的邊界,

41、確保覆蓋被測對象所有可能的邊界3 確定鄰域:即域邊界附近的鄰域范圍,便于及時發(fā)現(xiàn)所有潛伏在邊界附近的缺陷4 設計用例:即從邊界及其鄰域抽取測試數(shù)據(jù),設計測試用例,邊界值測試,1 輸入域整體輸入域:由多個輸入條件共同構成的具有一定實際意義的輸入域邊界通常很清晰,很容易展開測試但難以覆蓋所有隱含邊界,尤其對于各個輸入條件之間存在較為復雜的約束關系的情況。(如日期的各種月末。)個體輸入域:由各個輸入條件分別構成的單個輸入域

42、的集合,邊界值測試,2 確定邊界對于某個輸入條件而言,邊界的確定可參照如下原則:若輸入條件規(guī)定了取值范圍,則以該范圍作為邊界若輸入條件規(guī)定了值的個數(shù),則以值的個數(shù)為邊界若輸入域是有序集合(如有序表、順序文件等),則選取集合中特定次序的數(shù)據(jù)作為邊界,如第一個或最后一個數(shù)據(jù)等如16進制所用到的字母 a-f,a和f就是邊界,邊界值測試,2 確定邊界實際上,針對某個輸入條件確定邊界點時,可利用如下的思路:在需求描述中,

43、尋找最大極限邊界,如最高/最低,最前/最后等。在需求描述中,尋找其他邊界,其特征是:當在某點附近的極小鄰域內(nèi),系統(tǒng)處理方式完全不同。即對應被測對象輸出發(fā)生變化的臨界點。關注在軟件內(nèi)部的邊界點,稱為次邊界條件或內(nèi)部邊界條件。比如文本框只接受英文字母 @AB…Z[‘a(chǎn)b…z{,并且,編程中,輸入條件都須要用某個數(shù)據(jù)變量來表示,有其類型的取值范圍,這也是邊界。Int: -32768~32767,如某些分段計算的函數(shù)。傭金的

44、例子,工資收稅。,如2的乘方(是否會溢出)、ASCII字符表等。需要有一定編程經(jīng)驗,在單元測試中檢查。,邊界值測試,,找購買數(shù)量的邊界,請回答,邊界值測試,2 確定邊界       個體輸入域以個體輸入域為被測對象時,需分別針對每個輸入條件的輸入域(即每個個體輸入域) 確定其邊界點并基于獨立性假設即假設各個輸入條件之間相互獨立,不產(chǎn)生相互影響,即不具有相互依賴關系。也就是說,當針對某個輸入條件確定邊界點時,不考慮其他輸

45、入條件可能對該輸入條件所產(chǎn)生的任何影響。,邊界值測試,捉蟲實踐1:NextDate的邊界值測試針對個體輸入域輸入條件:年份、月份、日期根據(jù)測試需求和日期常識得到邊界:,實際上,各輸入條件是有關聯(lián)的,漏掉很多隱含邊界。以下按課本講解(課本上邊界法在等價類法的前面),不多討論。,這樣覆蓋了所有的邊界嗎?請回答,月份的邊界測試數(shù)據(jù),可以再減少嗎?請回答,邊界值測試,3 鄰域范圍對于每個輸入條件的每個邊界點(設為P點),需在該點

46、附近確定大小為1的鄰域。然后,基于所有輸入條件的所有邊界點及其鄰域來設計測試用例。注意:這里的“1”是指1個單位長度,并非數(shù)字意義上的“1”。應根據(jù)對象的具體意義和測試分析靈活設置。,邊界值測試,4 測試用例的設計4.1 測試數(shù)據(jù)的選擇窮舉法在每個邊界點的鄰域范圍內(nèi)取所有數(shù)據(jù)優(yōu)勢:邊界及其鄰域范圍內(nèi)所有數(shù)據(jù)均可測試到不足:鄰域內(nèi)的測試數(shù)據(jù)較多,導致的測試負擔重,邊界值測試,4 測試用例的設計典型

47、值法在邊界點p處,鄰域為a。選擇 p-a , p , p+a 這三個值作為測試數(shù)據(jù)優(yōu)勢:測試數(shù)據(jù)包含了邊界點本身以及相對遠離該邊界點的鄰域數(shù)據(jù),具有典型性,且數(shù)據(jù)量大大降低,邊界值測試,4 測試用例的設計4.2 邊界組合方式強邊界法測試用例要覆蓋所有輸入條件的所有邊界組合。即每個用例的多個輸入條件同時取邊界的情況??蓽y試到所有的邊界組合,但不利于缺陷的隔離和定位,并且用例數(shù)量較大。,邊界值測試,4 測試用例

48、的設計弱邊界法基于單缺陷假設:即認為,被測對象只要在某個輸入條件的某個邊界出錯,則在任何包含該輸入邊界的其他情況下也會出錯。ymd>>策略:用例中,只有一個輸入條件取值為邊界鄰域數(shù)據(jù),其余輸入條件取正常值(不取邊界)。有利于快速隔離和定位邊界缺陷,降低測試用例的數(shù)量。,邊界值測試,,,邊界值測試,,,邊界值測試,,隨著輸入條件和邊界點的增長,測試用例增長速度非常快。一般采用 典型值法+弱邊界法另外,也可以

49、采取自動化方法,自動運行大量測試用例,邊界值測試,捉蟲實踐1:NextDate的邊界值測試針對個體輸入域輸入條件:年份、月份、日期根據(jù)測試需求和日期常識得到邊界:,邊界值測試,基于單缺陷假設,選擇典型值法+弱邊界方案,得到測試用例。JPGs\2\c21_p47.png,邊界值測試,測試分析冗余和漏洞都較為嚴重(大量的普通日期和無效日期)并且,閏月情況沒有測試到。然而,邊界值法主要關注邊界上表現(xiàn)的缺陷,只

50、要能以少量用例覆蓋所有可能的邊界,就不應視作冗余和漏洞。以上漏洞可以通過等價類等方法加以避免,課本上的實驗數(shù)據(jù),偶有小錯誤,不必糾結(jié),邊界值測試,測試分析實際上,單缺陷假設本身存在不合理,遺漏了邊界組合情況兩個邊界組合,和三個邊界組合都沒有測試用例。對應數(shù)量為 6x6x3=108 和 6x6x6=216 個。并且,這兩只有兩個邊界。如果實際的邊界條件更多,邊界組合的用例數(shù)量很大。可以通過隨機測試或者正交表方法來做補

51、充測試獨立性假設也不大合理不同的月份的日期有不同的邊界,邊界值測試,捉蟲實踐1:NextDate的邊界值測試針對整體輸入域邊界點:最小值1800-1-1和最大值2050-12-31在個體輸入域的基礎上,補充6個測試用例即可。,難以覆蓋所有隱含邊界,尤其對于各個輸入條件之間存在較為復雜的約束關系的情況。建議:可以依據(jù)等價劃分,分析歸納出隱含的邊界,然后設計用例覆蓋,邊界值測試,捉蟲實踐2:傭金問題的邊界值測試某酒水

52、銷售公司指派銷售員銷售各種酒水,其中白酒、紅酒和啤酒的單價分別為168元/瓶、 120元/瓶、5元/瓶。每個銷售員,白酒每月的最高供應量為5000瓶,紅酒為3000瓶,啤酒為30000瓶。各銷售員每月至少需售出白酒50瓶,紅酒30瓶,啤酒300瓶。月末,各銷售員向酒水銷售公司上報他所在區(qū)域的銷售業(yè)績,酒水銷售公司根據(jù)其銷售額計算該銷售員的傭金,并作為獎金發(fā)放。,邊界值測試,捉蟲實踐2:傭金問題的邊界值測試銷售員的傭金計算方

53、法如下:2萬元以下(含):4%;2萬元(不含)~4.5萬元(含):1%;4.5萬元以上(不含):0.5%。最終將由傭金計算系統(tǒng)生成月銷售報告,對當月售出的白酒、紅酒和啤酒總數(shù)進行匯總,并計算銷售公司的總銷售額和各銷售員的傭金,NextDate問題只有一個處理環(huán)節(jié),分不同類型的日期來進行處理,該環(huán)節(jié)涉及輸入日期和得到下一天日期而傭金問題的3個銷量不直接對應到傭金的計算方法。有兩層計算環(huán)節(jié):3個銷量-銷售額,銷售

54、額-傭金因為第二層計算的分段曲線,銷售額為自變量。不同的銷售額,有不同的計算方法。兩個環(huán)節(jié)產(chǎn)生的邊界值,都要覆蓋好最低最高銷量,即1.35 和 135 是第一個環(huán)節(jié)導致的邊界值。,,邊界值測試,用例設計選擇1元為鄰域單位長度JPGs\2\c21_50.png,邊界值測試,測試分析用例003 004為19997和20002元。超出鄰域1元的范圍,這在實際中是常見的。當銷售額為20002元時,白酒、紅酒和啤酒銷售 69、

55、50和482 也符合。設計用例時,應考慮被測系統(tǒng)業(yè)務的實際情況。條件允許,也可以增加測試用例。,邊界值測試,邊界值測試小結(jié)個體輸入域:獨立性假設和單缺陷假設(弱邊界法)。是一種最基本、最簡單的黑盒測試方法,通??勺鳛榈葍r類測試的補充邊界值測試關注的是系統(tǒng)邊界(而非處理方式)。因而從一般角度看該法設計的測試用例往往具有較大的系統(tǒng)冗余與遺漏,但這并不影響該法的有效性。就邊界而言,該法設計的用例并不存在冗余。遺漏也將在后

56、續(xù)的等價類測試中進行覆蓋。,黑盒測試技術,等價類測試邊界值測試保險金案例,保險金案例,案例說明主要為投保人計算其需要購買的車險,一年內(nèi)的保險金計算公式為: 保險金 = 1000元 x 年齡系數(shù) – 安全駕駛折扣且車險的計算與年齡和駕照分數(shù)有關,還需滿足如下條件:,保險金案例,且車險的計算還需滿足如下條件:投保人必須是年滿16歲,且不足80歲的人如果投保人駕照上的當前分數(shù)高于門限分數(shù)(見表),則投保時可給予其安全

57、駕駛折扣年齡系數(shù)和安全駕駛折扣見表JPGs\2\c21_p83.png,保險金 = 1000元 x 年齡系數(shù) – 安全駕駛折扣,保險金案例,且車險的計算還需滿足如下條件:投保人駕照上的分數(shù)初始為 12分,每當違反交通規(guī)則時,將以整數(shù)為單位扣掉1分或若干分如果投保人駕照上的當前分數(shù)高于門限分數(shù)(見表),則投保時可給予其安全駕駛折扣如果投保人駕照上的當前分數(shù)被扣至達到甚至低于零分,則該投保人的駕照被吊銷大家自己看下課本,熟

58、悉下題目 P83分析計算公式和條件的實際意義思考,輸入間有否關聯(lián)性?,保險金案例,典型的函數(shù)級別的案例。沒有明顯的業(yè)務操作流程,只需要從數(shù)據(jù)擇優(yōu)的角度來設計案例。可采用邊界值、等價類、決策表等方法設計用例輸入條件有哪些?投保人的年齡、駕照上的當前分數(shù) 保險金 = 1000元 x 年齡系數(shù) – 安全駕駛折扣,保險金案例,思考一下:年齡和分數(shù),有否相關性?JPG\c21_p83.png

59、有相關性,分數(shù)還蠻復雜的年齡~系數(shù),門限分數(shù),分數(shù)~門限分數(shù)利用邊界值、等價類、決策表法來設計測試用例,請回答,年齡和分數(shù)的相關性,保險金案例,邊界值法(回顧)思想:在被測對象的邊界及邊界附近設計測試用例。測試用例設計:1 選擇被測對象 2 確定邊界3 確定鄰域4 設計用例,保險金案例,提問:選擇哪個測試對象來考察邊界?為什么?思考幾分鐘,不要看課本,看了也沒有用。提示:輸入域

60、(個體域/整體域)、輸出域(中間環(huán)節(jié))?在哪種對象上面找邊界?認真分析對比 NextDate 傭金 都用了哪些測試對象。,請回答,個體域可以嗎?或者回答整體域可以嗎?輸出域呢?,保險金案例,提問:邊界法選擇哪個測試對象?個體輸入域:可以分別針對每個輸入條件的輸入域確定邊界點采用 年齡和分數(shù)的個體輸入域分析邊界整體輸入域:邊界通常很清晰,很容易展開測試。但難以覆蓋所有隱含邊界(如Nextdate),尤

61、其對于各個輸入條件之間存在較為復雜的約束關系的情況。年齡和分數(shù)不存在整體邊界,不易于來建模包含隱含邊界。,保險金案例,提問:邊界法選擇哪個測試對象?輸出域?思考一下分析具體的輸出域計算>>銷售員賣酒的傭金(2個計算環(huán)節(jié))輸入3種酒的銷售量>>計算銷售額>>分段計算傭金年齡+積分+復雜約束條件->保險金(僅一個計算環(huán)節(jié)),請回答,系統(tǒng)有幾個計算環(huán)節(jié)?,邊界值測試,確定邊界:

62、個體輸入域以個體輸入域為被測對象時,需分別針對每個輸入條件的輸入域確定其邊界點。并遵循獨立性假設,即假設各個輸入條件之間相互獨立,不產(chǎn)生相互影響,即不具有相互依賴關系。查看需求->思考一下,有哪些分數(shù),年齡的邊界(P83)年齡(6個):16, 25, 35, 45, 60, 80;分數(shù)(6個):0, 5, 7, 9, 11, 12,保險金案例,邊界年齡(6個):16, 25, 35, 45, 60, 80

63、;分數(shù)(6個):0, 5, 7, 9, 11, 12測試數(shù)據(jù) p-a, p, p+a:年齡 (18個):15, 16, 17, 24, 25, 26, 34, 35, 36, 44, 45, 46, 59, 60, 61, 79, 80, 81;分數(shù) (13個):-1, 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,邊界值測試,弱邊界法基于單缺陷假設:即被測對象只要在某個

64、輸入條件的某個邊界出錯,則在任何包含該輸入邊界的情況下也會出錯。策略:用例中,只有一個輸入條件取值為邊界鄰域數(shù)據(jù),其余輸入條件取正常值(相鄰邊界點之間的中值)。有利于快速隔離和定位邊界缺陷,降低測試用例的數(shù)量。,邊界值測試,,,保險金案例,測試數(shù)據(jù) 年齡 (18個) 分數(shù) (13個)邊界:年齡(6個):16, 25, 35, 45, 60, 80; 分數(shù)(6個):0, 5, 7, 9, 11, 12用例設

65、計:針對年齡的測試數(shù)據(jù),分數(shù)應取相鄰兩邊界點間的正常值用例數(shù)量為 18x(6-1) + 13x(6-1) = 155個。,保險金案例,部分邊界值的用例JPGs\2\c21_p84.png,保險金案例,測試用例分布圖JPGs\2\c21_p85.png顯然,由于邊界點多,盡管僅有2個輸入,弱組合下的測試用例數(shù)量也很多。因為需要取多種 中值 和 邊界 的組合。,黑盒測試技術,等價類測試邊界值測試保險金案例-等價類法 決策表

66、法,保險金案例,等價類法個體輸入域?qū)δ挲g和分數(shù)的等價類劃分,(P83)處理方式 -> 劃分規(guī)則 年齡段;是否給予安全駕駛折扣 JPGs\2\c21_p85_2.png,請回答分析,系統(tǒng)的處理方式。如何進行個體的劃分,保險金案例,分數(shù)域上存在過劃分,利用強組合方式 5x5=25。有冗余,需要采用決策表法化簡合并。JPGs\2\c21_p85_3.png合并為10個等價類,每個年齡段 2個,消除了冗

67、余分別對應“有無安全駕駛折扣”的情況,很合理。相比于 NextDate的年月日 ,分數(shù)和年齡的關聯(lián)復雜程度要低很多,合并后得到很好的用例設計。,保險金案例,等價類法整體輸入域?qū)嶋H上,保險金問題并不是個很復雜的系統(tǒng)。若就整體輸入域進行等價類劃分,用例設計會更簡單。二元組年齡段;是否給予安全駕駛折扣劃分規(guī)則,思考一下,1-2分鐘,沒必要翻書的:JPGs\2\c21_p86.png劃分為10個,與決策表的結(jié)果相同

68、。相比而言,設計工作更加簡單。,請回答分析,系統(tǒng)的處理方式。如何進行整體的劃分,保險金案例,案例小結(jié)包含的功能點很單一,不涉及業(yè)務流程。但包含相對復雜的輸入/輸出計算關系。需針對輸入域和輸出域進行關鍵數(shù)據(jù)的覆蓋測試該案例的測試用例設計以測試數(shù)據(jù)的選擇為主重點在于如何選擇典型數(shù)據(jù)來測試所有情況下的業(yè)務計算難點是如何高效地設計測試用例,達到測試的完備和無冗余該案例的測試應盡量考慮以自動化測試為主,黑盒測試技術,等價

69、類測試邊界值測試保險金案例實驗一,實驗一,題目:PreviousDate 前一天日期測試以下程序(用戶需求):該程序有三個輸入變量year、month、day分別作為輸入日期的年、月、日。要求輸入year、month和day均為整數(shù)值,并且滿足:1800≤year≤2020,1≤month≤12 和1≤day≤31。通過程序輸出該日期在日歷上前一天的日期(1) 這個軟件產(chǎn)品的系統(tǒng)需求規(guī)格說明書中,要對用戶輸入的日期考慮

溫馨提示

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

評論

0/150

提交評論