




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件測試知識培訓軟件測試知識培訓主講人:主講人:test training培訓內容第一講 測試總體介紹第二講 測試計劃第三講 測試設計和開發第四講 測試用例分析方法第五講 測試執行和評估第六講 測試流程及管理test case analyze method第四講 測試用例分析方法測試用例分析方法前前 言言本次培訓的內容本次培訓的內容是軟件測試用例的分析方法。本次培訓的目的本次培訓的目的是通過這次講解,希望大家能夠對軟件測試用例的分析方法有一個比較系統化和全面的了解。測試用例分析方法w簡介w測試方法w 黑盒測試w 白盒測試w用例分析方法w 黑盒方法w 白盒方法wq/a目目 錄錄測試用例分析方法簡
2、簡 介介 軟件測試的方法多種多樣,測試人員在測試的過程中不斷摸索和總結,逐漸形成了一些典型的通用方法,這些方法可以針對具體的項目和需要來剪裁或組合運用。大體上將這些方法歸為兩類:黑盒方法和白盒方法。測試用例分析方法理想理想:把所有能做的測試無一遺漏地全部做 完,把軟件系統中所有隱藏的錯誤全 部找出來。現實現實:人力,時間,成本的限制。折中折中:設計有限的測試用例代替窮舉測試。測試方法測試方法黑盒測試黑盒測試:w把測試對象看做一個黑盒子,測試人員完全不考慮程序內部的邏輯結構和內部特性,只依據程序的需求規格說明書,檢查程序的功能是否符合它的功能說明。測試用例分析方法w黑盒測試的關注點:1. 是否有
3、不正確或遺漏了的功能?2. 在接口上,輸入能否正確地接受? 能否輸出正確的結果?3. 是否有數據結構錯誤或外部信息(例如數據文件)訪問錯誤?4. 性能上是否能夠滿足要求?5. 安全性上是否能夠滿足要求?6. 是否有初始化或終止性錯誤?測試用例分析方法例示:假設一個程序p有輸入量x和y及輸出量z。在字長為32位的計算機上運行。若x、y取整數,按黑盒方法進行窮舉測試:可能采用的 測試數據組: 232232264 如果測試一組數據需要1毫秒,一年工作365 24小時,完成所有測試需幾億年。測試用例分析方法白盒測試白盒測試:w把測試對象看做一個透明的盒子,它允許測試人員利用程序內部的邏輯結構等有關信息
4、,設計測試用例,對程序所有邏輯路徑進行測試。w通過在不同點檢查程序的狀態,確定實際的狀態是否與預期的狀態一致。測試用例分析方法w白盒測試的關注點:1. 檢查程序模塊的所有獨立的執行路徑是否有效;2. 檢查程序中所有的邏輯判定,取“真”與取“假”的兩種情況是否都執行過;3. 檢查循環的邊界和循環內運行邏輯是否正確;4. 檢查程序內部數據結構是否有效等。測試用例分析方法例示:測試用例分析方法對一個具有多重選擇和循環嵌套的程序,不同的路徑數目可能是天文數字。給出一個小程序的流程圖,它包括了一個執行20次的循環。包含的不同執行路徑數達520條,對每一條路徑進行測試需要1毫秒,假定一年工作365 24小
5、時,要想把所有路徑測試完,需幾千年。測試用例分析方法總結:w通過黑盒測試發現程序中的錯誤,必須在所有可能的輸入條件和輸出條件中確定測試數據,來檢查程序是否都能產生正確的輸出;w通過白盒測試發現程序中的錯誤,必須運行程序執行所有的邏輯分支,所有的循環,所有的路徑,來檢查程序是否都能運行正常。w但這是不可能的。w所以,我們需要用例分析方法。測試用例分析方法 語句覆蓋 判定覆蓋 條件覆蓋 判定-條件覆蓋 條件組合覆蓋 路徑覆蓋用例分析方法一.白盒方法測試用例分析方法舉例舉例:(程序片斷如下)所有路徑為:l1(a-c-e) ,l2(a-b-d), l3(a-b-e), l4(a-c-d).l1(ace
6、)a b a xa1021andandora b a a b x a102101andandorandanda b a b x a20101andorandandl2 (abd) =a b a x1021andandora b a x1021orandand= a a x b a x121021andandorandanda x b a x11021andorandandl3 (abc) a b a x1021andandora b a x1021orandora 1 and x 1 or b 0 and a2 or b 0 and x 1a x b a b x110201andorandor
7、andl4 (acd)a b a x a1021andandora b a x a1021andandand依據以上推導出來的結果可以設計滿足要求的測試用例。邏輯代數的基本公式:注: and代表 or 代表.語句覆蓋語句覆蓋w語句覆蓋就是設計若干個測試用例,運行被測程序,使得每一可執行語句至少執行一次。w在示例中,正好所有的可執行語句都在路徑l1上,所以選擇路徑 l1設計測試用例,就可以覆蓋所有的可執行語句。w測試用例的設計格式如下【輸入的(a, b, x),輸出的(a, b, x)】w為示例設計滿足語句覆蓋的測試用例是:【(2, 0, 4),(2, 0, 3)】 覆蓋 ace【l1】a b
8、a b x a20101andorandand語句覆蓋的優缺點:優點:1. 最簡單的結構測試覆蓋;2. 易于實現大量的代碼覆蓋;缺點:1. 語句覆蓋所采用的標準是結構測試里最弱的;2. 只測試了條件語句的一方面;判定覆蓋判定覆蓋w判定覆蓋就是設計若干個測試用例,運行被測程序,使得程序中每個判斷的取真分支和取假分支至少執行一次。w判定覆蓋又稱為分支覆蓋。w對于示例,如果選擇路徑l1和l2,就可以得到滿足要求的測試用例:【(2, 0, 4),(2, 0, 3)】覆蓋 ace【l1】【(1, 1, 1),(1, 1, 1)】覆蓋 abd【l2】a x b a x11021andorandanda b
9、 a b x a20101andorandandw如果選擇路徑l3和l4,還可得另一組可用的測試用例:【(2, 1, 1),(2, 1, 2)】覆蓋 abe【l3】【(3, 0, 3),(3, 0, 1)】覆蓋 acd【l4】a x b a b x110201andorandoranda b a x a1021andandand分支覆蓋的優缺點:優點:1. 分支覆蓋包含了語句覆蓋;2. 分支條件容易在代碼中發現;缺點: 可能不會訪問到用于分支的所有復雜條 件;條件覆蓋條件覆蓋w條件覆蓋就是設計若干個測試用例,運行被測程序,使得程序中每個判斷的每個條件的可能取值至少執行一次。w在圖例中,我們事先
10、可對所有條件的取值加以標記。例如,w對于第一個判斷:條件 a1 取真為 ,取假為 條件 b0 取真為 ,取假為t1t1t2t2w對于第二個判斷: 條件a2 取真為 ,取假為 條件x1 取真為 ,取假為 測試用例 覆蓋分支 條件取值【(2, 0, 4),(2, 0, 3)】l1(c, e) 【(1, 0, 1),(1, 0, 1)】l2(b, d) 【(2, 1, 1),(2, 1, 2)】l3(b, e)或t3t3t4t t t t1234t t t t1234t t t t1234 測 試 用 例覆蓋分支 條件取值【(1, 0, 3),(1, 0, 4)】 l3(b, e) 【(2, 1,
11、1),(2, 1, 2)】 l3(b, e) t t t t1234t t t t1234條件覆蓋的優缺點:優點:每個條件的可能取值都被測試到;缺點: 可能遺漏部分路徑的測試;判定判定- -條件覆蓋條件覆蓋w判定-條件覆蓋就是設計足夠的測試用例,使得每個判斷的取真和取假分支至少執行一次,同時每個判斷中的每個條件的可能取值至少執行一次。 測 試 用例 覆蓋分支 條件取值【(2,0,4),(2,0,3)】l1(c,e)【(1,1,1),(1,1,1)】l2(b,d)t t t t1234t t t t1234a b a b xa20101a n do ra n da n da x b a x110
12、21a n do ra n da n d判定-條件覆蓋的優缺點:優點:1. 每個分支都被測試到;2. 每個分支的每個條件的可能取值都被測試到;缺點: 可能遺漏部分路徑的測試;條件組合覆蓋條件組合覆蓋w條件組合覆蓋就是設計足夠的測試用例,運行被測程序,使得每個判斷的所有可能的條件取值組合至少執行一次。 記 a1, b0 作 a1, b0 作 a1, b0 作 a1, b0 作t t12t t12t t12t t12 a2, x1 作 a2, x 1 作 a2, x1 作 a2, x 1 作 測 試 用 例 覆蓋條件 覆蓋組合【(2, 0, 4), (2, 0, 3)】(l1) , 【(2, 1,
13、 1), (2, 1, 2)】(l3) , 【(1, 0, 3), (1, 0, 4)】(l3) , 【(1, 1, 1), (1, 1, 1)】(l2) , t t34t t34t t34t t34t t t t1234t t t t1234t t t t1234t t t t1234條件組合覆蓋的優缺點:優點:1. 所有的分支都被測試到;2. 分支的所有取值組合都被測試到;缺點: 可能遺漏部分路徑的測試;路徑覆蓋路徑覆蓋w路徑測試就是設計足夠的測試用例,覆蓋程序中所有可能的路徑。 測 試 用 例 通過路徑 覆蓋條件【(2, 0, 4), (2, 0, 3)】 ace (l1) 【(1, 1
14、, 1), (1, 1, 1)】 abd (l2) 【(1, 1, 2), (1, 1, 3)】 abe (l3) 【(3, 0, 3), (3, 0, 1)】 acd (l3) t t t t1234t t t t1234t t t t1234t t t t3412路徑覆蓋的優缺點:優點優點:是最全面的代碼覆蓋方法;缺點缺點:1.并非所有的路徑都可用; 2.實踐上也不可能實現100覆蓋; 用例分析方法二.黒盒方法 等價類劃分 邊界值分析 錯誤推測法 因果圖測試用例分析方法等價類劃分等價類劃分w等價類劃分是一種典型的黑盒測試方法,使用這一方法時,完全不考慮程序的內部結構,只依據程序的規格說明來
15、設計測試用例。w等價類是指某個輸入域的子集合。在該子集合中,各個輸入數據對于揭露程序中的錯誤都是等效的。測試某等價類的代表值就等價于對這一類其它值的測試。w等價類劃分是把所有可能的輸入數據,即程序的輸入域劃分成若干部分,然后從每一部分中選取少數有代表性的數據做為測試用例。w使用這一方法設計測試用例要經歷劃分等價類(列出等價類表)和選取測試用例兩步。w等價類的類別: 有效等價類:是指對于程序的規格說明來說,是合理的,有意義的輸入數據構成的集合。 無效等價類:是指對于程序的規格說明來說,是不合理的,無意義的輸入數據構成的集合。w在設計測試用例時,要同時考慮有效等價類和無效等價類的設計。w劃分等價類
16、的方法:(1) 如果輸入條件規定了取值范圍或值的個數,則可以確立一個有效等價類和兩個無效等價類。例如,在程序的輸入條件有如下要求: “ x的取值可以從1到999 ” 則有效等價類是“1x999”兩個無效等價類是“x1”或“x999”。在數軸上表示成: (2) 如果輸入條件規定了輸入值的集合,或者是規定了“必須如何”的條件,這時可確立一個有效等價類和一個無效等價類。例如,在程序設計語言中對變量標識符規定為“以字母打頭的串”。那么所有以字母打頭的構成有效等價類,而不在此集合內(不以字母打頭)的歸于無效等價類。(3) 如果輸入條件是一個布爾量,則可以確定一個有效等價類和一個無效等價類。(4) 如果規
17、定了輸入數據的一組值,而且程序要對每個輸入值分別進行處理。這時可為 每一個輸入值確立一個有效等價類,此外針對這組值確立一個無效等價類,它是所有不允許的輸入值的集合。例如,在教師上崗方案中規定對教授、副教授、講師和助教分別計算分數,做相應的處理。因此可以確定4個有效等價類為教授、副教授、講師和助教,一個無效等價類,它是所有不符合以上身分的人員的輸入值的集合。(5) 如果規定了輸入數據必須遵守的規則,則可以確立一個有效等價類(符合規則)和若干個無效等價類(從不同角度違反規則)。例如,某一程序設計語言規定 “一個語句必須以分號;結束”。這時,可以確定一個有效等價類 “以;結束”,若干個無效等價類 “
18、以:結束”、“以,結束”、“以 結束”等。w確立測試用例在確立了等價類之后,建立等價類表,列出所有劃分出的等價類。w從劃分出的等價類中按以下原則選擇測試用例:(1) 為每一個等價類規定一個唯一編號;(2) 設計一個新的測試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價類,重復這一步,直到所有的有效等價類都被覆蓋為止;(3)設計一個新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,重復這一步,直到所有的無效等價類都被覆蓋為止。w用等價類劃分法設計測試用例的實例在某一程序設計語言版本中規定:“標識符是由字母開頭,后跟字母或數字的任意組合構成。有效字符數為8個,最大字符數為80個。”并且規定:“標識
19、符必須先說明,再使用。” “在同一說明語句中,標識符至少有一個。”用等價類劃分的方法,建立輸入等價類表:w下面選取了9個測試用例,它們覆蓋了所有的等價類。 var x,t1234567:real; begin x := 3.414; t1234567 := 2.732; . (1), (2), (4), (8), (9), (12), (14) var :real; (3) var x,:real; (5) var t12345678:real; (6) var t12345.:real; (7) 多于80個字符 var t$:char; (10) var goto:integer; (11)
20、 var 2t:real; (13) var par:real; (15) begin . pap := sin (3.14 * 0.8) / 6; w辨別等價類的角度有:1.值的范圍2. 值的數量3.特殊值等價類劃分方法的優缺點:等價類劃分方法的優缺點:w優點優點:1.只需要相對較少的測試用例;2.感覺到完整的覆蓋;3.幫助降低重復性;w缺點缺點:1.有可能缺乏特殊用例的考慮;2.需要深入全面的系統知識才能做到最有 效,尤其是當子集里有特殊值。邊界值分析邊界值分析w邊界值分析也是對等價類劃分方法的補充。w從測試經驗得知,大量的錯誤是發生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內部。因此針
21、對各種邊界情況設計測試用例,可以查出更多的錯誤。比如,在做三角形計算時,要輸入三角形的三個邊長:a、b和c。 我們應注意到這三個數值應當滿足 a0、b0、c0、 abc、acb、bca,才能構成三角形。但如果把六個不等式中的任何一個大于號“”錯寫成大于等于號“”,那就不能構成三角形。w這里所說的邊界是指:相對于某個等價類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。w使用邊界值分析方法設計測試用例,首先應確定邊界情況。應當選取正好等于,剛剛大于,剛剛小于邊界的值做為測試數據,而不是選取等價類中的典型值或任意值做為測試數據。 邊界值分析的優缺點:優點優點:1.錯誤容易發生在邊界值附近;2.
22、對多取值變量的測試比較有效;3.適合于對數據類型要求不太嚴格的語言編 寫的程序有利;缺點缺點:1.對布爾值(或邏輯變量)無效;2.不能很好地測試不同的輸入組合;錯誤推測法錯誤推測法w靠經驗和直覺推測程序中可能存在的各種錯誤,從而有針對性地編寫檢查這些錯誤的例子。w錯誤推測法的基本想法是:列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況,根據它們選擇測試用例。錯誤推測法的優缺點:w優點優點:1.能很快地寫出一批測試用例;2.能體驗到程序的易用性方面的問題;3.能快速并容易地切入;4.高手能迅速找出大量錯誤;w缺點缺點:1.不是一個系統的方法,過于主觀;2.難以知道測試的覆蓋率, 覆蓋的范圍可
23、能不大, 可能遺漏未知的區域;3.方法沒有通用性,難以復制,因為不同的人的經 驗和出發點都不一樣。因果圖因果圖w如果在測試時必須考慮輸入條件的各種組合,可使用一種適合于描述對于多種條件的組合,相應產生多個動作的形式來設計測試用例,這就需要利用因果圖。w因果圖方法最終生成的就是判定表。w用因果圖生成測試用例的基本步驟:(1) 分析軟件規格說明描述中,哪些是原因 (即輸入條件或輸入條件的等價類),哪些是結果 (即輸出條件),并給每個原因和結果賦予一個標識符。(2) 分析軟件規格說明描述中的語義,找出原因與結果之間,原因與原因之間對應的是什么關系? 根據這些關系,畫出因果圖。 (3) 由于語法或環境限制,有些原因與原因之間
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 護理安全培訓 2
- 2-7邏輯運算的基本規則
- 統編版語文五年級下冊第23課《童年的發現》精美課件
- 新鄉學院《傅里葉分析與小波分析》2023-2024學年第一學期期末試卷
- 聊城大學東昌學院《混凝土結構原理與設計》2023-2024學年第一學期期末試卷
- 樂山師范學院《信息檢索與科技寫作》2023-2024學年第二學期期末試卷
- 四川省江油市2024-2025學年第二學期初三第一次模擬考試化學試題含解析
- 天津市職業大學《隸書技法》2023-2024學年第二學期期末試卷
- 濰坊科技學院《建筑安裝工程概預算》2023-2024學年第一學期期末試卷
- 上海市寶山區上海交大附中2025屆高三下5月第一次質量檢測試題物理試題試卷含解析
- 幼兒園幼兒小籃球活動體能測試表
- 福建省普通高中學生綜合素質學期評價表
- 五年級下冊數學課件 -4.1 用數對確定位置 ︳青島版 (共20張PPT)
- 柏拉圖分析案例
- 巖棉項目申報書_參考模板
- 二襯帶模注漿施工方案
- 《英語委婉語與忌語》PPT課件.ppt
- ISO9001-14001-2015內部審核檢查表
- 風險和機遇應對措施有效性評審記錄表副本
- 調查問卷設計-課件PPT
- 照金參觀學習心得
評論
0/150
提交評論