版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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)(用戶、開(kāi)發(fā)者),存在著兩種完全不同的測(cè)試目的。從用戶的角度出發(fā),普遍希望通過(guò)軟件測(cè)試暴露軟件中隱藏的錯(cuò)誤和缺陷,以考慮是否可接受該產(chǎn)品。從軟件開(kāi)發(fā)者的角度出發(fā),則希望測(cè)試成為表明軟件產(chǎn)品中不存在錯(cuò)誤的過(guò)程,驗(yàn)證該軟件已正確地實(shí)現(xiàn)了用戶的要求,確立人們對(duì)軟件質(zhì)量的信心。,G.J.Myers提出軟件測(cè)試及目的,軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程.一個(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è)試過(guò)程,測(cè)試,結(jié)果分析,可靠性分析,排錯(cuò),軟件配置,測(cè)試配置,測(cè)試工具,測(cè)試結(jié)果,出錯(cuò)率數(shù)據(jù),預(yù)期結(jié)果,錯(cuò)誤,改正的
3、軟件,預(yù)測(cè)的可靠性,測(cè)試過(guò)程,單元測(cè)試集成測(cè)試確認(rèn)測(cè)試系統(tǒng)測(cè)試,測(cè)試過(guò)程,單元測(cè)試,單元測(cè)試,單元測(cè)試,集成測(cè)試,確認(rèn)測(cè)試,系統(tǒng)測(cè)試,被測(cè)模塊,被測(cè)模塊,被測(cè)模塊,設(shè)計(jì)信息,已經(jīng)過(guò)測(cè)試的模塊,軟件需求,其他元素,已集成的軟件,已確認(rèn)的軟件,可交付的軟件,……..,,單元測(cè)試是集中對(duì)用源代碼實(shí)現(xiàn)的每一個(gè)程序單元進(jìn)行測(cè)試,檢查各個(gè)程序模塊是否正確地實(shí)現(xiàn)了規(guī)定的功能。集成測(cè)試把已測(cè)試過(guò)的模塊組裝起來(lái),主要對(duì)與設(shè)計(jì)相關(guān)的軟件體系結(jié)構(gòu)的構(gòu)
4、造進(jìn)行測(cè)試。確認(rèn)測(cè)試則是要檢查已實(shí)現(xiàn)的軟件是否滿足了需求規(guī)格說(shuō)明中確定了的各種需求,以及軟件配置是否完全、正確。系統(tǒng)測(cè)試把已經(jīng)經(jīng)過(guò)確認(rèn)的軟件納入實(shí)際運(yùn)行環(huán)境中,與其它系統(tǒng)成份組合在一起進(jìn)行測(cè)試。,測(cè)試過(guò)程,需求分析說(shuō)明書(shū),概要設(shè)計(jì)說(shuō)明書(shū),詳細(xì)設(shè)計(jì)說(shuō)明書(shū),源程序代碼,單元測(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)是否有問(wèn)題;單個(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)圖的最底層模塊開(kāi)始進(jìn)行組裝和集成測(cè)試的方式。,舉例:,,,,,,確認(rèn)測(cè)試,確認(rèn)測(cè)試又稱有效性測(cè)試。任務(wù)是驗(yàn)證軟件的功能和性能及其它特性是
8、否與用戶的要求一致。對(duì)軟件的功能和性能要求在軟件需求規(guī)格說(shuō)明書(shū)中已經(jīng)明確規(guī)定。它包含的信息就是軟件確認(rèn)測(cè)試的基礎(chǔ)。有效性測(cè)試是在模擬的環(huán)境 (可能就是開(kāi)發(fā)的環(huán)境) 下,運(yùn)用黑盒測(cè)試的方法,驗(yàn)證被測(cè)軟件是否滿足需求規(guī)格說(shuō)明書(shū)列出的需求。通過(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ì)劃,用戶文檔,源程序文本,開(kāi)發(fā)文檔,支持環(huán)境,確認(rèn)測(cè)試,軟件配置審查,管理機(jī)構(gòu)裁決,專家鑒定,測(cè)試報(bào)告,軟件配置,交用戶運(yùn)行維護(hù),確認(rèn)測(cè)試,系統(tǒng)測(cè)試,系統(tǒng)測(cè)試,是將通過(guò)確認(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è)試的目的在于通過(guò)與系統(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)和處理過(guò)程,只在軟件的接口處進(jìn)行測(cè)試,依據(jù)需求規(guī)格說(shuō)明書(shū),檢查程序是否滿足功能要求。又稱為功能測(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ù)文件)訪問(wèn)錯(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è)試。通過(guò)在不同點(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)的有效性,等。,白盒法存在的問(wèn)題,循環(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è) 試 用 例 通過(guò)路徑 覆蓋條件【(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ú)立路徑中從未有過(guò)的邊的路徑。,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ī)格說(shuō)明來(lái)說(shuō),是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。 ②無(wú)效等價(jià)類:對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō),是不合理的,無(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)部。這里所說(shuō)的邊界是指,相
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í)符是由字母開(kāi)頭,后跟字母或數(shù)字的任意組合構(gòu)成。標(biāo)識(shí)符的最大有效字符數(shù)為80個(gè)?!辈⑶乙?guī)定:“標(biāo)識(shí)符必須先說(shuō)明,再使用?!?“在同一說(shuō)明語(yǔ)句中,標(biāo)識(shí)
40、符至少必須有一個(gè)?!?錯(cuò)誤推測(cè),人們也可以靠經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫(xiě)檢查這些錯(cuò)誤的例子。這就是錯(cuò)誤推測(cè)法。錯(cuò)誤推測(cè)法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例。,軟件測(cè)試工具,測(cè)試設(shè)計(jì)工具靜態(tài)分析工具單元測(cè)試工具功能測(cè)試工具性能測(cè)試工具測(cè)試過(guò)程管理工具,測(cè)試設(shè)計(jì)工具,更完整的名稱應(yīng)該是測(cè)試用例設(shè)計(jì)工具,是一種幫助設(shè)計(jì)測(cè)試用例的軟件工具。 基于程
41、序代碼的測(cè)試用例設(shè)計(jì)工具基于需求說(shuō)明的測(cè)試用例設(shè)計(jì)工具,靜態(tài)分析工具,進(jìn)行靜態(tài)分析時(shí),不需要運(yùn)行所測(cè)試的程序,而是通過(guò)檢查程序代碼,對(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è)試過(guò)程管理工具,管理整個(gè)測(cè)試過(guò)程,保存在測(cè)試不同階段產(chǎn)生的文檔
44、、數(shù)據(jù),協(xié)調(diào)技術(shù)人員之間的工作。 測(cè)試過(guò)程管理工具一般都會(huì)包括以下這些功能:管理軟件需求、管理測(cè)試計(jì)劃、管理測(cè)試用例、缺陷跟蹤、測(cè)試過(guò)程中各類數(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ú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- [教育]趙良軟件工程軟件維護(hù)
- [教育]趙良軟件工程2軟件過(guò)程模型
- [教育]趙良軟件工程結(jié)構(gòu)化設(shè)計(jì)概念和原理
- [教育]趙良軟件工程面向數(shù)據(jù)流的分析方法
- 軟件工程_軟件測(cè)試文檔
- 第1章軟件工程與軟件測(cè)試
- 軟件工程倉(cāng)庫(kù)管理系統(tǒng)軟件測(cè)試
- 軟件工程測(cè)試計(jì)劃模板
- 軟件工程中軟件測(cè)試的應(yīng)用研究
- 軟件工程
- 軟件工程案例
- 軟件工程題
- 軟件工程習(xí)題
- 軟件工程方法
- 軟件學(xué)院-軟件工程導(dǎo)論試題
- 軟件工程與軟件文檔寫(xiě)作
- 外文翻譯---軟件和軟件工程
- 軟件工程軟件體系結(jié)構(gòu)
- 軟件工程專業(yè)
- 軟件工程.doc
評(píng)論
0/150
提交評(píng)論