[教育]趙良軟件工程軟件測(cè)試_第1頁(yè)
已閱讀1頁(yè),還剩83頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第12-13講 軟件測(cè)試,軟件測(cè)試的目的,基于不同的立場(chǎng)(用戶、開發(fā)者),存在著兩種完全不同的測(cè)試目的。從用戶的角度出發(fā),普遍希望通過軟件測(cè)試暴露軟件中隱藏的錯(cuò)誤和缺陷,以考慮是否可接受該產(chǎn)品。從軟件開發(fā)者的角度出發(fā),則希望測(cè)試成為表明軟件產(chǎn)品中不存在錯(cuò)誤的過程,驗(yàn)證該軟件已正確地實(shí)現(xiàn)了用戶的要求,確立人們對(duì)軟件質(zhì)量的信心。,G.J.Myers提出軟件測(cè)試及目的,軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程.一個(gè)好的測(cè)試用例能夠發(fā)現(xiàn)至今

2、尚未發(fā)現(xiàn)的錯(cuò)誤.一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今尚未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試.,軟件測(cè)試的原則,測(cè)試用例不僅選用合理的輸入數(shù)據(jù),還要選擇不合理的輸入數(shù)據(jù)。程序員應(yīng)避免檢查自己的程序。應(yīng)盡早地和不斷地進(jìn)行測(cè)試。嚴(yán)格執(zhí)行測(cè)試計(jì)劃,避免測(cè)試的隨意性。應(yīng)給出一組測(cè)試用例,且由輸入數(shù)據(jù)和預(yù)期的輸出數(shù)據(jù)兩部分組成。長(zhǎng)期保留測(cè)試用例。,測(cè)試過程,測(cè)試,結(jié)果分析,可靠性分析,排錯(cuò),軟件配置,測(cè)試配置,測(cè)試工具,測(cè)試結(jié)果,出錯(cuò)率數(shù)據(jù),預(yù)期結(jié)果,錯(cuò)誤,改正的

3、軟件,預(yù)測(cè)的可靠性,測(cè)試過程,單元測(cè)試集成測(cè)試確認(rèn)測(cè)試系統(tǒng)測(cè)試,測(cè)試過程,單元測(cè)試,單元測(cè)試,單元測(cè)試,集成測(cè)試,確認(rèn)測(cè)試,系統(tǒng)測(cè)試,被測(cè)模塊,被測(cè)模塊,被測(cè)模塊,設(shè)計(jì)信息,已經(jīng)過測(cè)試的模塊,軟件需求,其他元素,已集成的軟件,已確認(rèn)的軟件,可交付的軟件,……..,,單元測(cè)試是集中對(duì)用源代碼實(shí)現(xiàn)的每一個(gè)程序單元進(jìn)行測(cè)試,檢查各個(gè)程序模塊是否正確地實(shí)現(xiàn)了規(guī)定的功能。集成測(cè)試把已測(cè)試過的模塊組裝起來(lái),主要對(duì)與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)

4、造進(jìn)行測(cè)試。確認(rèn)測(cè)試則是要檢查已實(shí)現(xiàn)的軟件是否滿足了需求規(guī)格說明中確定了的各種需求,以及軟件配置是否完全、正確。系統(tǒng)測(cè)試把已經(jīng)經(jīng)過確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測(cè)試。,測(cè)試過程,需求分析說明書,概要設(shè)計(jì)說明書,詳細(xì)設(shè)計(jì)說明書,源程序代碼,單元測(cè)試,集成測(cè)試,確認(rèn)測(cè)試,單元測(cè)試的方法,模塊并不是一個(gè)獨(dú)立的程序,在考慮測(cè)試模塊時(shí),同時(shí)要考慮它和外界的聯(lián)系,用一些輔助模塊去模擬與被測(cè)模塊相聯(lián)系的其它模塊。

5、驅(qū)動(dòng)模塊 (driver) 樁模塊 (stub) ── 存根模塊,單元測(cè)試環(huán)境,,測(cè)試結(jié)果,驅(qū)動(dòng)模塊,樁模塊1,被測(cè)模塊,測(cè)試用例,樁模塊3,樁模塊2,,,,,,,,,,舉例:,,B,A,,,,C,,D,,E,,,,,,被測(cè)模塊B,,,,,,,,測(cè)試用例,,,,,,,測(cè)試結(jié)果,,,,,,舉例:,單元測(cè)試的內(nèi)容,,,模塊,集成測(cè)試,在把各個(gè)模塊連接起來(lái)的時(shí)侯,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失;一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不

6、利的影響;各個(gè)子功能組合起來(lái),能否達(dá)到預(yù)期要求的父功能;全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題;單個(gè)模塊的誤差累積起來(lái),是否會(huì)放大,從而達(dá)到不能接受的程度。,兩段鐵軌要集成,集成測(cè)試方法,一次性集成方式 增量式集成方式 自頂向下 自底向上,,,1.自頂向下集成,定義自頂向下集成(Top-down Integration)按照系統(tǒng)層次結(jié)構(gòu)圖,以主程序模塊為中心,自上而下按照深度優(yōu)先或者廣度優(yōu)先策略,對(duì)各個(gè)模塊

7、一邊組裝一邊進(jìn)行測(cè)試。,自頂向下集成的兩種類型廣度優(yōu)先深度優(yōu)先,A、B、E、J、K、C、F、L、G、D、H、M、N、I,深度優(yōu)先:,A、B、C、D、E、F、G、H、I、J、K、L、M、N,廣度優(yōu)先:,2.自底向上集成,定義自底向上集成(Bottom-up Integration) 從系統(tǒng)層次結(jié)構(gòu)圖的最底層模塊開始進(jìn)行組裝和集成測(cè)試的方式。,舉例:,,,,,,確認(rèn)測(cè)試,確認(rèn)測(cè)試又稱有效性測(cè)試。任務(wù)是驗(yàn)證軟件的功能和性能及其它特性是

8、否與用戶的要求一致。對(duì)軟件的功能和性能要求在軟件需求規(guī)格說明書中已經(jīng)明確規(guī)定。它包含的信息就是軟件確認(rèn)測(cè)試的基礎(chǔ)。有效性測(cè)試是在模擬的環(huán)境 (可能就是開發(fā)的環(huán)境) 下,運(yùn)用黑盒測(cè)試的方法,驗(yàn)證被測(cè)軟件是否滿足需求規(guī)格說明書列出的需求。通過實(shí)施預(yù)定的測(cè)試計(jì)劃和測(cè)試步驟,確定 軟件的特性是否與需求相符; 所有的文檔都是正確且便于使用; 同時(shí),對(duì)其它軟件需求,例如可移植性、兼容性、出錯(cuò)自動(dòng)恢復(fù)、可維護(hù)性等,也都要進(jìn)行測(cè)試,選擇測(cè)試

9、人員,構(gòu)造測(cè)試用例,實(shí)際運(yùn)行測(cè)試,軟件計(jì)劃,用戶文檔,源程序文本,開發(fā)文檔,支持環(huán)境,確認(rèn)測(cè)試,軟件配置審查,管理機(jī)構(gòu)裁決,專家鑒定,測(cè)試報(bào)告,軟件配置,交用戶運(yùn)行維護(hù),確認(rèn)測(cè)試,系統(tǒng)測(cè)試,系統(tǒng)測(cè)試,是將通過確認(rèn)測(cè)試的軟件,作為整個(gè)基于計(jì)算機(jī)系統(tǒng)的一個(gè)元素,與計(jì)算機(jī)硬件、外設(shè)、某些支持軟件、數(shù)據(jù)和人員等其它系統(tǒng)元素結(jié)合在一起,在實(shí)際運(yùn)行環(huán)境下,對(duì)計(jì)算機(jī)系統(tǒng)進(jìn)行一系列的組裝測(cè)試和確認(rèn)測(cè)試。系統(tǒng)測(cè)試的目的在于通過與系統(tǒng)的需求定義作比較,

10、 發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合或與之矛盾的地方。,測(cè)試方法,軟件測(cè)試,按階段劃分,單元測(cè)試,確認(rèn)測(cè)試,系統(tǒng)測(cè)試,驗(yàn)收測(cè)試,按測(cè)試技術(shù),灰盒測(cè)試,白盒測(cè)試,黑盒測(cè)試,是否執(zhí)行程序,動(dòng)態(tài)測(cè)試,靜態(tài)測(cè)試,,,,,,,,,,,,回歸測(cè)試,,集成測(cè)試,,黑盒測(cè)試法,定義:不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程,只在軟件的接口處進(jìn)行測(cè)試,依據(jù)需求規(guī)格說明書,檢查程序是否滿足功能要求。又稱為功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。,黑盒測(cè)試檢測(cè)的錯(cuò)誤,黑盒測(cè)試方法是在程序

11、接口上進(jìn)行測(cè)試,主要是為了發(fā)現(xiàn)以下錯(cuò)誤:是否有不正確或遺漏了的功能?在接口上,輸入能否正確地接受?能否輸出正確的結(jié)果?是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問錯(cuò)誤?性能上是否能夠滿足要求?是否有初始化或終止性錯(cuò)誤?,黑盒測(cè)試,用黑盒測(cè)試時(shí),必須在所有可能的輸入條件和輸出條件中確定測(cè)試數(shù)據(jù)。是否對(duì)每個(gè)數(shù)據(jù)都進(jìn)行窮舉測(cè)試呢?假設(shè)一個(gè)程序P有輸入量X和Y及輸出量Z。在字長(zhǎng)為32位的計(jì)算機(jī)上運(yùn)行。若X、Y取整數(shù),按黑盒方法進(jìn)

12、行窮舉測(cè)試:可能采用的 測(cè)試數(shù)據(jù)組: 232×232 =264 如果測(cè)試一組數(shù)據(jù)需要1毫秒,一年工作365×24小時(shí),完成所有測(cè)試需5億年。,白盒測(cè)試,此方法把測(cè)試對(duì)象看做一個(gè)透明的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測(cè)試又稱

13、為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。,白盒法測(cè)試檢查的錯(cuò)誤,對(duì)程序模塊的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一次; 對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都至少測(cè)試一次; 在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體; 測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等。,白盒法存在的問題,循環(huán)20次,白盒測(cè)試用例的設(shè)計(jì),邏輯覆蓋語(yǔ)句覆蓋判定覆蓋條件覆蓋判定/條件覆蓋條件組合覆蓋路徑覆蓋循環(huán)覆蓋基本路徑測(cè)試,例,,,,,路徑1,L1 ( a ? c ? e

14、)= {(A>1) and (B=0)} and {(A=2) or (X/A>1)}= {(A>1) and (B=0) and (A=2)} or {(A>1) and (B=0) and (X/A>1)}= {(A=2) and (B=0)} or {(A>1) and (B=0) and (X/A>1)},路徑2,L2

15、( a? b ? d )= not{(A>1) and (B=0)} and not{(A=2) or (X>1)}= { not (A>1) or not (B=0) } and { not (A=2) and not (X>1) }= not (A>1) and not (A=2) and not (X>1)

16、 or not (B=0) and not (A=2) and not (X>1),路徑3,L3 ( a? b? e)= not {(A>1) and (B=0)} and {(A=2) or (X>1)}= { not (A>1) or not (B=0)} and {(A=2) or (X>1)}= not (A>1) and (A=2) or

17、 not (A>1) and (X>1) or not (B=0) and (A=2) or not (B=0) and (X>1),路徑4,L4 ( a? c ? d )= {(A>1) and (B=0)} and not {(A=2) or (X/A>1)}= {(A>1) and (B=0)} and {not (A=2) and not (X/A>

18、;1)},語(yǔ)句覆蓋,語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得每一可執(zhí)行語(yǔ)句至少執(zhí)行一次。在圖例中,正好所有的可執(zhí)行語(yǔ)句都在路徑L1上,所以選擇路徑 L1設(shè)計(jì)測(cè)試用例,就可以覆蓋所有的可執(zhí)行語(yǔ)句。,例,,,,,(A>1) and (B=0),(A=2) or (X>1),,,,,X=X/A,,,,,,,X=X+1,,,T,T,F,F,a,b,d,c,e,語(yǔ)句覆蓋測(cè)試用例,測(cè)試用例的設(shè)計(jì)格式如下【輸入的(A, B,

19、 X),輸出的(A, B, X)】覆蓋 ace【L1】(A=2) and (B=0) or (A>1) and (B=0) and (X/A>1)為圖例設(shè)計(jì)滿足語(yǔ)句覆蓋的測(cè)試用例是:【(2, 0, 4),(2, 0, 3)】,判定覆蓋,判定覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次。判定覆蓋又稱為分支覆蓋。,例,,,,,(A>1)

20、 and (B=0),(A=2) or (X>1),,,,,X=X/A,,,,,,,X=X+1,,,T,T,F,F,a,b,d,c,e,,,判定覆蓋測(cè)試用例(1),對(duì)于圖例,如果選擇路徑L1和L2,就可得滿足要求的測(cè)試用例:【(2, 0, 4),(2, 0, 3)】覆蓋 ace【L1】【(1, 1, 1),(1, 1, 1)】覆蓋 abd【L2】(A=2) and (B=0) or (A>

21、;1) and (B=0) and (X/A>1)not (A>1) and not (A=2) and not (X>1) or not (B=0) and not (A=2) and not (X>1),判定覆蓋測(cè)試用例(2),如果選擇路徑L3和L4,還可得另一組可用的測(cè)試用例:【(2, 1, 1),(2, 1, 2)】覆蓋 abe【L3】【(3,

22、0, 3),(3, 0, 1)】覆蓋 acd【L4】not (A>1) and (X>1) or not (B=0) and (A=2) or not (B=0) and (X>1)(A>1) and (B=0) and not (A=2) and not (X/A>1),條件覆蓋,條件覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的每個(gè)條件的可能取值至

23、少執(zhí)行一次。,,,,,(A>1) and (B=0),,,,,,X=X/A,,,,,,,X=X+1,,,T,T,F,F,a,b,d,c,e,(A=2) or (X>1),在圖例中,事先可對(duì)所有條件的取值加以標(biāo)記。對(duì)于第一個(gè)判定: 條件 A>1 取真為 ,取假為 條件 B=0 取真為 ,取假為對(duì)于第二個(gè)判定: 條件A=2 取真為 ,取假為 條件X>1 取真為 ,取假為,T4,條件覆蓋,測(cè)試用

24、例 覆蓋分支 條件取值【(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)或測(cè) 試 用 例 覆蓋分支條件取值【(1, 0, 3),(1, 0, 4)】 L3(b, e) 【(2, 1, 1),(2, 1, 2)】 L3(b, e)

25、,條件覆蓋,判定條件覆蓋,判定-條件覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,每個(gè)判斷中的每個(gè)分支至少執(zhí)行一次。在實(shí)際應(yīng)用中,使得設(shè)計(jì)的測(cè)試用例先滿足條件覆蓋,再滿足判定覆蓋。,判定/條件覆蓋測(cè)試用例,測(cè) 試 用 例 覆蓋分支 條件取值【(2, 0, 4),(2, 0, 3)】L1(c, e)【(1, 1, 1),(1, 1, 1)】L2(b, d)(A=2) and

26、 (B=0) or (A>1) and (B=0) and (X/A>1)not (A>1) and not (A=2) and not (X>1) or not (B=0) and not (A=2) and not (X>1),,A>1,,T,B=0,,T,,X=X/A,,T,,,,,,F,F,A=2,,T,,

27、F,X>1,F,,,X=X+1,,,,條件組合覆蓋,條件組合覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,運(yùn)行被測(cè)程序,使得每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次。 記① A>1, B=0 作 ② A>1, B≠0 作 ③ A<=1, B=0 作 ④ A<=1, B≠0 作,條件組合覆蓋,⑤ A=2, X>1 作

28、⑥ A=2, X<=1 作 ⑦ A≠2, X>1 作 ⑧ A≠2, X<=1 作 測(cè) 試 用 例 覆蓋條件 覆蓋組合【(2, 0, 4), (2, 0, 3)】(L1) ①, ⑤【(2, 1, 1), (2, 1, 2)】(L3) ②, ⑥【(1, 0, 3)

29、, (1, 0, 4)】(L3) ③, ⑦【(1, 1, 1), (1, 1, 1)】(L2) ④, ⑧,路徑覆蓋,路徑測(cè)試就是設(shè)計(jì)足夠的測(cè)試用例,覆蓋程序中所有可能的路徑。 測(cè) 試 用 例 通過路徑 覆蓋條件【(2, 0, 4), (2, 0, 3)】 ace (L1) 【(1, 1, 1)

30、, (1, 1, 1)】 abd (L2) 【(1, 1, 2), (1, 1, 3)】 abe (L3) 【(3, 0, 3), (3, 0, 1)】 acd (L4),基本路徑測(cè)試,,基本路徑測(cè)試,基本路徑測(cè)試方法把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),程序中的循環(huán)體最多只執(zhí)行一次。它是在程序控制流圖的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試

31、用例要保證在測(cè)試中,程序的每一個(gè)可執(zhí)行語(yǔ)句至少要執(zhí)行一次。,1. 程序的控制流圖,結(jié)點(diǎn),表示一個(gè)或多個(gè)無(wú)分支的PDL語(yǔ)句或源程序語(yǔ)句。箭頭為邊,表示控制流的方向。,順序結(jié)構(gòu),IF選擇結(jié)構(gòu),WHILE重復(fù)結(jié)構(gòu),UNTIL重復(fù)結(jié)構(gòu),CASE多分支結(jié)構(gòu),在選擇或多分支結(jié)構(gòu)中,分支的匯聚處應(yīng)有一個(gè)匯聚結(jié)點(diǎn)。邊和結(jié)點(diǎn)圈定的區(qū)域叫做區(qū)域,當(dāng)對(duì)區(qū)域計(jì)數(shù)時(shí),圖形外的區(qū)域也應(yīng)記為一個(gè)區(qū)域。如果判斷中的條件表達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)算符 (OR,

32、AND, ...) 連接的復(fù)合條件表達(dá)式,則需改為 一系列只有單個(gè)條件的嵌套的判斷。,1,2,3,6,4,5,7,8,9,10,11,,,,定點(diǎn),區(qū)域,邊,If a OR b then procedure x; else procedure y;,a,b,x,y,x,,,,,判定節(jié)點(diǎn),判定節(jié)點(diǎn),復(fù)合邏輯表達(dá)式(一),If a AND b then procedure x; else procedure

33、 y;,a,b,y,x,y,,,,,復(fù)合邏輯表達(dá)式(二),2. 程序環(huán)路復(fù)雜性,程序的環(huán)路復(fù)雜性給出了程序基本路徑集中的獨(dú)立路徑條數(shù),這是確保程序中每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次所必需的測(cè)試用例數(shù)目的上界。從控制流圖來(lái)看,一條獨(dú)立路徑是至少包含有一條在其它獨(dú)立路徑中從未有過的邊的路徑。,E為邊的條數(shù),或控制轉(zhuǎn)移次數(shù),P為控制路徑個(gè)數(shù),N表示結(jié)點(diǎn)個(gè)數(shù).環(huán)路復(fù)雜性V(G) V(G)=E-N+2 V(G)=P

34、+1 (判定結(jié)點(diǎn)的個(gè)數(shù)) V(G)=區(qū)域數(shù),程序環(huán)路復(fù)雜性(續(xù)),例如,在圖示的控制流圖中,一組獨(dú)立的路徑是path1:1 - 11path2:1 - 2 - 3 - 4 - 5 - 10 - 1 - 11path3:1 - 2 - 3 - 6 - 8 - 9 - 10 - 1 - 11path4:1 - 2 - 3 - 6 - 7 - 9 - 10 - 1 - 11路徑 path1,path2,path3,p

35、ath4組成了控制流圖的一個(gè)基本路徑集。,3.導(dǎo)出測(cè)試用例,導(dǎo)出測(cè)試用例,確?;韭窂郊械拿恳粭l路徑的執(zhí)行。 根據(jù)判斷結(jié)點(diǎn)給出的條件,選擇適當(dāng)?shù)臄?shù)據(jù)以保證某一條路徑可以被測(cè)試到 — 用邏輯覆蓋方法。,每個(gè)測(cè)試用例執(zhí)行之后,與預(yù)期結(jié)果進(jìn)行比較。如果所有測(cè)試用例都執(zhí)行完畢,則可以確信程序中所有的可執(zhí)行語(yǔ)句至少被執(zhí)行了一次。必須注意,一些獨(dú)立的路徑(如例中的路徑1),往往不是完全孤立的,有時(shí)它是程序正常的控制流的一部分,這時(shí),這些路徑的

36、測(cè)試可以是另一條路徑測(cè)試的一部分。,例,黑盒測(cè)試用例的設(shè)計(jì),等價(jià)類劃分 邊界值分析 錯(cuò)誤推測(cè)法 因果圖,黑盒測(cè)試用例的設(shè)計(jì),等價(jià)類劃分方法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)做為測(cè)試用例。使用這一方法設(shè)計(jì)測(cè)試用例要經(jīng)歷劃分等價(jià)類(列出等價(jià)類表)和選取測(cè)試用例兩步。,劃分等價(jià)類,等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。測(cè)試某等價(jià)類

37、的代表值就等價(jià)于對(duì)這一類其它值的測(cè)試。等價(jià)類的劃分有兩種不同的情況:① 有效等價(jià)類:對(duì)于程序的規(guī)格說明來(lái)說,是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。 ②無(wú)效等價(jià)類:對(duì)于程序的規(guī)格說明來(lái)說,是不合理的,無(wú)意義的輸入數(shù)據(jù)構(gòu)成的集合。,等價(jià)類劃分的原則,(1) 如果輸入條件規(guī)定了取值范圍,或值的個(gè)數(shù),則可以確立一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。(2) 如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時(shí)可確立一個(gè)有效等價(jià)

38、類和一個(gè)無(wú)效等價(jià)類。(3) 如果輸入條件是一個(gè)布爾量,則可以確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。(4) 如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對(duì)每個(gè)輸入值分別進(jìn)行處理。則可以確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。(5) 如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(從不同角度違反規(guī)則)。,邊界值分析,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。這里所說的邊界是指,相

39、當(dāng)于輸入等價(jià)類和輸出等價(jià)類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于,或剛剛小于邊界的值做為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值做為測(cè)試數(shù)據(jù)。,實(shí)例,在某一PASCAL語(yǔ)言版本中規(guī)定:“標(biāo)識(shí)符是由字母開頭,后跟字母或數(shù)字的任意組合構(gòu)成。標(biāo)識(shí)符的最大有效字符數(shù)為80個(gè)。”并且規(guī)定:“標(biāo)識(shí)符必須先說明,再使用?!?“在同一說明語(yǔ)句中,標(biāo)識(shí)

40、符至少必須有一個(gè)?!?錯(cuò)誤推測(cè),人們也可以靠經(jīng)驗(yàn)和直覺推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫檢查這些錯(cuò)誤的例子。這就是錯(cuò)誤推測(cè)法。錯(cuò)誤推測(cè)法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例。,軟件測(cè)試工具,測(cè)試設(shè)計(jì)工具靜態(tài)分析工具單元測(cè)試工具功能測(cè)試工具性能測(cè)試工具測(cè)試過程管理工具,測(cè)試設(shè)計(jì)工具,更完整的名稱應(yīng)該是測(cè)試用例設(shè)計(jì)工具,是一種幫助設(shè)計(jì)測(cè)試用例的軟件工具。 基于程

41、序代碼的測(cè)試用例設(shè)計(jì)工具基于需求說明的測(cè)試用例設(shè)計(jì)工具,靜態(tài)分析工具,進(jìn)行靜態(tài)分析時(shí),不需要運(yùn)行所測(cè)試的程序,而是通過檢查程序代碼,對(duì)程序的數(shù)據(jù)流和控制流信息進(jìn)行分析,找出系統(tǒng)的缺陷,得出測(cè)試報(bào)告。 靜態(tài)分析工具一般提供以下兩個(gè)功能:分析軟件的復(fù)雜性、檢查代碼的規(guī)范性。,單元測(cè)試工具,典型的單元測(cè)試工具有以下幾類:動(dòng)態(tài)錯(cuò)誤檢測(cè)工具性能分析工具覆蓋率統(tǒng)計(jì)工具 目前被普遍使用的單元測(cè)試工具中有Compuware公司的NuMega

42、 DevPartner Studio,Rational 公司的Rational Suite Enterprise。,功能測(cè)試工具,功能測(cè)試自動(dòng)化工具理論上可以應(yīng)用在各個(gè)測(cè)試階段,但大多數(shù)情況下是在確認(rèn)測(cè)試階段中使用。功能測(cè)試自動(dòng)化工具的測(cè)試對(duì)象是那些擁有圖形用戶界面的應(yīng)用程序。 一個(gè)成熟的功能測(cè)試自動(dòng)化工具要包括以下幾個(gè)基本功能:錄制和回放、檢驗(yàn)、可編程?,F(xiàn)在發(fā)展的已經(jīng)較為成熟,象Mercury Interactive公司的WinR

43、unner,Rational公司的Robot,都是被廣泛使用的功能測(cè)試自動(dòng)化工具。,性能測(cè)試工具,性能測(cè)試用來(lái)衡量系統(tǒng)的響應(yīng)時(shí)間、事務(wù)處理速度和其它時(shí)間敏感的需求,并能測(cè)試出與性能相關(guān)的工作負(fù)載和硬件配置條件。 對(duì)系統(tǒng)經(jīng)常會(huì)進(jìn)行的性能測(cè)試包括:系統(tǒng)能承受多少用戶的并發(fā)操作;系統(tǒng)在網(wǎng)絡(luò)較為擁擠的情況下能否繼續(xù)工作;系統(tǒng)在內(nèi)存、處理器等資源緊張的情況下是會(huì)否發(fā)生錯(cuò)誤,等等。,測(cè)試過程管理工具,管理整個(gè)測(cè)試過程,保存在測(cè)試不同階段產(chǎn)生的文檔

44、、數(shù)據(jù),協(xié)調(diào)技術(shù)人員之間的工作。 測(cè)試過程管理工具一般都會(huì)包括以下這些功能:管理軟件需求、管理測(cè)試計(jì)劃、管理測(cè)試用例、缺陷跟蹤、測(cè)試過程中各類數(shù)據(jù)的統(tǒng)計(jì)和匯總。市面上商用的測(cè)試管理工具有很多,基本上都是基于Web的系統(tǒng),這樣更利于跨地區(qū)團(tuán)隊(duì)之間的協(xié)作。,軟件測(cè)試工具,企業(yè)級(jí)自動(dòng)化測(cè)試工具WinRunner(功能) 工業(yè)標(biāo)準(zhǔn)級(jí)負(fù)載測(cè)試工具Loadrunner(行為和性能) 全球測(cè)試管理系統(tǒng)testdirector (基于web)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論