版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、測試用例設(shè)計(jì)方法1 等價(jià)類劃分1.1 理論知識等價(jià)類劃分是一種典型的黑盒測試方法。這一方法完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說明來設(shè)計(jì)測試用例。 等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對于揭示程序中的錯(cuò)誤都是等效的。等價(jià)類合理地假設(shè):某個(gè)等價(jià)類的代表值,與該等價(jià)類的其他值,對于測試來說是等價(jià)的。因此,可以把全部的輸入數(shù)據(jù)劃分成若干的等價(jià)類,在每一個(gè)等價(jià)類中取一個(gè)數(shù)據(jù)來進(jìn)行測試。這樣就能以較少的具有代表性的數(shù)據(jù)進(jìn)行測試,而取得較好的測試效果。等價(jià)類劃分是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例.該
2、方法是一種重要的,常用的黑盒測試用例設(shè)計(jì)方法.1) 分類:有效等價(jià)類:是指對于程序的規(guī)格說明來說是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合.利用有效等價(jià)類可檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能.無效等價(jià)類:與有效等價(jià)類的定義恰巧相反.設(shè)計(jì)測試用例時(shí),要同時(shí)考慮這兩種等價(jià)類.因?yàn)?軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn).這樣的測試才能確保軟件具有更高的可靠性. 2)劃分等價(jià)類的方法:下面給出六條確定等價(jià)類的原則:在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)的情況下,則可以確立一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類.在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個(gè)有效等價(jià)類
3、和一個(gè)無效等價(jià)類.在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類.在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對每一個(gè)輸入值分別處理的情況下,可確立n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類.在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則).在確知已劃分的等價(jià)類中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步的劃分為更小的等價(jià)類.3)原則:設(shè)計(jì)測試用例:在確立了等價(jià)類后,可建立等價(jià)類表,列出所有劃分出的等價(jià)類:輸入條件 有效等價(jià)類 無效等價(jià)類. . . . . 然后從劃分出的等價(jià)類中按以下三個(gè)原則設(shè)計(jì)測
4、試用例: 為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號. 設(shè)計(jì)一個(gè)新的測試用例,使其盡可能多地覆蓋尚未被覆蓋地有效等價(jià)類,重復(fù)這一步.直到所有的有效等價(jià)類都被覆蓋為止. 設(shè)計(jì)一個(gè)新的測試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無效等價(jià)類,重復(fù)這一步.直到所有的無效等價(jià)類都被覆蓋為止.之所以這么做,是因?yàn)槌绦蛑袑τ谀骋粋€(gè)錯(cuò)誤輸入的檢查,往往會屏蔽對于其他錯(cuò)誤輸入的檢查。因此,必須針對每一個(gè)無效等價(jià)類分別設(shè)計(jì)測試用例1.2 實(shí)例1、保險(xiǎn)費(fèi)率計(jì)算 人 人 保 險(xiǎn) 公 司 承 擔(dān) 人 壽 保 險(xiǎn) 已 有 多 年 歷 史 , 該 公 司 保 費(fèi) 計(jì) 算 方 式 為 投 保 額 保 險(xiǎn) 率 , 保 險(xiǎn) 率 又 依 點(diǎn) 數(shù) 不
5、 同 而 有 別 , 10 點(diǎn) 以 上 費(fèi) 率 為 0.6 % , 10 點(diǎn) 以 下 費(fèi) 率 為 0.1 % : 輸入數(shù)據(jù)說明年齡2039歲6點(diǎn)4059歲4點(diǎn)60歲以上20歲以下2點(diǎn)性別MALE5點(diǎn)FEMALE3點(diǎn)婚姻已婚3點(diǎn)未婚5點(diǎn)扶養(yǎng)人數(shù)一 人 扣 0.5 點(diǎn) 最 多 扣 3 點(diǎn) ( 四 舍 五 入 取 整 數(shù) )一、分 析 輸 入 數(shù) 據(jù) 型 式 。 年 齡 : 一 或 兩 位 數(shù) 字 。 性 別 : 以 英 文 Male 、 Female 、 M 、 F 表 示 。 婚 姻 : 已 婚 、 未 婚 。 扶 養(yǎng) 人 數(shù) : 空 白 或 一 位 數(shù) 字 。 保 險(xiǎn) 費(fèi) 率 : 10 點(diǎn) 以
6、 上 , 10 點(diǎn) 以 下 。 二、 劃 分 輸 入 數(shù) 據(jù) 1.年齡數(shù)字范圍199等價(jià)類2039歲4059歲60歲以上20歲以下2.性別類型英文字之集合等價(jià)類類型:英文字集合:Male、M集合:Female、F3.婚姻等價(jià)類已婚未婚4.扶養(yǎng)人數(shù)選擇項(xiàng)扶養(yǎng)人數(shù)可以有,也可沒有范圍19等價(jià)類空白16人6人以上5.保險(xiǎn)費(fèi)率等價(jià)類10點(diǎn)以上10點(diǎn)以下三、 設(shè) 計(jì) 輸 入 數(shù) 據(jù) 。 有效等價(jià)類無效等價(jià)類無效等價(jià)類1.年齡20 39 任 選 一 個(gè)2.年齡40 59 任 選 一 個(gè)3.年齡60 歲 以 上 、 20 歲 以 下 任 選 一 個(gè)小 於 1 , 選 一 個(gè)大 於 99 , 選 一 個(gè)4.性
7、別英 文 Male, M, F, Female 任 選 一 個(gè)非 英 文 字 如 男 5.性別英 文 Male, M 任 選 一 個(gè)非 Male, M, Female, F 之 任 意 字 元 , 如 Child 6.性別英 文 Female, F 任 選 一 個(gè)非 Male, M, Female, F 之 任 意 字 符 , 如 Child 7.婚姻 已 婚 非 已 婚 或 未 婚 之 任 意 字 符 , 如 離 婚 8.婚姻 未 婚 非 已 婚 或 未 婚 之 任 意 字 符 , 如 離 婚 9.扶養(yǎng)人數(shù)空 白10.扶養(yǎng)人數(shù)1 6小 於 1 , 選 一 個(gè)11.扶養(yǎng)人數(shù)7 9大 於 9 ,
8、 選 一 個(gè)12.保險(xiǎn)費(fèi)率10 點(diǎn) 以 上 (0.6 %)13.保險(xiǎn)費(fèi)率10 點(diǎn) 以 下 (0.6 %)四、 根據(jù)以上分析設(shè)計(jì)測試用例: 用例編號年齡性別婚姻扶養(yǎng)人數(shù)保險(xiǎn)費(fèi)率備注1.27Female未婚空白0.6%有 效n 年 齡 : 20 39 歲 n 性 別 : 集 合 Female, F n 婚 姻 : 集 合 未 婚 n 扶 養(yǎng) 人 數(shù) : 空 白 n 保 險(xiǎn) 費(fèi) 率 : 0.6 %2.50Male已婚20.6%有 效n 年 齡 : 40 59 歲 n 性 別 : 集 合 Male, M n 婚 姻 : 集 合 已 婚 n 扶 養(yǎng) 人 數(shù) : 1 6人3.70F未婚70.1%有 效n
9、年 齡 : 60 歲 以 上 或 20 歲 以 下 n 性 別 : 集 合 Female, F n 婚 姻 : 集 合 未 婚 n 扶 養(yǎng) 人 數(shù) : 6 人 以 上4.0M已婚4無法推算年 齡 類 無 效 , 因 此 無 法 推 算 保 險(xiǎn) 費(fèi) 率5.100Female未婚5無法推算年 齡 類 無 效 , 因 此 無 法 推 算 保 險(xiǎn) 費(fèi) 率6.1男已婚6無法推算性 別 類 無 效 , 因 此 無 法 推 算 保 險(xiǎn) 費(fèi) 率7.99Child未婚1無法推算性 別 類 無 效 , 因 此 無 法 推 算 保 險(xiǎn) 費(fèi) 率8.30Male離婚3無法推算婚 姻 類 無 效 , 因 此 無 法 推
10、算 保 險(xiǎn) 費(fèi) 率. 9.75Female未婚0無法推算扶 養(yǎng) 人 數(shù) 類 無 效 , 因 此 無 法 推 算 保 險(xiǎn) 費(fèi) 率10.17Male已婚10無法推算扶 養(yǎng) 人 數(shù) 類 無 效 , 因 此 無 法 推 算 保 險(xiǎn) 費(fèi) 率2 邊界值分析法2.1 理論知識邊界值分析方法是對等價(jià)類劃分方法的補(bǔ)充,也是一種黑盒測試方法,適度等價(jià)類分析方法的一種補(bǔ)充,由長期的測試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出的邊界上。因此針對各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯(cuò)誤。(1)邊界值分析方法的考慮:長期的測試工作經(jīng)驗(yàn)告訴我們,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部
11、.因此針對各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯(cuò)誤.使用邊界值分析方法設(shè)計(jì)測試用例,首先應(yīng)確定邊界情況.通常輸入和輸出等價(jià)類的邊界,就是應(yīng)著重測試的邊界情況.應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測試數(shù)據(jù).(2)基于邊界值分析方法選擇測試用例的原則:1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測試輸入數(shù)據(jù).2)如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù),最小個(gè)數(shù),比最小個(gè)數(shù)少一,比最大個(gè)數(shù)多一的數(shù)作為測試數(shù)據(jù).3)根據(jù)規(guī)格說明的每個(gè)輸出條件,使用前面的原則1).4)根據(jù)規(guī)格說明的每個(gè)
12、輸出條件,應(yīng)用前面的原則2).5)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測試用例.6)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測試用例.7)分析規(guī)格說明,找出其它可能的邊界條件.2.2 實(shí)例找零錢最佳組合假 設(shè) 商 店 貨 品 價(jià) 格 (R) 皆 不 大 于 100 元 ( 且 為 整 數(shù) ) , 若 顧 客 付 款 在 100 元 內(nèi) (P) , 求 找 給 顧 客 之 最 少 貨幣 個(gè)(張) 數(shù) ? ( 貨 幣 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元
13、(N1) 四 種 )一、 分 析 輸 入 的 情 形 。R > 1000 < R < = 100R <= 0P > 100R<= P <= 100P < R二、 分 析 輸 出 情 形 。N50 = 1N50 = 04 > N10 >= 1N10 = 0N5 = 1N5 = 04 > N1 >= 1N1 = 0三、 分 析 規(guī) 格 中 每 一 決 策 點(diǎn) 之 情 形 , 以 RR1, RR2, RR3 表 示 計(jì) 算 要 找 50, 10, 5 元 貨 幣 數(shù) 時(shí) 之 剩 余 金 額 。 R > 100 R <
14、= 0P > 100P < RRR1 >= 50RR2 >= 10RR3 >= 5四、 由 上 述 之 輸 入 輸 出 條 件 組 合 出 可 能 的 情 形 。1、R > 100 2、R <= 03、0 < R <= 100, P > 1004、0 < R <= 100, P < R5、0 < R <= 100, R <= P <= 100, RR = 506、0 < R <= 100, R <= P <= 100, RR = 497、0 < R <= 1
15、00, R <= P <= 100, RR = 108、0 < R <= 100, R <= P <= 100, RR = 99、0 < R <= 100, R <= P <= 100, RR = 510、0 < R <= 100, R <= P <= 100, RR = 40 < R <= 100, R <= P <= 100, RR = 10 < R <= 100, R <= P <= 100, RR = 0五、 為 滿 足 以 上 之 各 種 情 形 , 測
16、 試 資 料 設(shè) 計(jì) 如 下 :1. 貨品價(jià)格 = 1012. 貨品價(jià)格 = 03.貨品價(jià)格 = -14. 貨品價(jià)格 = 100, 付款金額 = 101 5. 貨品價(jià)格 = 100, 付款金額 = 99 6. 貨品價(jià)格 = 50, 付款金額 = 100 RR=507. 貨品價(jià)格 = 51, 付款金額 = 100 RR=498. 貨品價(jià)格 = 90, 付款金額 = 100 RR=109. 貨品價(jià)格 = 91, 付款金額 = 100 RR=910. 貨品價(jià)格 = 95, 付款金額 = 100 RR=511. 貨品價(jià)格 = 96, 付款金額 = 100 RR=412. 貨品價(jià)格 = 99, 付款金額
17、 = 100 RR=113. 貨品價(jià)格 = 100, 付款金額 = 100 RR=03 錯(cuò)誤推測法1、定義:基于經(jīng)驗(yàn)和直覺推測程序中所有可能存在的各種錯(cuò)誤, 從而有針對性的設(shè)計(jì)測試用例的方法.2、錯(cuò)誤推測方法的基本思想:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)他們選擇測試用例。1) 例如, 輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況;輸入表格為空格或輸入表格只有一行。 這些都是容易發(fā)生錯(cuò)誤的情況??蛇x擇這些情況下的例子作為測試用例。2) 例如,前面例子
18、中成績報(bào)告的程序,采用錯(cuò)誤推測法還可補(bǔ)充設(shè)計(jì)一些測試用例:I. 程序是否把空格作為回答II. 在回答記錄中混有標(biāo)準(zhǔn)答案記錄III. 除了標(biāo)題記錄外,還有一些的記錄最后一個(gè)字符即不是2也不是3IV. 有兩個(gè)學(xué)生的學(xué)號相同V. 試題數(shù)是負(fù)數(shù)。
19、3) 再如,測試一個(gè)對線性表(比如數(shù)組)進(jìn)行排序的程序,可推測列出以下幾項(xiàng)需要特別測試的情況:I. 輸入的線性表為空表;II. 表中只含有一個(gè)元素;III. 輸入表中所有元素已排好序;IV. 輸入表已按逆序排好;V.
20、 輸入表中部分或全部元素相同。4 因果圖方法4.1 理論知識前面介紹的等價(jià)類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系, 相互組合等. 考慮輸入條件之間的相互組合,可能會產(chǎn)生一些新的情況. 但要檢查輸入條件的組合不是一件容易的事情, 即使把所有輸入條件劃分成等價(jià)類,他們之間的組合情況也相當(dāng)多. 因此必須考慮采用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動作的形式來考慮設(shè)計(jì)測試用例. 這就需要利用因果圖(邏輯模型). 因果圖方法最終生成的就是判定表. 它適合于檢查程序輸入條件的各種組合情況. 利用因果圖生成測試用例的基本步驟: (1) 分析軟件規(guī)格
21、說明描述中, 哪些是原因(即輸入條件或輸入條件的等價(jià)類),哪些是結(jié)果(即輸出條件), 并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識符. (2) 分析軟件規(guī)格說明描述中的語義.找出原因與結(jié)果之間, 原因與原因之間對應(yīng)的關(guān)系. 根據(jù)這些關(guān)系,畫出因果圖.(3) 由于語法或環(huán)境限制, 有些原因與原因之間,原因與結(jié)果之間的組合情況不不可能出現(xiàn). 為表明這些特殊情況, 在因果圖上用一些記號表明約束或限制條件.(4) 把因果圖轉(zhuǎn)換為判定表.(5) 把判定表的每一列拿出來作為依據(jù),設(shè)計(jì)測試用例.從因果圖生成的測試用例(局部,組合關(guān)系下的)包括了所有輸入數(shù)據(jù)的取TRUE與取FALSE的情況,構(gòu)成的測試用例數(shù)目達(dá)到最少,且測
22、試用例數(shù)目隨輸入數(shù)據(jù)數(shù)目的增加而線性地增加.前面因果圖方法中已經(jīng)用到了判定表.判定表(Decision Table)是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況下的工具.在程序設(shè)計(jì)發(fā)展的初期,判定表就已被當(dāng)作編寫程序的輔助工具了.由于它可以把復(fù)雜的邏輯關(guān)系和多種條件組合的情況表達(dá)得既具體又明確.判定表通常由四個(gè)部分組成.條件樁(Condition Stub):列出了問題得所有條件.通常認(rèn)為列出得條件的次序無關(guān)緊要.動作樁(Action Stub):列出了問題規(guī)定可能采取的操作.這些操作的排列順序沒有約束.條件項(xiàng)(Condition Entry):列出針對它左列條件的取值.在所有可能情況下的真假值
23、.動作項(xiàng)(Action Entry):列出在條件項(xiàng)的各種取值情況下應(yīng)該采取的動作.判定表的建立步驟:(根據(jù)軟件規(guī)格說明) 列出所有的條件樁和動作樁. 填入條件項(xiàng). 填入動作項(xiàng).等到初始判定表. 簡化.合并相似規(guī)則(相同動作).B. Beizer 指出了適合使用判定表設(shè)計(jì)測試用例的條件:規(guī)格說明以判定表形式給出,或很容易轉(zhuǎn)換成判定表.條件的排列順序不會也不影響執(zhí)行哪些操作.規(guī)則的排列順序不會也不影響執(zhí)行哪些操作.每當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則.如果某一規(guī)則得到滿足要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無關(guān)緊要.4.2 符號4.3 實(shí)例4.3.1 實(shí)例一某軟件規(guī)格說
24、明中包含這樣的要求: 第一列字符必須是A或B,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改。但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。分開原因和結(jié)果 原因:1-第一列字符是A;2-第一列字符是B;3-第二列字符是一數(shù)字。結(jié)果:21-修改文件;22-給出信息L;23-給出信息M。4.3.2 實(shí)例二此例子是講解利用因果圖設(shè)計(jì)測試用例的一個(gè)小例子。以中國象棋中走馬的測試用例設(shè)計(jì)為例學(xué)習(xí)因果圖的使用方法。一、 分析中國象棋中走馬的實(shí)際情況(下面未注明的均指的是對馬的說明)1、如果落點(diǎn)在棋盤外,則不移動棋子;2、如果落點(diǎn)與起點(diǎn)不構(gòu)成日字型,則不
25、移動棋子;3、如果落點(diǎn)處有自己方棋子,則不移動棋子;4、如果在落點(diǎn)方向的鄰近交叉點(diǎn)有棋子(絆馬腿),則不移動棋子;5、如果不屬于1-4條,且落點(diǎn)處無棋子,則移動棋子;6、如果不屬于1-4條,且落點(diǎn)處為對方棋子(非老將),則移動棋子并除去對方棋子;7如果不屬于1-4條,且落點(diǎn)處為對方老將,則移動棋子,并提示戰(zhàn)勝對方,游戲結(jié)束。二、 根據(jù)分析明確原因和結(jié)果原因:1、 落點(diǎn)在棋盤上;2、 落點(diǎn)與起點(diǎn)構(gòu)成日字;3、 落點(diǎn)處不是自己方棋子;4、 落點(diǎn)方向的鄰近交叉點(diǎn)有棋子;5、 落點(diǎn)處無棋子;6、 落點(diǎn)處為對方棋子(非老將);7、 落點(diǎn)處為對方老將。結(jié)果:21、不移動棋子;22、移動棋子;23、移動棋子
26、,并除去對方棋子;24、移動棋子,并提示戰(zhàn)勝對方,結(jié)束游戲。添加中間節(jié)點(diǎn)11,目的是作為導(dǎo)出結(jié)果的進(jìn)一步原因,簡化因果圖導(dǎo)出的判定表考慮結(jié)果不能同時(shí)發(fā)生,所以對其施加唯一約束O。原因5、6、7不能同時(shí)發(fā)生,所以對其施加異約束E.三、 根據(jù)因果圖建立判定表:(分為兩表)12345678910111213141516原因10101010101010101200110011001100113000011110000111140000000011111111結(jié)果110000000100000000211111111011111111用例1234567890111213141516原因110101010
27、101010101500110011001100116000011110000111170000000011111111結(jié)果220010000230000100240000001用例注:1、以上判定表中由于表格大小限制沒有列出最后所選的測試用例;2、第2表中部分列被合并表示不可能發(fā)生的現(xiàn)象;3、通過中間節(jié)點(diǎn)將用例的判定表簡化為兩個(gè)小表。減少工作量。四、根據(jù)判定表寫測試用例表(略)5 路徑覆蓋 熟悉測試?yán)碚摰娜硕贾溃窂礁采w是白盒測試中一種很重要的方法,廣泛應(yīng)用于單元測試。那么基于路徑覆蓋的分析方法是不是只能應(yīng)用于單元測試呢,能不能將其推而廣之呢。一般而言,在單元測試中,路徑就是指函數(shù)代碼的某
28、個(gè)分支,而實(shí)際上如果我們將軟件系統(tǒng)的某個(gè)流程也看成路徑的話,我們將可以嘗試著用路徑分析的方法來設(shè)計(jì)測試用例。采用路徑分析的方法設(shè)計(jì)測試用例有兩點(diǎn)好處:一是降低了測試用例設(shè)計(jì)的難度,只要搞清了各種流程,就可以設(shè)計(jì)出高質(zhì)量的測試用例來,而不用太多測試方面的經(jīng)驗(yàn);二是在測試時(shí)間較緊的情況下,可以有的放矢的選擇測試用例,而不用完全根據(jù)經(jīng)驗(yàn)來取舍。下面就具體的介紹一下如何用路徑分析的方法編寫測試用例。 首先是將系統(tǒng)運(yùn)行過程中所涉及到的各種流程圖表化,可以先從最基本的流程入手,將流程抽象成為不同功能的順序執(zhí)行。在最基本流程的基礎(chǔ)上再去考慮次要或者異常的流程,這樣將各種流程逐漸細(xì)化
29、,這樣既可以逐漸加深對流程的理解,還可以將各個(gè)看似孤立的流程關(guān)聯(lián)起來。完成所有流程的圖表化后就完成了所有路徑的設(shè)定。 找出了所有的路徑,下面的工作就是給每條路徑設(shè)定優(yōu)先級,這樣在測試時(shí)就可以先測優(yōu)先級高的,再測優(yōu)先級低的,在時(shí)間緊迫的情況下甚至可以考慮忽略一些低優(yōu)先級的路徑。優(yōu)先級根據(jù)兩個(gè)原則來選?。阂皇锹窂绞褂玫念l率,使用越頻繁的優(yōu)先級越高;二是路徑的重要程度,如果失敗對系統(tǒng)影響越大的優(yōu)先級越高。將根據(jù)兩個(gè)原則所分別得到的優(yōu)先級相加就得到了整個(gè)路徑的優(yōu)先級。根據(jù)優(yōu)先級的排序就可以更有針對性的進(jìn)行測試。 為每條路徑設(shè)定好優(yōu)先級后,接下來的工作
30、就是為每條路徑選取測試數(shù)據(jù),構(gòu)造測試用例。一條路徑可以對應(yīng)多個(gè)測試用例,在選取測試數(shù)據(jù)時(shí),可以充分利用邊界值選取等方法,通過表格將各種測試數(shù)據(jù)的輸入輸出對應(yīng)起來,這樣就完成了測試用例的設(shè)計(jì)。 對于測試人員而言,測試用例的設(shè)計(jì)是一件非常困難的工作,而同時(shí)測試用例的設(shè)計(jì)好壞又直接關(guān)系到整個(gè)系統(tǒng)的設(shè)計(jì)質(zhì)量。本文介紹了一種更理論化的設(shè)計(jì)方法來盡量簡化這種工作,將一般應(yīng)用于單元測試的路徑分析方法推廣到集成測試、系統(tǒng)測試等后續(xù)測試過程中,希望能給大家一點(diǎn)啟示。6 功能圖功能圖方法是一種黑盒、白盒混合用例設(shè)計(jì)方法,是功能圖FD形式化地表示程序的功能說明,并機(jī)器地生成功能圖的測試用例
31、。功能圖模型由狀態(tài)遷移圖和邏輯功能模型構(gòu)成。狀態(tài)遷移圖用于表示輸入數(shù)據(jù)序列以及相應(yīng)的輸出數(shù)據(jù)。在狀態(tài)遷移圖中,由輸入數(shù)據(jù)和當(dāng)前狀態(tài)決定輸出數(shù)據(jù)和后續(xù)狀態(tài)。邏輯功能模型用于表示在狀態(tài)輸入條件和輸出條件之間的對應(yīng)關(guān)系。邏輯功能模型只適合于描述靜態(tài)說明,輸出數(shù)據(jù)僅由輸入數(shù)據(jù)決定。測試用例則由測試中的一系列狀態(tài)和在每個(gè)狀態(tài)中必須依靠輸入/輸出數(shù)據(jù)滿足的一對條件組成。(1)功能圖:功能圖由狀態(tài)遷移圖和布爾函數(shù)組成。狀態(tài)遷移圖用狀態(tài)和遷移來描述。一個(gè)狀態(tài)指出數(shù)據(jù)輸入的位置(或時(shí)間),而遷移則指明狀態(tài)的改變,同時(shí)要依靠判定表或是因果圖表示的邏輯功能。例如,一個(gè)簡化的自動出納ATM機(jī)的功能圖。(2)測試用例生
32、成方法:從功能圖生成測試用例,得到的測試用例數(shù)是可以接受的。問題的關(guān)鍵是如何從狀態(tài)遷移圖中選取測試用例。若用節(jié)點(diǎn)代替狀態(tài),用弧線代替遷移,則狀態(tài)遷移圖就可轉(zhuǎn)化成一個(gè)程序的控制流程圖形式。問題就轉(zhuǎn)化為程序的路徑測試問題了。(3)測試用例生成規(guī)則: 為了把狀態(tài)遷移的測試用例與邏輯模型的測試用例相組合起來,從功能圖生成生成實(shí)用的測試用例,需定義下面的規(guī)則。在一個(gè)結(jié)構(gòu)化的遷移(SST)中,定義三種形式的循環(huán):順序、選擇和重復(fù)。但分辨一個(gè)狀態(tài)遷移中的所有循環(huán)是有困難的。(4)從功能圖生成測試用例的過程。A、生成局部測試用例:在每個(gè)狀態(tài)中,從因果圖生成局部測試用例。局部測試用例由原因值(輸入數(shù)據(jù))組合與對
33、應(yīng)的結(jié)果值(輸出數(shù)據(jù)或狀態(tài))構(gòu)成。B、測試路徑生成:利用上面的規(guī)則(3種)生成從初始狀態(tài)到最后狀態(tài)的測試路徑。C、測試用例合成: 合成測試路徑與功能圖中每個(gè)狀態(tài)的局部測試用例。結(jié)果是初始狀態(tài)到最后狀態(tài)的一個(gè)狀態(tài)序列,以及每個(gè)狀態(tài)中輸入數(shù)據(jù)與對應(yīng)輸出數(shù)據(jù)的組合。D、測試用例的合成算法:采用合成構(gòu)造樹。7 正交試驗(yàn)設(shè)計(jì)法 7.1 理論知識1、什么是因素(Factor在一項(xiàng)試驗(yàn)中,凡欲考察的變量稱為因素(變量)2、什么是水平(位級Level在試驗(yàn)范圍內(nèi),因素被考察的值稱為水平(變量的取值)3、什么是正交試驗(yàn)設(shè)計(jì)是研究多因素多水平的一種設(shè)計(jì)方法,它是根據(jù)正交性從全面試驗(yàn)中挑選出部分有代表性的點(diǎn)進(jìn)行試驗(yàn)
34、,這些有代表性的點(diǎn)具備了均勻分散,齊整可比的特點(diǎn),正交試驗(yàn)設(shè)計(jì)是一種基于正交表的、高效率、快速、經(jīng)濟(jì)的試驗(yàn)設(shè)計(jì)方法4、正交表的構(gòu)成 正交表的構(gòu)成行數(shù)(Runs):正交表中的行的個(gè)數(shù),即試驗(yàn)的次數(shù)因素?cái)?shù)(Factors):正交表中列的個(gè)數(shù)。水平數(shù):任何單個(gè)因素能夠取得的值的最大個(gè)數(shù)。正交表中的包含的值為從最大個(gè)數(shù)。正交表中的包含的值為從0到數(shù) 到數(shù)“水平 水平數(shù)-1”或從 或從1到“水平數(shù) 水平數(shù)”。正交表的表示形式: L行數(shù) (水平數(shù)因素?cái)?shù))正交表的正交性整齊可比性在同一張正交表中,每個(gè)因素的每個(gè)水平出現(xiàn)次數(shù)是完全相同的。由于在試驗(yàn)中每個(gè)因素的每個(gè)水平與其它因素的每個(gè)水平參與試驗(yàn)的機(jī)率是完全相
35、同的,這就保證在各個(gè)水平中最大程度的排除了其它因素水平的干擾。因而,能最有效地進(jìn)行比較和作出展望,容易找到好的試驗(yàn)條件進(jìn)行。均衡分散性在同一張正交表中,任意兩列(兩個(gè)因素)的水平搭配(橫向形成的數(shù)字對)是完全相同的。這樣就保證了試驗(yàn)條件均衡地分散在因素水平的完全組合之中,因而具有很強(qiáng)的代表性,容易得到好的試驗(yàn)條件。三、用正交表設(shè)計(jì)測試用例 用正交表設(shè)計(jì)測試用例的步驟 1 有哪些因素(變量) 2 每個(gè)因素有哪幾個(gè)水平(變量的取值) 3 選擇一個(gè)合適的正交表 4 把變量的值映射到表中 5 把每一行的各因素水平的組合做為一個(gè)測試用例 6 加上你認(rèn)為可疑且沒有在表中出現(xiàn)的組 如何選擇正交表 考慮因素(
36、變量)的個(gè)數(shù) 考慮因素水平(變量的取值)的個(gè)數(shù) 考慮正交表的行數(shù) 取行數(shù)最少的一個(gè) 設(shè)計(jì)測試用例時(shí)的三種情況 1 因素?cái)?shù)(變量)、水平數(shù)(變量值)相符2 因素?cái)?shù)不相同 3 水平數(shù)不相同 因素?cái)?shù)、水平數(shù)相符 因素?cái)?shù)、水平數(shù)相符 水平數(shù)(變量的取值)相同、因素?cái)?shù)(變量)剛好符合正交表。7.2 實(shí)例一、對某人進(jìn)行查詢 1、假設(shè)查詢某個(gè)人時(shí)有三個(gè)查詢條件:根據(jù)“姓名”進(jìn)行查詢根據(jù)“身份證號碼”查詢根據(jù)“手機(jī)號碼”查詢考慮查詢條件要么不填寫,要么填寫,此時(shí)可用正交表進(jìn)行設(shè)計(jì) 2、因素?cái)?shù)和水平數(shù)有三個(gè)因素: 姓名、身份證號、手機(jī)號碼 每個(gè)因素有兩個(gè)水平 姓名:填、不填 身份證號:填、不填 手機(jī)號碼:填、不
37、填3、選擇正交表表中的因素?cái)?shù)3表中至少有三個(gè)因素的水平數(shù)2行數(shù)取最少的一個(gè)結(jié)果: 4、變量映射姓名:0.填寫,1.不填寫身份證號:0.填寫,1.不填寫手機(jī)號碼:0.填寫,1.不填寫5、用L4(23) 設(shè)計(jì)的測試用例測試用例如下:1:填寫姓名、填寫身份證號、填寫手機(jī)號2:填寫姓名、不填身份證號、不填手機(jī)號3:不填姓名、填寫身份證號、不填手機(jī)號4:不填姓名、不填身份證號、填寫手機(jī)號增補(bǔ)測試用例5:不填姓名、不填身份證號、不填手機(jī)號測試用例減少數(shù):8 56、因素?cái)?shù)不相同水平數(shù)(變量的取值)相同但在正交表中找不到相同的因素?cái)?shù)(變量)(取因素?cái)?shù) (取因素?cái)?shù)最接近但略大的實(shí)際值的表)8 場景設(shè)計(jì)方法8.1
38、 理論知識:現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時(shí)的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計(jì)方面的思想也可以引入到軟件測試中,可以比較生動地描繪出事件觸發(fā)時(shí)的情景,有利于測試設(shè)計(jì)者設(shè)計(jì)測試用例,同時(shí)使測試用例更容易理解和執(zhí)行?;玖骱蛡溥x流:如下圖所示,圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經(jīng)過用例的最簡單的路徑。備選流用不同的色彩表示,一個(gè)備選流可能從基本流開始,在某個(gè)特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個(gè)備選流(如備選流2),或者終止用例而不再重新加入到某個(gè)流(如備選流2和4)。8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年互聯(lián)網(wǎng)+項(xiàng)目投資借款合同示范文本3篇
- 2024年度房地產(chǎn)尾盤代理銷售合作協(xié)議3篇
- 2024版加工承攬合同標(biāo)的為服裝制造3篇
- 2024年度活動策劃合同:體育館場地租賃與活動組織協(xié)議3篇
- 2024版保姆家庭緊急救援服務(wù)合同3篇
- 2024萬科全景景觀精裝房買賣合同3篇
- 2024版便利店連鎖加盟經(jīng)營合同范本解析3篇
- 2024版家居壁布定制安裝一體化服務(wù)合同3篇
- 2024年度膩?zhàn)釉牧瞎?yīng)與加工合作協(xié)議3篇
- 2024版二次供水工程節(jié)能減排合同2篇
- 充電樁維保投標(biāo)方案
- 《如何寫文獻(xiàn)綜述》課件
- 肛瘺LIFT術(shù)式介紹
- 通過《古文觀止》選讀了解古代文學(xué)的社會功能與價(jià)值
- 語言本能:人類語言進(jìn)化的奧秘
- 職業(yè)生涯規(guī)劃(圖文)課件
- 2024版國開電大??啤禘XCEL在財(cái)務(wù)中的應(yīng)用》在線形考(形考作業(yè)一至四)試題及答案
- 能源管理系統(tǒng)平臺軟件數(shù)據(jù)庫設(shè)計(jì)說明書
- 中外園林史第七章-中國近現(xiàn)代園林發(fā)展
- 醫(yī)院培訓(xùn)課件:《ICU常見監(jiān)測技術(shù)及護(hù)理》
- 2023年秋季國家開放大學(xué)-01467-土木工程力學(xué)(本)期末考試題帶答案
評論
0/150
提交評論