




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第六章、軟件測試技術環境被測對象人員素質被測對象模型測試執行正確?環境模型錯誤模型
軟件測試過程所涉及的要素,以及
這些要素之間的關系
正確1)測試過程模型
怨睜瑪彤卸甜鏡悸鴕滁孺召川打襟峙峨綠姻艦補真俺置科恨彪擄攪嚇黍續北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術第六章、軟件測試12)依據程序邏輯結構-白盒測試技術
(1)關于建立被測對象模型控制流程圖:結點/分支/過程塊/鏈路徑1236457X>5andY<3其中:節點1、節點3、節點5、節點6、節點7為過程塊節點2為分支,節點4為結點豪俗務蔑撫粵銑灑寸明山久薊笛帶匠壟邏吶扔勻蔓蠅經婉圾眶畸紙何聽毯北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術2)依據程序邏輯結構-白盒測試技術1236457X>5an2例如:以下為一個程序流程圖,其中該例子中有兩個判斷,每個判斷都包含復合條件的邏輯表達式。
(A1)(B=0)(A=2)(X1)X=X/AX=X+1abcdeFTTF彎娛網厘跌暗遺么浴喂是現萄說憚續灘拱官理略咸舀醋笑沏桿染鑰駁共齲北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術例如:以下為一個程序流程圖,其中該例子中有兩個判斷,(A13其控制流程圖為:(A1)(B=0)X=X/A(A=2)
(X1)
X=X+1TTacbde結點1結點2穿倪犢志塞蝎衫梯闊咖奴談趨乎懦嗆砧疥剖料徹錘上俗惹鞋弦摸抗扯缽吻北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術其控制流程圖為:TTacbde穿倪犢志塞蝎衫梯闊咖奴談趨乎懦4(2)“完整測試”策略該控制流程圖有4條不同的路徑。4條路徑可表示為:L1(a→c→e)簡寫ace、L2(a→b→d)簡寫abdL3(a→b→e)簡寫abe、L4(a→c→d)簡寫acd
路徑測試(PX):執行所有可能的穿過程序的控制流程路徑。一般來說,這一測試嚴格地限制為所有可能的入口/出口路徑。如果遵循這一規定,則我們說達到了100%路徑覆蓋率。在路徑測試中,該策略是最強的,但一般是不可實現的。針對該例子,要想實現路徑覆蓋,可選擇以下一組測試用例(規定測試用例的設計格式為:【輸入的(A,B,X),輸出的(A,B,X)】)。測試用例 覆蓋路徑 【(2,0,4),(2,0,3)】L1【(1,1,1),(1,1,1)】L2【(1,1,2),(1,1,3)】L3【(3,0,3),(3,0,1)】L4 坑夫左闡縮諄疤權灌畫克們宦讕境痢免耀堿氫金留挪昨省芭陷兵查禽蔫認北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術(2)“完整測試”策略坑夫左闡縮諄疤權灌畫克們宦讕境痢免耀堿5
語句測試(P1):至少執行程序中所有語句一次。如果遵循這一規定,則我們說達到了100%語句覆蓋率(用C1表達)。在該例子中,只要設計一種能通過路徑ace的測試用例,就覆蓋了所有的語句。所以可選擇測試用例如下:【(2,0,4),(2,0,3)】覆蓋L1語句覆蓋是最弱的邏輯覆蓋準則。
問題:就該程序而言,如果兩個判斷的邏輯運算寫錯,例如,第一個判斷中的邏輯運算符“∧”錯寫成了“∨”,或者第二個判斷中的邏輯運算符“∨”錯寫成了“∧”,利用上面的測試用例,仍可覆蓋所有4個可執行路徑,而發現不了判斷中邏輯運算符出現的錯誤。
慢芯竅紋匙嫌柏要鞠柿伐葛戍蒼郭墳國獵具集官淮椅蘊游海澈既嘻奢戀動北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術慢芯竅紋匙嫌柏要鞠柿伐葛戍蒼郭墳國獵具集官淮椅蘊游海澈既嘻奢6
分支測試(P2):至少執行程序中每一分支一次。如果遵循這一規定,則我們說達到了100%分支覆蓋率(用C2表示)。分支覆蓋是一種比語句覆蓋稍強的邏輯覆蓋。但若程序中分支的判定是由幾個條件聯合構成時,它未必能發現每個條件的錯誤。例如對于以上例子,如果選擇路徑L1和L2,就可得到實現分支覆蓋的測試用例:【(2,0,4),(2,0,3)】覆蓋L1【(1,1,1),(1,1,1)】覆蓋L2如果選擇路徑L3和L4,還可得另一組可用的測試用例:【(2,1,1),(2,1,2)】覆蓋L3【(3,0,3),(3,1,1)】覆蓋L4
問題:分支覆蓋還不能保證一定能查出在判斷的條件中存在的錯誤。例如,在該例子中,若第二個分支X>1錯寫成X<1,利用上述兩組測試用例進行測試,無法查出這一錯誤。因此,需要更強的邏輯覆蓋準則去檢驗判定的內部條件。萊姬毒豌緞簇微妝必設十名傘锨班蹋廉限鳳甲沃邑朵淑痔銳破霉塘蠟趴訟北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術分支測試(P2):至少執行程序中每一分支一次。如果萊姬7
條件組合測試條件組合測試是一種具有更強邏輯覆蓋的測試。條件組合測試,就是設計足夠的測試用例,使每個判定中的所有可能的條件取值組合至少執行一次。如果遵循這一規定,則我們說就實現了條件組合覆蓋。只要滿足了條件組合覆蓋,就一定滿足分支覆蓋。在條件組合覆蓋技術發展過程中,最初,在設計測試用例時,人們只考慮使分支中各個條件的所有可能結果至少出現一次。但發現該測試技術未必能覆蓋全部分支。例如,在上圖的例子中,程序段中有四個條件:A>1,B=0,A=2,X>1。條件A>1取真值標記為T1,取假值標記為F1條件B=0取真值標記為T2,取假值標記為F2條件A=2取真值標記為T3,取假值標記為F3條件X>1取真值標記為T4,取假值標記為F4在設計測試用例時,要考慮如何選擇測試用例實現T1、F1、T2、F2、T3、F3、T4、F4的全部覆蓋:
楔第噶俺戶矮禍哮餞獵拆隴視診蠟鄙勇烯痞跑慮葡棵阻葡邢迎龍全蔗臘檄北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術條件組合測試楔第噶俺戶矮禍哮餞獵拆隴視診蠟鄙勇烯痞跑慮8例如,可設計如下測試用例實現條件覆蓋:
測試用例通過路徑條件取值覆蓋分支【(1,0,3),(1,0,4)】L3F1T2F3T4b,e【(2,1,1),(2,1,2)】L3T1F2T3F4b,e從上面的測試用例,可以看到該組測試用例雖然實現了判定中各條件的覆蓋,但沒有實現分支覆蓋,因為該組測試用例只覆蓋了第一個判斷的取假分支和第二個判斷的取真分支。為此,人們又進一步提出了條件組合覆蓋技術。例如,在該例子中,前一個判定有4中條件組合:(1)(A>1),(B=0),標記為T1、T2;(2)(A>1),(B≠0),標記為T1、F2,;(3)(A≤1),(B=0),標記為F1、T2;(4)(A≤1),(B≠0),標記為F1、F2;后一個判定又有4中條件組合:(5)(A=2),(X>1),標記為T3、T4;(6)(A=2),(X≤1),標記為T3、F4;(7)(A≠2),(X>1),標記為F3、T4;(8)(A≠2),(X≤1),標記為F3、F4。白棍粹凈攆侈畸山騙瑚皆沛燥盟答辜仁馬單蓑狄專標獸螺春域賢蔽盎個忿北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術例如,可設計如下測試用例實現條件覆蓋:白棍粹凈攆侈畸9因此,要滿足條件組合覆蓋,設計的測試用例必須滿足以下16種條件組合:
(1)(A>1),(B=0),(A=2),(X>1),可標記為T1、T2、T3、T4;(1)(A>1),(B=0),(A=2),(X≤1),可標記為T1、T2、T3、F4;(1)(A>1),(B=0),(A≠2),(X>1),可標記為T1、T2、F3、T4(1)(A>1),(B=0),(A≠2),(X≤1),可標記為T1、T2、F3、F4。(2)(A>1),(B≠0),(A=2),(X>1),可標記為T1、F2,T3、T4;(2)(A>1),(B≠0),(A=2),(X≤1),可標記為T1、F2、T3、F4;(2)(A>1),(B≠0),(A≠2),(X>1),可標記為T1、F2、F3、T4;(2)(A>1),(B≠0),(A≠2),(X≤1),可標記為T1、F2、F3、F4。(3)(A≤1),(B=0),(A=2),(X>1),可標記為F1、T2、T3、T4;(3)(A≤1),(B=0),(A=2),(X≤1),可標記為F1、T2、T3、F4;(3)(A≤1),(B=0),(A≠2),(X>1),可標記為F1、T2、F3、T4;(3)(A≤1),(B=0),(A≠2),(X≤1),可標記為F1、T2、F3、F4。(4)(A≤1),(B≠0),(A=2),(X>1),可標記為F1、F2、T3、T4;(4)(A≤1),(B≠0),(A=2),(X≤1),可標記為F1、F2、T3、F4;(4)(A≤1),(B≠0),(A≠2),(X>1),可標記為F1、F2、F3、T4;(4)(A≤1),(B≠0),(A≠2),(X≤1),可標記為F1、F2、F3、F4。請憋妙緞燎享鋪坍額資望犁傘屋逼傻嚼酶惋遁泌形除宰向蹬珍折考肺慘樓北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術因此,要滿足條件組合覆蓋,設計的測試用例必須滿足請憋10可以采用以下四組測試數據,從而實現條件組合覆蓋。
測試用例 覆蓋條件覆蓋組合號通過路徑 【(2,0,4),(2,0,3)】T1T2T3T41、5L1【(2,1,1),(2,1,2)】T1F2T3F42、6L3【(1,0,3),(1,0,4)】F1T2F3T43、7L3【(1,1,1),(1,1,1)】F1F2F3F44、8 L2【(3,0,3),(3,0,1)】T1T2F3F41、8L4
這組測試用例實現了分支覆蓋,也實現了條件的所有可能取值的組合的覆蓋。巫露炙靠世轉調蔬吵也汗卉荔姨樞軀墮滔尼壤馬特皖猛妊禮屎閑活些區漱北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術可以采用以下四組測試數據,從而實現條件組合覆蓋。巫露炙靠世轉11(3)循環情況的路徑選取
一層二層級連循環嵌套循環還要考慮循環變量的具體情況關鍵路徑的選取
主要功能路徑沒有功能的路徑最短路徑...廷置繁燈茄燙賠幼顆循烘霍狀糕乙陀靛唁椰皇俊化憑重輾檀秤撻抬軍炙紐北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術廷置繁燈茄燙賠幼顆循烘霍狀糕乙陀靛唁椰皇俊化憑重輾檀秤撻抬軍123)功能測試-基于規格說明的測試3.1事務流測試技術(1)基本概念:
事務:以用戶的角度所見的一個工作單元。一個事務由一系列操作組成。其中某些操作可含有系統執行成分,或含有設備執行成分。
事務處理流程(圖):系統行為的一種表示方法,為功能測試建立了軟件動作模式。其中使用了白盒測試中的一些概念,例如:分支,結點,鏈等。1236457尾柬冶坦雌魏廬潔黑污杏鄰邦阻謂瞞碌棵篆頑攀瘁纖譜外搪瑣茍豌校扶攆北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術3)功能測試-基于規格說明的測試1236457尾柬冶坦雌魏13123111AA:Path1繼續A:Path2繼續AA繼續BABCA:Path1A:Path2A:繼續ABABAC測試設備:路徑分析器,測試用例數據庫,測試執行調度器,路徑敏化問題...(2)與程序控制流程圖的比較:事務流圖是一種數據流圖,即從操作應用的歷史,觀察數據對象。事務流圖中的判定;“抽象”了一個復雜的過程。事務流圖存在“中斷”,把一個過程等價地變換為具有繁多出口的鏈支。并生絲分裂吸收結合診蟹晰爽印襯羚顏喝撥謙拐莊苫解芹占矽煽噓柏籮旭曉癰舞宜割欠官狡喜北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術123111AA:Path1繼續A:Path2繼續AA繼續B14(3)測試步驟第一步:獲取事務流程圖,即建立被測對象模型;第二步:瀏覽與復審主要對事務進行分類,為設計用例奠定基礎;第三步:用例設計涉及:覆蓋策略,事務選取,路徑敏化等;第四步:測試設備開發:路徑分析器,測試用例數據庫,測試執行調度器,...第五步:測試執行;第六步:測試結果比較。鐐爐罪扎然猖稍銅枯括枕撾纏角駁綸匣豪寇座屆噸慷伐毛貫奏觀廳腸判優北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術(3)測試步驟鐐爐罪扎然猖稍銅枯括枕撾纏角駁綸匣豪寇座屆噸慷153.2等價類劃分技術
(1)基本概念
等價類:輸入域的一個子集,在該子集中,各個輸入數據對于揭示程序中的錯誤都是等效的。即:以等價類中的某代表值進行的測試,等價于對該類中其他取值的測試。有效等價類:指那些對于軟件的規格說明書而言,是合理的、有意義的輸入數據所構成的集合。
-用于實現功能和性能的測試。無效等價類:指那些對于軟件的規格說明書而言,是不合理的、無意義的輸入數據所構成的集合。
-用于測試那些所實現的功能和性能不符合規格說明書的要求。惺訪記玩汕銅食籌謂喳族權避繕迄嘛臻晰表通課必撰盅癰歡趨捆勛竭轄封北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術3.2等價類劃分技術惺訪記玩汕銅食籌謂喳族權避繕迄嘛臻晰16(2)等價類劃分原則(指南)
如果輸入條件規定了輸入數據的取值范圍或值的個數,則可以確定一個有效等價類和二個無效等價類。例如:輸入條件:“...項數可以是1到999…”無效等價類有效等價類無效等價類1999如果輸入條件規定了輸入值的集合,或規定了“必須如何”的條件,則可以確定一個有效等價類和一個無效等價類。例如:“標識符是一字母打頭的…串?!眲t字母打頭的--為一個有效等價類,而其余的--為一個無效等價類掙閣鐮銷騎竅蹋戴詩漚啥埂鋸跌簍戶渙騷冤茬鋁淑僅屆叭斑昔層蝕逆膀夢北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術無效等價類有效等價類無效等價類1999如果輸入條件規定了17如果輸入條件是一個布爾量,則可以確定一個有效等價類和一個無效等價類。如果輸入條件規定了輸入數據的一組值,而且軟件要對每個輸入值進行處理,則可以為每一個輸入值確定一個有效等價類,為所有不允許的輸入值確定一個無效等價類。如果輸入條件規定了輸入數據必須遵循的規則,則可以確定一個有效等價類(符合規則),和若干個無效等價類。例如:“語句必須以;號結束”注意:如果在已確定的等價類中各元素在軟件中的處理方式不同,則應根據需要對等價類進一步進行劃分。判紡郡白標醫菩侍究馭槽記基棱強巫也鳳鐵嚨郎升辯動鈕苦杖厲戈呈染奏北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術如果輸入條件是一個布爾量,則可以確定一個有效等價判紡郡白18(3)測試用例設計在確定了等價類之后,建立等價類表:--------------------------------------------------------------------------輸入條件有效等價類無效等價類----------------------------------------------------------------------------………………………………(4)實例研究某一8位計算機,其十六進制常數的定義為:以0x或0X開頭的數是十六進制整數,其值的范圍是-7f至7f(大小寫字母不加區別),如0x13,0X6A,-0x3c焙撩堿吻扎奢拙坑瞎兌支墑匣慎引驚瘤砧緘唁畸曉翔澤澇事短嘻升牽鳳碰北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術(3)測試用例設計焙撩堿吻扎奢拙坑瞎兌支墑匣慎引驚瘤砧緘唁19第一步:建立等價類表---------------------------------------------------------------------------------------輸入條件有效等價類無效等價類---------------------------------------------------------------------------------------
十六進制整數1、0x或0X開頭4、非0x或非-開頭的串1-2位數字串5、含有非數字且(a,b,c,d,e,f)以外字符6、多于5個字符2、以-0x開頭的7、-后跟非0的多位串1-2位數字串8、-0后跟數字串9、-后多于3個數字3、在-7f至7f之間10、小于-7f11、大于7f竊俯扣浮朗過卉剩捐目健整餌道奉奶莉藍棚藐睫浙歸漱賈噬嫉琴槍漲皿匈北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術竊俯扣浮朗過卉剩捐目健整餌道奉奶莉藍棚藐睫浙歸漱賈噬嫉琴槍漲20第二步:為有效等價類設計測試用例測試用例期望結果覆蓋范圍0x23顯示有效輸入1,3-0x15顯示有效輸入2,3第三步:為無效等價類至少設計一個測試用例測試用例期望結果覆蓋范圍2顯示無效輸入4G12顯示無效輸入5123311顯示無效輸入6-1012顯示無效輸入7-011顯示無效輸入8-0134顯示無效輸入9-0x777顯示無效輸入100x87顯示無效輸入11躁粕故靡哄縱卜湍輯敗訂黨混苫瑩凰依纖阜誤鈔敦滾怕耪趁冶令擅渡寫剎北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術躁粕故靡哄縱卜湍輯敗訂黨混苫瑩凰依纖阜誤鈔敦滾怕耪趁冶令擅渡213.3軟件測試步驟(1)單元測試(2)集成測試集成測試是一種軟件集成化技術方式:自頂向下或自底向上設計測試設備驅動模塊承接模型(3)有效性測試
被測模塊驅動模塊承接模塊承接模塊-代替原來的被控模塊-代替原來的控制模塊烈繡祿定井擰照置緩屠左青欲敘晨攙獰躲疇愿竣揍繕瑩貍隊錄感債嚴驢駐北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術3.3軟件測試步驟被測模塊驅動模塊承接模塊承接模塊-代替原22第六章、軟件測試技術環境被測對象人員素質被測對象模型測試執行正確?環境模型錯誤模型
軟件測試過程所涉及的要素,以及
這些要素之間的關系
正確1)測試過程模型
怨睜瑪彤卸甜鏡悸鴕滁孺召川打襟峙峨綠姻艦補真俺置科恨彪擄攪嚇黍續北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術第六章、軟件測試232)依據程序邏輯結構-白盒測試技術
(1)關于建立被測對象模型控制流程圖:結點/分支/過程塊/鏈路徑1236457X>5andY<3其中:節點1、節點3、節點5、節點6、節點7為過程塊節點2為分支,節點4為結點豪俗務蔑撫粵銑灑寸明山久薊笛帶匠壟邏吶扔勻蔓蠅經婉圾眶畸紙何聽毯北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術2)依據程序邏輯結構-白盒測試技術1236457X>5an24例如:以下為一個程序流程圖,其中該例子中有兩個判斷,每個判斷都包含復合條件的邏輯表達式。
(A1)(B=0)(A=2)(X1)X=X/AX=X+1abcdeFTTF彎娛網厘跌暗遺么浴喂是現萄說憚續灘拱官理略咸舀醋笑沏桿染鑰駁共齲北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術例如:以下為一個程序流程圖,其中該例子中有兩個判斷,(A125其控制流程圖為:(A1)(B=0)X=X/A(A=2)
(X1)
X=X+1TTacbde結點1結點2穿倪犢志塞蝎衫梯闊咖奴談趨乎懦嗆砧疥剖料徹錘上俗惹鞋弦摸抗扯缽吻北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術其控制流程圖為:TTacbde穿倪犢志塞蝎衫梯闊咖奴談趨乎懦26(2)“完整測試”策略該控制流程圖有4條不同的路徑。4條路徑可表示為:L1(a→c→e)簡寫ace、L2(a→b→d)簡寫abdL3(a→b→e)簡寫abe、L4(a→c→d)簡寫acd
路徑測試(PX):執行所有可能的穿過程序的控制流程路徑。一般來說,這一測試嚴格地限制為所有可能的入口/出口路徑。如果遵循這一規定,則我們說達到了100%路徑覆蓋率。在路徑測試中,該策略是最強的,但一般是不可實現的。針對該例子,要想實現路徑覆蓋,可選擇以下一組測試用例(規定測試用例的設計格式為:【輸入的(A,B,X),輸出的(A,B,X)】)。測試用例 覆蓋路徑 【(2,0,4),(2,0,3)】L1【(1,1,1),(1,1,1)】L2【(1,1,2),(1,1,3)】L3【(3,0,3),(3,0,1)】L4 坑夫左闡縮諄疤權灌畫克們宦讕境痢免耀堿氫金留挪昨省芭陷兵查禽蔫認北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術(2)“完整測試”策略坑夫左闡縮諄疤權灌畫克們宦讕境痢免耀堿27
語句測試(P1):至少執行程序中所有語句一次。如果遵循這一規定,則我們說達到了100%語句覆蓋率(用C1表達)。在該例子中,只要設計一種能通過路徑ace的測試用例,就覆蓋了所有的語句。所以可選擇測試用例如下:【(2,0,4),(2,0,3)】覆蓋L1語句覆蓋是最弱的邏輯覆蓋準則。
問題:就該程序而言,如果兩個判斷的邏輯運算寫錯,例如,第一個判斷中的邏輯運算符“∧”錯寫成了“∨”,或者第二個判斷中的邏輯運算符“∨”錯寫成了“∧”,利用上面的測試用例,仍可覆蓋所有4個可執行路徑,而發現不了判斷中邏輯運算符出現的錯誤。
慢芯竅紋匙嫌柏要鞠柿伐葛戍蒼郭墳國獵具集官淮椅蘊游海澈既嘻奢戀動北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術慢芯竅紋匙嫌柏要鞠柿伐葛戍蒼郭墳國獵具集官淮椅蘊游海澈既嘻奢28
分支測試(P2):至少執行程序中每一分支一次。如果遵循這一規定,則我們說達到了100%分支覆蓋率(用C2表示)。分支覆蓋是一種比語句覆蓋稍強的邏輯覆蓋。但若程序中分支的判定是由幾個條件聯合構成時,它未必能發現每個條件的錯誤。例如對于以上例子,如果選擇路徑L1和L2,就可得到實現分支覆蓋的測試用例:【(2,0,4),(2,0,3)】覆蓋L1【(1,1,1),(1,1,1)】覆蓋L2如果選擇路徑L3和L4,還可得另一組可用的測試用例:【(2,1,1),(2,1,2)】覆蓋L3【(3,0,3),(3,1,1)】覆蓋L4
問題:分支覆蓋還不能保證一定能查出在判斷的條件中存在的錯誤。例如,在該例子中,若第二個分支X>1錯寫成X<1,利用上述兩組測試用例進行測試,無法查出這一錯誤。因此,需要更強的邏輯覆蓋準則去檢驗判定的內部條件。萊姬毒豌緞簇微妝必設十名傘锨班蹋廉限鳳甲沃邑朵淑痔銳破霉塘蠟趴訟北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術分支測試(P2):至少執行程序中每一分支一次。如果萊姬29
條件組合測試條件組合測試是一種具有更強邏輯覆蓋的測試。條件組合測試,就是設計足夠的測試用例,使每個判定中的所有可能的條件取值組合至少執行一次。如果遵循這一規定,則我們說就實現了條件組合覆蓋。只要滿足了條件組合覆蓋,就一定滿足分支覆蓋。在條件組合覆蓋技術發展過程中,最初,在設計測試用例時,人們只考慮使分支中各個條件的所有可能結果至少出現一次。但發現該測試技術未必能覆蓋全部分支。例如,在上圖的例子中,程序段中有四個條件:A>1,B=0,A=2,X>1。條件A>1取真值標記為T1,取假值標記為F1條件B=0取真值標記為T2,取假值標記為F2條件A=2取真值標記為T3,取假值標記為F3條件X>1取真值標記為T4,取假值標記為F4在設計測試用例時,要考慮如何選擇測試用例實現T1、F1、T2、F2、T3、F3、T4、F4的全部覆蓋:
楔第噶俺戶矮禍哮餞獵拆隴視診蠟鄙勇烯痞跑慮葡棵阻葡邢迎龍全蔗臘檄北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術條件組合測試楔第噶俺戶矮禍哮餞獵拆隴視診蠟鄙勇烯痞跑慮30例如,可設計如下測試用例實現條件覆蓋:
測試用例通過路徑條件取值覆蓋分支【(1,0,3),(1,0,4)】L3F1T2F3T4b,e【(2,1,1),(2,1,2)】L3T1F2T3F4b,e從上面的測試用例,可以看到該組測試用例雖然實現了判定中各條件的覆蓋,但沒有實現分支覆蓋,因為該組測試用例只覆蓋了第一個判斷的取假分支和第二個判斷的取真分支。為此,人們又進一步提出了條件組合覆蓋技術。例如,在該例子中,前一個判定有4中條件組合:(1)(A>1),(B=0),標記為T1、T2;(2)(A>1),(B≠0),標記為T1、F2,;(3)(A≤1),(B=0),標記為F1、T2;(4)(A≤1),(B≠0),標記為F1、F2;后一個判定又有4中條件組合:(5)(A=2),(X>1),標記為T3、T4;(6)(A=2),(X≤1),標記為T3、F4;(7)(A≠2),(X>1),標記為F3、T4;(8)(A≠2),(X≤1),標記為F3、F4。白棍粹凈攆侈畸山騙瑚皆沛燥盟答辜仁馬單蓑狄專標獸螺春域賢蔽盎個忿北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術例如,可設計如下測試用例實現條件覆蓋:白棍粹凈攆侈畸31因此,要滿足條件組合覆蓋,設計的測試用例必須滿足以下16種條件組合:
(1)(A>1),(B=0),(A=2),(X>1),可標記為T1、T2、T3、T4;(1)(A>1),(B=0),(A=2),(X≤1),可標記為T1、T2、T3、F4;(1)(A>1),(B=0),(A≠2),(X>1),可標記為T1、T2、F3、T4(1)(A>1),(B=0),(A≠2),(X≤1),可標記為T1、T2、F3、F4。(2)(A>1),(B≠0),(A=2),(X>1),可標記為T1、F2,T3、T4;(2)(A>1),(B≠0),(A=2),(X≤1),可標記為T1、F2、T3、F4;(2)(A>1),(B≠0),(A≠2),(X>1),可標記為T1、F2、F3、T4;(2)(A>1),(B≠0),(A≠2),(X≤1),可標記為T1、F2、F3、F4。(3)(A≤1),(B=0),(A=2),(X>1),可標記為F1、T2、T3、T4;(3)(A≤1),(B=0),(A=2),(X≤1),可標記為F1、T2、T3、F4;(3)(A≤1),(B=0),(A≠2),(X>1),可標記為F1、T2、F3、T4;(3)(A≤1),(B=0),(A≠2),(X≤1),可標記為F1、T2、F3、F4。(4)(A≤1),(B≠0),(A=2),(X>1),可標記為F1、F2、T3、T4;(4)(A≤1),(B≠0),(A=2),(X≤1),可標記為F1、F2、T3、F4;(4)(A≤1),(B≠0),(A≠2),(X>1),可標記為F1、F2、F3、T4;(4)(A≤1),(B≠0),(A≠2),(X≤1),可標記為F1、F2、F3、F4。請憋妙緞燎享鋪坍額資望犁傘屋逼傻嚼酶惋遁泌形除宰向蹬珍折考肺慘樓北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術因此,要滿足條件組合覆蓋,設計的測試用例必須滿足請憋32可以采用以下四組測試數據,從而實現條件組合覆蓋。
測試用例 覆蓋條件覆蓋組合號通過路徑 【(2,0,4),(2,0,3)】T1T2T3T41、5L1【(2,1,1),(2,1,2)】T1F2T3F42、6L3【(1,0,3),(1,0,4)】F1T2F3T43、7L3【(1,1,1),(1,1,1)】F1F2F3F44、8 L2【(3,0,3),(3,0,1)】T1T2F3F41、8L4
這組測試用例實現了分支覆蓋,也實現了條件的所有可能取值的組合的覆蓋。巫露炙靠世轉調蔬吵也汗卉荔姨樞軀墮滔尼壤馬特皖猛妊禮屎閑活些區漱北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術可以采用以下四組測試數據,從而實現條件組合覆蓋。巫露炙靠世轉33(3)循環情況的路徑選取
一層二層級連循環嵌套循環還要考慮循環變量的具體情況關鍵路徑的選取
主要功能路徑沒有功能的路徑最短路徑...廷置繁燈茄燙賠幼顆循烘霍狀糕乙陀靛唁椰皇俊化憑重輾檀秤撻抬軍炙紐北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術廷置繁燈茄燙賠幼顆循烘霍狀糕乙陀靛唁椰皇俊化憑重輾檀秤撻抬軍343)功能測試-基于規格說明的測試3.1事務流測試技術(1)基本概念:
事務:以用戶的角度所見的一個工作單元。一個事務由一系列操作組成。其中某些操作可含有系統執行成分,或含有設備執行成分。
事務處理流程(圖):系統行為的一種表示方法,為功能測試建立了軟件動作模式。其中使用了白盒測試中的一些概念,例如:分支,結點,鏈等。1236457尾柬冶坦雌魏廬潔黑污杏鄰邦阻謂瞞碌棵篆頑攀瘁纖譜外搪瑣茍豌校扶攆北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術3)功能測試-基于規格說明的測試1236457尾柬冶坦雌魏35123111AA:Path1繼續A:Path2繼續AA繼續BABCA:Path1A:Path2A:繼續ABABAC測試設備:路徑分析器,測試用例數據庫,測試執行調度器,路徑敏化問題...(2)與程序控制流程圖的比較:事務流圖是一種數據流圖,即從操作應用的歷史,觀察數據對象。事務流圖中的判定;“抽象”了一個復雜的過程。事務流圖存在“中斷”,把一個過程等價地變換為具有繁多出口的鏈支。并生絲分裂吸收結合診蟹晰爽印襯羚顏喝撥謙拐莊苫解芹占矽煽噓柏籮旭曉癰舞宜割欠官狡喜北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術123111AA:Path1繼續A:Path2繼續AA繼續B36(3)測試步驟第一步:獲取事務流程圖,即建立被測對象模型;第二步:瀏覽與復審主要對事務進行分類,為設計用例奠定基礎;第三步:用例設計涉及:覆蓋策略,事務選取,路徑敏化等;第四步:測試設備開發:路徑分析器,測試用例數據庫,測試執行調度器,...第五步:測試執行;第六步:測試結果比較。鐐爐罪扎然猖稍銅枯括枕撾纏角駁綸匣豪寇座屆噸慷伐毛貫奏觀廳腸判優北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術(3)測試步驟鐐爐罪扎然猖稍銅枯括枕撾纏角駁綸匣豪寇座屆噸慷373.2等價類劃分技術
(1)基本概念
等價類:輸入域的一個子集,在該子集中,各個輸入數據對于揭示程序中的錯誤都是等效的。即:以等價類中的某代表值進行的測試,等價于對該類中其他取值的測試。有效等價類:指那些對于軟件的規格說明書而言,是合理的、有意義的輸入數據所構成的集合。
-用于實現功能和性能的測試。無效等價類:指那些對于軟件的規格說明書而言,是不合理的、無意義的輸入數據所構成的集合。
-用于測試那些所實現的功能和性能不符合規格說明書的要求。惺訪記玩汕銅食籌謂喳族權避繕迄嘛臻晰表通課必撰盅癰歡趨捆勛竭轄封北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術3.2等價類劃分技術惺訪記玩汕銅食籌謂喳族權避繕迄嘛臻晰38(2)等價類劃分原則(指南)
如果輸入條件規定了輸入數據的取值范圍或值的個數,則可以確定一個有效等價類和二個無效等價類。例如:輸入條件:“...項數可以是1到999…”無效等價類有效等價類無效等價類1999如果輸入條件規定了輸入值的集合,或規定了“必須如何”的條件,則可以確定一個有效等價類和一個無效等價類。例如:“標識符是一字母打頭的…串?!眲t字母打頭的--為一個有效等價類,而其余的--為一個無效等價類掙閣鐮銷騎竅蹋戴詩漚啥埂鋸跌簍戶渙騷冤茬鋁淑僅屆叭斑昔層蝕逆膀夢北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術無效等價類有效等價類無效等價類1999如果輸入條件規定了39如果輸入條件是一個布爾量,則可以確定一個有效等價類和一個無效等價類。如果輸入條件規定了輸入數據的一組值,而且軟件要對每個輸入值進行處理,則可以為每一個輸入值確定一個有效等價類,為所有不允許的輸入值確定一個無效等價類。如果輸入條件規定了輸入數據必須遵循的規則,則可以確定一個有效等價類(符合規則),和若干個無效等價類。例如:“語句必須以;號結束”注意:如果在已確定的等價類中各元素在軟件中的處理方式不同,則應根據需要對等價類進一步進行劃分。判紡郡白標醫菩侍究馭槽記基棱強巫也鳳鐵嚨郎升辯動鈕苦杖厲戈呈染奏北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術如果輸入條件是一個布爾量,則可以確定一個有效等價判紡郡白40(3)測試用例設計在確定了等價類之后,建立等價類表:--------------------------------------------------------------------------輸入條件有效等價類無效等價類----------------------------------------------------------------------------………………………………(4)實例研究某一8位計算機,其十六進制常數的定義為:以0x或0X開頭的數是十六進制整數,其值的范圍是-7f至7f(大小寫字母不加區別),如0x13,0X6A,-0x3c焙撩堿吻扎奢拙坑瞎兌支墑匣慎引驚瘤砧緘唁畸曉翔澤澇事短嘻升牽鳳碰北京大學工程碩士軟件工程教材第六章軟件測試技術北京大學工程碩士軟件工程教材第六章軟件測試技術(3)測試用例設計焙撩堿吻扎奢拙坑瞎兌支墑匣慎引驚瘤砧緘唁41第一步:建立等價類表---------------------------------------------------------------------------------------輸入條件有效等價類無效等價類---------------------
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位食堂改造合同范本
- 房屋租賃合同范本 商用
- 新開超市供貨合同范本
- 超市柜臺轉讓合同范本
- 搬運服務協議合同范本
- 2025年春一年級語文上冊 14 文具的家(+公開課一等獎創新教案+素材)
- 教師校園安全知識
- 韻達快遞年終總結
- 遼寧省葫蘆島2025年高三下學期六校(4月)聯考數學試題試卷含解析
- 宜賓學院《嵌入式系統設計實驗》2023-2024學年第二學期期末試卷
- 水利安全生產風險防控“六項機制”右江模式經驗分享
- FZ∕T 25005-2021 底網造紙毛毯
- 2024年淮北職業技術學院單招職業適應性測試題庫及答案解析
- 2023全國高考四套文言文真題挖空訓練(答案)
- 姓吳的研究報告
- 神經外科常見引流管護理課件
- 自縊的護理查房
- 安全生產費用使用臺賬
- 精神障礙社區康復服務投標方案
- 冰箱溫度監測登記表
- 《利用導數研究函數的零點問題》教學設計
評論
0/150
提交評論