版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
檢驗(yàn)和測(cè)試方法第一頁(yè),共八十二頁(yè),2022年,8月28日第9章軟件測(cè)試教學(xué)重點(diǎn)與難點(diǎn)掌握軟件測(cè)試階段的主要任務(wù)及方法掌握使用白盒法進(jìn)行軟件測(cè)試掌握使用黑盒法進(jìn)行軟件測(cè)試掌握軟件測(cè)試的過(guò)程第二頁(yè),共八十二頁(yè),2022年,8月28日9.1測(cè)試的基本概念軟件工程的根本目標(biāo)是開(kāi)發(fā)出高質(zhì)量的完全符合用戶需要的軟件。在開(kāi)發(fā)軟件的過(guò)程中,人們使用了許多保證軟件質(zhì)量的方法分析、設(shè)計(jì)和實(shí)現(xiàn)軟件,但難免還會(huì)在工作中犯錯(cuò)誤。這樣在軟件產(chǎn)品中就會(huì)隱藏許多錯(cuò)誤和缺陷。對(duì)于規(guī)模大、復(fù)雜性高的軟件更是如此。在這些錯(cuò)誤中,有些是致命的錯(cuò)誤,如果不排除,就會(huì)導(dǎo)致生命與財(cái)產(chǎn)的重大損失。軟件測(cè)試是保證軟件質(zhì)量的關(guān)鍵步驟,它是對(duì)規(guī)格說(shuō)明書(shū)、設(shè)計(jì)和編碼的最終評(píng)審。軟件缺陷:
⑴軟件未達(dá)到產(chǎn)品說(shuō)明書(shū)標(biāo)明的功能。⑵軟件出現(xiàn)了產(chǎn)品說(shuō)明書(shū)指明不會(huì)出現(xiàn)的錯(cuò)誤。⑶軟件功能超出產(chǎn)品說(shuō)明書(shū)的范圍。⑷軟件未達(dá)到產(chǎn)品說(shuō)明書(shū)雖未指明但應(yīng)達(dá)到的目標(biāo)。⑸軟件測(cè)試員認(rèn)為軟件難于理解、不易使用、運(yùn)行速度緩慢,或最終用戶認(rèn)為不好。第三頁(yè),共八十二頁(yè),2022年,8月28日9.1.1軟件測(cè)試的定義1983年IEEE提出的軟件工程標(biāo)準(zhǔn)術(shù)語(yǔ)中對(duì)軟件測(cè)試的定義為:使用人工或自動(dòng)手段來(lái)運(yùn)行或測(cè)定某個(gè)系統(tǒng)的過(guò)程,其目的在于檢驗(yàn)它是否滿足規(guī)定的需求或弄清預(yù)期結(jié)果與實(shí)際結(jié)果之間的差距。軟件測(cè)試就是為了發(fā)現(xiàn)軟件中的錯(cuò)誤而執(zhí)行程序的過(guò)程。第四頁(yè),共八十二頁(yè),2022年,8月28日軟件測(cè)試在軟件生命周期中橫跨兩個(gè)階段在編寫(xiě)出每個(gè)模塊之后就對(duì)它做必要的測(cè)試(稱為單元測(cè)試),模塊的編寫(xiě)者和測(cè)試者是同一個(gè)人,編碼和單元測(cè)試屬于軟件生命周期的同一個(gè)階段。在這個(gè)階段結(jié)束之后,對(duì)軟件系統(tǒng)還應(yīng)該進(jìn)行各種綜合測(cè)試,這是軟件生命周期中的另一個(gè)獨(dú)立的階段,通常由專門(mén)的測(cè)試人員承擔(dān)這項(xiàng)工作。第五頁(yè),共八十二頁(yè),2022年,8月28日9.1.2測(cè)試的目標(biāo)軟件測(cè)試目標(biāo)的歸納(1)測(cè)試是一個(gè)程序執(zhí)行的過(guò)程,其目的在于發(fā)現(xiàn)軟件中的錯(cuò)誤;(2)一個(gè)好的測(cè)試用例,是能夠發(fā)現(xiàn)至今尚未察覺(jué)的錯(cuò)誤的用例;(3)一個(gè)成功的測(cè)試,則是發(fā)現(xiàn)至今尚未察覺(jué)的錯(cuò)誤的測(cè)試.軟件測(cè)試就是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程。測(cè)試不能發(fā)現(xiàn)所有的錯(cuò)誤。第六頁(yè),共八十二頁(yè),2022年,8月28日9.1.3測(cè)試的原則(1)應(yīng)當(dāng)盡早地、不斷地進(jìn)行軟件測(cè)試。(2)程序員或程序設(shè)計(jì)機(jī)構(gòu)不應(yīng)測(cè)試自己設(shè)計(jì)的程序。(3)測(cè)試用例應(yīng)當(dāng)由測(cè)試輸入數(shù)據(jù)和與之對(duì)應(yīng)的預(yù)期輸出結(jié)果兩部分組成。(4)設(shè)計(jì)測(cè)試用例時(shí),應(yīng)包括合理的輸入條件和不合理的輸入條件。(5)充分注意測(cè)試中的群集現(xiàn)象。實(shí)驗(yàn)表明,測(cè)試后程序中殘存的錯(cuò)誤數(shù)與該程序中已發(fā)現(xiàn)的錯(cuò)誤數(shù)目或檢錯(cuò)率成正比。第七頁(yè),共八十二頁(yè),2022年,8月28日9.1.3測(cè)試的原則⑹嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。⑺應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試的結(jié)果做全面的檢查。⑻在對(duì)程序進(jìn)行修改后,要進(jìn)行回歸測(cè)試;⑼妥善保存測(cè)試計(jì)劃,測(cè)試用例,出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。第八頁(yè),共八十二頁(yè),2022年,8月28日9.1.4測(cè)試的方法1.靜態(tài)檢查:一般不在計(jì)算機(jī)上實(shí)際執(zhí)行的程序,而是通過(guò)人工分析評(píng)審來(lái)確認(rèn)程序的正確性。2.動(dòng)態(tài)檢查(1)黑盒法:測(cè)試用例是完全根據(jù)程序的功能說(shuō)明來(lái)設(shè)計(jì)的。(2)白盒法:測(cè)試用例是根據(jù)程序的內(nèi)部邏輯來(lái)設(shè)計(jì)的。3.正確性證明第九頁(yè),共八十二頁(yè),2022年,8月28日9.2軟件評(píng)審人工閱讀軟件文檔或程序,從而發(fā)現(xiàn)其中的錯(cuò)誤,這種技術(shù)稱為評(píng)審。評(píng)審的分類:需求分析復(fù)查概要設(shè)計(jì)復(fù)查詳細(xì)設(shè)計(jì)復(fù)查程序復(fù)查和走查第十頁(yè),共八十二頁(yè),2022年,8月28日9.2.1評(píng)審過(guò)程第十一頁(yè),共八十二頁(yè),2022年,8月28日9.2.1評(píng)審過(guò)程評(píng)審組長(zhǎng)將評(píng)審材料發(fā)給評(píng)審員評(píng)審會(huì)上材料作者介紹情況評(píng)審員按照評(píng)審條款逐條對(duì)材料進(jìn)行檢查詳細(xì)記錄評(píng)審會(huì)議評(píng)審組長(zhǎng)提交評(píng)審報(bào)告,列出發(fā)現(xiàn)的錯(cuò)誤及對(duì)修改工作的具體要求。第十二頁(yè),共八十二頁(yè),2022年,8月28日9.3白盒法任何產(chǎn)品都可以用以下兩種方法之一進(jìn)行測(cè)試:⑴已知產(chǎn)品的功能設(shè)計(jì)規(guī)則,可進(jìn)行測(cè)試證明每個(gè)實(shí)現(xiàn)了的功能是否符合要求——黑盒測(cè)試⑵已知產(chǎn)品的內(nèi)部工作過(guò)程,可以通過(guò)測(cè)試證明每個(gè)內(nèi)部的操作是否符合設(shè)計(jì)規(guī)格說(shuō)明要求,所有內(nèi)部成分是否已經(jīng)檢查——白盒測(cè)試第十三頁(yè),共八十二頁(yè),2022年,8月28日9.3.1白盒法概述白盒法是指測(cè)試人員將程序視為一個(gè)透明的盒子。也就是說(shuō),需要了解程序的內(nèi)部結(jié)構(gòu),對(duì)程序的所有邏輯路徑進(jìn)行測(cè)試,在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際狀態(tài)與預(yù)期的狀態(tài)是否一致。白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。第十四頁(yè),共八十二頁(yè),2022年,8月28日如圖所示的程序圖,它對(duì)應(yīng)了一個(gè)100行源代碼的Pascal語(yǔ)言程序,其中包括了一個(gè)執(zhí)行20次的循環(huán),那么它所包含的不同路徑高達(dá)520條,若要對(duì)它進(jìn)行窮舉測(cè)試,即要設(shè)計(jì)測(cè)試用例,覆蓋所有的路徑。設(shè)有一個(gè)測(cè)試程序,對(duì)每條路徑的測(cè)試需一毫秒,那么要完成測(cè)試約需3710年。任何進(jìn)行窮舉測(cè)試都是一場(chǎng)達(dá)災(zāi)難,因此,我們的策略是在一定的開(kāi)發(fā)周期和某種經(jīng)濟(jì)條件下,通過(guò)有限的測(cè)試盡可能多地發(fā)現(xiàn)錯(cuò)誤。測(cè)試只能發(fā)現(xiàn)錯(cuò)誤,而不能保證程序沒(méi)有錯(cuò)誤。第十五頁(yè),共八十二頁(yè),2022年,8月28日9.3.2語(yǔ)句覆蓋為了暴露程序中的錯(cuò)誤,至少每個(gè)語(yǔ)句應(yīng)該執(zhí)行一次?!罢Z(yǔ)句覆蓋”是一個(gè)比較弱的測(cè)試標(biāo)準(zhǔn),它的含義是:選擇足夠的測(cè)試用例,使得程序中每個(gè)語(yǔ)句至少都能執(zhí)行一次。第十六頁(yè),共八十二頁(yè),2022年,8月28日語(yǔ)句覆蓋示例設(shè)計(jì)的用例能使程序中的每條語(yǔ)句至少執(zhí)行一次。如設(shè)計(jì)一條能通過(guò)路徑ace的測(cè)試用例:A=2,B=0,X=3第十七頁(yè),共八十二頁(yè),2022年,8月28日9.3.3判定覆蓋選擇足夠的測(cè)試用例,使得程序中每個(gè)判定至少都能獲得一次“真”值和“假”值,或者說(shuō)使得程序中的每一個(gè)分支至少都通過(guò)一次?!芭卸ǜ采w”比“語(yǔ)句覆蓋”嚴(yán)格,因?yàn)槿绻總€(gè)分支都執(zhí)行過(guò)了,則每個(gè)語(yǔ)句也就執(zhí)行過(guò)了。第十八頁(yè),共八十二頁(yè),2022年,8月28日判定覆蓋示例使程序中每個(gè)分支至少有一次“真值”和一次“假值”,或每個(gè)分支都至少通過(guò)一次。如能通過(guò)路徑acd和abe;可選擇以下兩組數(shù)據(jù):A=3,B=0,X=1A=2,B=1,X=3第十九頁(yè),共八十二頁(yè),2022年,8月28日9.3.4條件覆蓋一個(gè)判定中往往包含了若干個(gè)條件.“條件覆蓋”的含義是:執(zhí)行足夠的測(cè)試用例,使得判定中的每個(gè)條件獲得各種可能的結(jié)果。第二十頁(yè),共八十二頁(yè),2022年,8月28日條件覆蓋示例四個(gè)條件:
A>1,B=0,A=2,X>1測(cè)試用例:a點(diǎn)
A>1,A≤1,B=0,B≠0b點(diǎn)
A=2,A≠2,X>1,X≤1可選擇以下兩組數(shù)據(jù):
A=1,B=0,X=3(abe)
A=2,B=1,X=1(abe)第二十一頁(yè),共八十二頁(yè),2022年,8月28日“條件覆蓋”通常比“判定覆蓋”強(qiáng),因?yàn)樗挂粋€(gè)判定中的每一個(gè)條件都取得了兩個(gè)不同的結(jié)果。當(dāng)測(cè)試語(yǔ)句為:IF(AANDB)THENS時(shí),一般可設(shè)計(jì)兩種測(cè)試用例:A為“真”,B為“真”;A為“假”,B為“假”。第二十二頁(yè),共八十二頁(yè),2022年,8月28日9.3.5判定/條件覆蓋“判定/條件覆蓋”:執(zhí)行足夠的測(cè)試用例,使得程序判定中的每個(gè)條件取到各種可能的值,并使每個(gè)判定取到各種可能的結(jié)果。在條件覆蓋中選擇的兩組數(shù)據(jù):
A=2,B=0,X=4 A=1,B=1,X=1
是滿足判定/條件覆蓋要求的。所以徹底的判定/條件測(cè)試覆蓋,應(yīng)使每一個(gè)簡(jiǎn)單判定的所有可能結(jié)果都至少真正出現(xiàn)一次。第二十三頁(yè),共八十二頁(yè),2022年,8月28日9.3.6條件組合覆蓋“條件組合覆蓋”,它的含義是:選擇足夠的測(cè)試用例,使得每個(gè)判定中的條件的各種組合都至少出現(xiàn)一次。滿足“條件組合覆蓋”的測(cè)試用例是一定滿足“判定覆蓋”、“條件覆蓋”和“判定/條件覆蓋”的。第二十四頁(yè),共八十二頁(yè),2022年,8月28日條件組合覆蓋示例要滿足多重覆蓋,設(shè)計(jì)的測(cè)試用例就必須滿足以下八種組合:(1)A>1,B=0;(2)A>1,B≠0(3)A≤1,B=0;(4)A≤1,B≠0(5)A=2,X>1;(6)A=2,X≤1(7)A≠2,X>1;(8)A≠2,X≤1要測(cè)試上述八種組合結(jié)果可采用以下四組數(shù)據(jù):A=2,B=0,X=4覆蓋(1)(5)
(ace)A=2,B=1,X=1覆蓋(2)(6)
(abe)A=1,B=0,X=2覆蓋(3)(7)
(abe)A=1,B=1,X=1覆蓋(4)(8)
(abd)
第二十五頁(yè),共八十二頁(yè),2022年,8月28日9.4黑盒法黑盒測(cè)試法把程序看成一個(gè)黑盒子,完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程。黑盒測(cè)試是在程序接口進(jìn)行的測(cè)試,它只檢查程序功能是否能按照規(guī)格說(shuō)明書(shū)的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)產(chǎn)生正確的輸出信息,并且保持外部信息(如,數(shù)據(jù)庫(kù)或文件)的完整性。黑盒測(cè)試又稱為功能測(cè)試。用黑盒法發(fā)現(xiàn)程序中的錯(cuò)誤,必須用所有可能的輸入數(shù)據(jù)來(lái)檢查程序能否都產(chǎn)生正確的輸出。第二十六頁(yè),共八十二頁(yè),2022年,8月28日黑盒測(cè)試力圖發(fā)現(xiàn)下述類型的錯(cuò)誤:①功能不正確或遺漏了功能;②界面錯(cuò)誤;③數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部數(shù)據(jù)庫(kù)訪問(wèn)錯(cuò)誤;④性能錯(cuò)誤;⑤初始化和終止錯(cuò)誤。白盒測(cè)試在測(cè)試過(guò)程的早期階段進(jìn)行,而黑盒測(cè)試主要用于測(cè)試過(guò)程的后期。第二十七頁(yè),共八十二頁(yè),2022年,8月28日9.4.1等價(jià)分類法等價(jià)分類法的指導(dǎo)思想是:把所有可能輸入的數(shù)據(jù)劃分成若干等價(jià)類,假定每類中的一個(gè)典型值在測(cè)試中的作用與這類中所有其他值的作用相同;然后可以從每個(gè)等價(jià)類中只取一組數(shù)據(jù)作為代表性數(shù)據(jù)用于測(cè)試,以便發(fā)現(xiàn)程序中的錯(cuò)誤。第二十八頁(yè),共八十二頁(yè),2022年,8月28日等價(jià)分類法的步驟采用等價(jià)類劃分技術(shù)設(shè)計(jì)測(cè)試用例分兩步:1.劃分等價(jià)類2.確認(rèn)測(cè)試用例第二十九頁(yè),共八十二頁(yè),2022年,8月28日1、劃分等價(jià)類根據(jù)每個(gè)輸入條件(通常是規(guī)范說(shuō)明中一句話或一個(gè)短語(yǔ)),找出兩個(gè)或更多的等價(jià)類,將其列表:第三十頁(yè),共八十二頁(yè),2022年,8月28日合理等價(jià)類:輸入數(shù)據(jù)滿足程序模塊的輸入數(shù)據(jù)規(guī)范,是有意義的輸入數(shù)據(jù)集合。使用合理等價(jià)類構(gòu)造測(cè)試用例,主要檢測(cè)程序模塊是否實(shí)現(xiàn)了設(shè)計(jì)規(guī)格規(guī)定的功能和性能。不合理等價(jià)類:輸入數(shù)據(jù)不滿足程序模塊的輸入數(shù)據(jù)規(guī)范,是無(wú)意義的輸入數(shù)據(jù)集合。使用不合理等價(jià)類構(gòu)造測(cè)試用例,主要檢測(cè)程序模塊是否能夠拒絕無(wú)效數(shù)據(jù)輸入,被測(cè)試對(duì)象在運(yùn)行初始條件不具備時(shí)的可靠性如何。第三十一頁(yè),共八十二頁(yè),2022年,8月28日等價(jià)類的劃分原則⑴如果輸入條件規(guī)定了取值范圍,或值的個(gè)數(shù),則可以確定一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。例如:如果某輸入條件規(guī)定輸入數(shù)據(jù)的取值范圍是:1到99,則有效等價(jià)類是[1,99],兩個(gè)無(wú)效等價(jià)類是“小于1和大于99的數(shù)”。⑵如果輸入條件規(guī)定輸入值的集合,或者是規(guī)定了“必須如何”的條件,則可確立一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。例如:在某些程序語(yǔ)言中對(duì)變量標(biāo)識(shí)符規(guī)定為“以字母打頭的串”,那么所有以字母打頭的構(gòu)成有效等價(jià)類,不以字母打頭的歸于無(wú)效等價(jià)類。第三十二頁(yè),共八十二頁(yè),2022年,8月28日等價(jià)類的劃分原則⑶如果輸入條件是一個(gè)布爾量,則可以確定一個(gè)有效的等價(jià)類和一個(gè)無(wú)效的等價(jià)類。⑷如果規(guī)定了數(shù)據(jù)的一組值,而且程序要對(duì)每個(gè)輸入值分別進(jìn)行處理。這時(shí)可為每一個(gè)輸入值確定一個(gè)有效等價(jià)類,此外針對(duì)這組值確定一個(gè)無(wú)效等價(jià)類,它是所有不允許的輸入值的集合。例如,在教師分房中規(guī)定對(duì)教授、副教授、講師和助教分別計(jì)算分?jǐn)?shù),做相應(yīng)的處理。因此,可以確定4個(gè)有效等價(jià)類為:教授、副教授、講師和助教,以及一個(gè)無(wú)效等價(jià)類,它是所有不符合上述身份人員的輸入值的集合。第三十三頁(yè),共八十二頁(yè),2022年,8月28日等價(jià)類的劃分原則⑸如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(從不同角度違反規(guī)則)。例如,Pascal語(yǔ)言處理時(shí)規(guī)定“一個(gè)語(yǔ)句必須以分號(hào)‘;’結(jié)束”。這時(shí)可以確定一個(gè)有效等價(jià)類“以‘;’結(jié)束”,若干個(gè)無(wú)效等價(jià)類“以‘:’結(jié)束”、“以‘、’結(jié)束”、“以‘?!Y(jié)束”等。⑹如果確知,已劃分的等價(jià)類中各元素,在程序中的處理方式是不同的,則應(yīng)將此等價(jià)類進(jìn)一步劃分為更小的等價(jià)類。第三十四頁(yè),共八十二頁(yè),2022年,8月28日2、選擇測(cè)試用例根據(jù)等價(jià)類設(shè)計(jì)測(cè)試用例。有三步:(1)給每個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào);(2)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋未被覆蓋過(guò)的合理等價(jià)類。此項(xiàng)工作重復(fù)進(jìn)行,直到所有的合理等價(jià)類都被覆蓋為止;(3)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其覆蓋一個(gè)、且僅一個(gè)未被覆蓋過(guò)的不合理等價(jià)類。此項(xiàng)工作同樣進(jìn)行到所有不合理等價(jià)類都被覆蓋為止。第三十五頁(yè),共八十二頁(yè),2022年,8月28日9.4.2邊緣值分析法人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。第三十六頁(yè),共八十二頁(yè),2022年,8月28日邊緣值分析法的原則1)如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)。例如,若輸入值的范圍是“-1.0~1.0”,則可選取“-1.0”、“1.0”、“-1.001”和“1.001”作為測(cè)試數(shù)據(jù)。2)如果輸入條件規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比最大個(gè)數(shù)多1,比最小個(gè)數(shù)少1的數(shù)作為測(cè)試數(shù)據(jù)。例如:一個(gè)輸入文件可有1~255個(gè)記錄,則可以分別設(shè)計(jì)1個(gè)記錄、255個(gè)記錄以及0個(gè)記錄和256個(gè)記錄的輸入文件。3)根據(jù)規(guī)格說(shuō)明的每個(gè)輸出條件。使用前面的原則1)。例如,某程序的功能是計(jì)算折扣量,最低折扣量是0元,最高折扣量是1050元。則設(shè)計(jì)一些測(cè)試用例,使它們恰好產(chǎn)生0元和1050元的結(jié)果。此外,還可考慮設(shè)計(jì)結(jié)果為負(fù)值或大于1050元的測(cè)試用例。第三十七頁(yè),共八十二頁(yè),2022年,8月28日邊緣值分析法的原則4)根據(jù)規(guī)格說(shuō)明的每個(gè)輸出條件。使用前面的原則2)。例如,一個(gè)信息檢索系統(tǒng)根據(jù)用戶打入得命令,顯示有關(guān)文獻(xiàn)的摘要,但最多只顯示4篇摘要。這時(shí)可設(shè)計(jì)一些測(cè)試用例,使得程序分別顯示1篇,4篇,0篇摘要,并設(shè)計(jì)一個(gè)有可能使程序錯(cuò)誤地顯示5篇摘要的測(cè)試用例。5)如果程序的規(guī)格說(shuō)明給出的輸入域或輸出域是有序集合(如有序表,順序文件等),則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測(cè)試用例。第三十八頁(yè),共八十二頁(yè),2022年,8月28日邊緣值分析法示例例:輸入三個(gè)正整數(shù),表示三角形三個(gè)邊。其中任意兩個(gè)數(shù)之和應(yīng)大于第三個(gè)數(shù)。如果使用等價(jià)劃分,至少可以找出兩個(gè)等價(jià)類:一個(gè)滿足上述條件的合理等價(jià)類;一個(gè)兩數(shù)之和不大于第三個(gè)數(shù)的不合理的等價(jià)類
A=3,B=4,C=5;A=1,B=2,C=4但是,這里卻忽視了極易出現(xiàn)的錯(cuò)誤:如把A+B>C錯(cuò)誤地寫(xiě)成A+B≥C,上述兩組測(cè)試數(shù)據(jù)均無(wú)法發(fā)現(xiàn)。從此例可見(jiàn)邊界值分析的必要性。A=1,B=2,C=3這組數(shù)據(jù)可以發(fā)現(xiàn)上述錯(cuò)誤。第三十九頁(yè),共八十二頁(yè),2022年,8月28日從這里可以看出:邊界值分析與等價(jià)劃分的重要區(qū)別,邊界值著重檢查等價(jià)類邊界上和邊界附近的錯(cuò)誤。實(shí)際工作中,通常把語(yǔ)句覆蓋、等價(jià)劃分和邊界值分析測(cè)試結(jié)合使用。這樣就能把白盒子和黑合盒子測(cè)試技術(shù)結(jié)合起來(lái),既可檢查設(shè)計(jì)的內(nèi)部要求,又可以檢查設(shè)計(jì)的接口要求。第四十頁(yè),共八十二頁(yè),2022年,8月28日9.4.3錯(cuò)誤推測(cè)法人們也可以靠經(jīng)驗(yàn)和直覺(jué)推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫(xiě)檢查這些錯(cuò)誤的例子。這就是錯(cuò)誤推測(cè)法。錯(cuò)誤推測(cè)法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例。應(yīng)該仔細(xì)分析程序規(guī)格說(shuō)明書(shū),注意找出其中遺漏或省略的部分,以便設(shè)計(jì)相應(yīng)的測(cè)試方案,檢測(cè)程序員對(duì)這些部分的處理是否正確。第四十一頁(yè),共八十二頁(yè),2022年,8月28日錯(cuò)誤推測(cè)法示例例:對(duì)一個(gè)排序程序,我們可以列出以下幾種需要特別檢查的情況:(1)輸入表為空。(2)輸入表中只有一個(gè)數(shù)據(jù)。(3)輸入表為滿表。(4)輸入表中所有的行都具有相同的值。(5)輸入表已經(jīng)是排序的。(6)輸入表的排序恰與所要求的順序相反。第四十二頁(yè),共八十二頁(yè),2022年,8月28日9.5綜合策略使用每種測(cè)試方法都能設(shè)計(jì)一組有用的測(cè)試方案,但是沒(méi)有一種方法能設(shè)計(jì)出全部的測(cè)試方案。用一種方法設(shè)計(jì)出來(lái)的測(cè)試方案可能最容易發(fā)現(xiàn)某類型的錯(cuò)誤,對(duì)另外一些類型的錯(cuò)誤可能不易發(fā)現(xiàn)。對(duì)系統(tǒng)進(jìn)行實(shí)際測(cè)試時(shí),應(yīng)該聯(lián)合使用各種設(shè)計(jì)測(cè)試方案的方法,形成一種綜合策略。用黑盒設(shè)計(jì)基本的測(cè)試方案,再用白盒補(bǔ)充一些必要的測(cè)試方案。
第四十三頁(yè),共八十二頁(yè),2022年,8月28日比較合理的策略在任何情況下都需使用邊緣值分析法(這個(gè)方法應(yīng)包括對(duì)輸入和輸出的邊緣值進(jìn)行分析)。必要的話,再用等價(jià)分類法補(bǔ)充一些用例。再用錯(cuò)誤推測(cè)法附加用例。檢查上述用例的邏輯覆蓋程度,如果未能滿足某些覆蓋標(biāo)準(zhǔn),則再增加足夠的用例。第四十四頁(yè),共八十二頁(yè),2022年,8月28日強(qiáng)調(diào)指出,即使使用上述綜合策略設(shè)計(jì)測(cè)試方案,仍然不能保證測(cè)試將發(fā)現(xiàn)一切程序錯(cuò)誤;這些策略確實(shí)是在測(cè)試成本和測(cè)試效果之間的一個(gè)合理的折衷。軟件測(cè)試確實(shí)是一件十分艱巨繁重的工作。第四十五頁(yè),共八十二頁(yè),2022年,8月28日9.6測(cè)試過(guò)程軟件工程范圍內(nèi)的測(cè)試過(guò)程實(shí)際分為四步:?jiǎn)卧獪y(cè)試、整體測(cè)試、有效性測(cè)試和系統(tǒng)測(cè)試,它們依次進(jìn)行。第四十六頁(yè),共八十二頁(yè),2022年,8月28日測(cè)試過(guò)程第四十七頁(yè),共八十二頁(yè),2022年,8月28日單元測(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)造進(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è)試。第四十八頁(yè),共八十二頁(yè),2022年,8月28日9.7單元測(cè)試單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位─程序模塊,進(jìn)行正確性檢驗(yàn)的測(cè)試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。單元測(cè)試多采用白盒測(cè)法,多個(gè)模塊可以平行地獨(dú)立進(jìn)行單元測(cè)試。第四十九頁(yè),共八十二頁(yè),2022年,8月28日9.7.1單元測(cè)試的內(nèi)容第五十頁(yè),共八十二頁(yè),2022年,8月28日1、模塊接口在單元測(cè)試的開(kāi)始,應(yīng)對(duì)通過(guò)被測(cè)模塊的數(shù)據(jù)流進(jìn)行測(cè)試。測(cè)試項(xiàng)目包括:調(diào)用本模塊的輸入?yún)?shù)(屬性、數(shù)量)是否正確;本模塊調(diào)用子模塊時(shí)輸入給子模塊的參數(shù)(屬性、數(shù)量)是否正確;全局量的定義、用法在各模塊中是否一致;
第五十一頁(yè),共八十二頁(yè),2022年,8月28日模塊接口如果一個(gè)模塊完成文件的輸入或輸出時(shí),還應(yīng)該再檢查下述各點(diǎn):⑴文件屬性是否正確?⑵打開(kāi)文件語(yǔ)句是否正確?⑶格式說(shuō)明書(shū)與輸入/輸出語(yǔ)句是否一致?⑷緩沖區(qū)大小與記錄長(zhǎng)度是否匹配?⑸使用文件之前先打開(kāi)文件了嗎?⑹文件結(jié)束條件處理了嗎?⑺輸入/輸出錯(cuò)誤檢查并處理了嗎?⑻輸出信息中有文字書(shū)寫(xiě)錯(cuò)誤嗎?
第五十二頁(yè),共八十二頁(yè),2022年,8月28日2、局部數(shù)據(jù)結(jié)構(gòu)對(duì)于一個(gè)模塊而言,局部數(shù)據(jù)結(jié)構(gòu)是常見(jiàn)的錯(cuò)誤來(lái)源。應(yīng)該仔細(xì)設(shè)計(jì)測(cè)試方案,以便發(fā)現(xiàn)下述類型的錯(cuò)誤:⑴錯(cuò)誤的或不相容的說(shuō)明;⑵使用尚未賦值或尚未初始化的變量;⑶錯(cuò)誤的初始值或不正確的缺省值;⑷錯(cuò)誤的變量名字(拼寫(xiě)錯(cuò)或截短了);⑸數(shù)據(jù)類型不相容;⑹上溢、下溢或地址異常。第五十三頁(yè),共八十二頁(yè),2022年,8月28日3、執(zhí)行路徑選擇適當(dāng)?shù)臏y(cè)試用例,對(duì)模塊中重要的執(zhí)行路徑進(jìn)行測(cè)試。應(yīng)當(dāng)設(shè)計(jì)測(cè)試用例查找由于錯(cuò)誤的計(jì)算、不正確的比較或不正常的控制流而導(dǎo)致的錯(cuò)誤。對(duì)基本執(zhí)行路徑和循環(huán)進(jìn)行測(cè)試可以發(fā)現(xiàn)大量的路徑錯(cuò)誤。第五十四頁(yè),共八十二頁(yè),2022年,8月28日4、錯(cuò)誤處理比較完善的模塊設(shè)計(jì)要求能預(yù)見(jiàn)出錯(cuò)的條件,并設(shè)置適當(dāng)?shù)某鲥e(cuò)處理,保證程序出錯(cuò)時(shí),能對(duì)出錯(cuò)程序重新安排,保證其邏輯上的正確性。出錯(cuò)的描述是否難以理解出錯(cuò)的描述是否能夠?qū)﹀e(cuò)誤定位顯示的錯(cuò)誤與實(shí)際的錯(cuò)誤是否相符對(duì)錯(cuò)誤條件的處理正確與否在對(duì)錯(cuò)誤進(jìn)行處理之前,錯(cuò)誤條件是否已經(jīng)引起系統(tǒng)的干預(yù)等第五十五頁(yè),共八十二頁(yè),2022年,8月28日5、邊界測(cè)試注意數(shù)據(jù)流、控制流中剛好等于、大于或小于確定的比較值時(shí)出錯(cuò)的可能性。對(duì)這些地方要仔細(xì)地選擇測(cè)試用例,認(rèn)真加以測(cè)試。第五十六頁(yè),共八十二頁(yè),2022年,8月28日9.7.2單元測(cè)試的方法模塊并不是一個(gè)獨(dú)立的程序,在考慮測(cè)試模塊時(shí),同時(shí)要考慮它和外界的聯(lián)系,用一些輔助模塊去模擬與被測(cè)模塊相聯(lián)系的其它模塊。驅(qū)動(dòng)模塊(driver)支持模塊(stub)──樁模塊第五十七頁(yè),共八十二頁(yè),2022年,8月28日單元測(cè)試的測(cè)試環(huán)境第五十八頁(yè),共八十二頁(yè),2022年,8月28日9.8整體測(cè)試在單元測(cè)試的基礎(chǔ)上,需要將所有模塊按照設(shè)計(jì)要求組裝成為系統(tǒng)。這時(shí)需要考慮的問(wèn)題是:在把各個(gè)模塊連接起來(lái)的時(shí)侯,穿越模塊接口的數(shù)據(jù)是否會(huì)丟失;一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響;各個(gè)子功能組合起來(lái),能否達(dá)到預(yù)期要求的父功能;全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問(wèn)題;單個(gè)模塊的誤差累積起來(lái),是否會(huì)放大,從而達(dá)到不能接受的程度。第五十九頁(yè),共八十二頁(yè),2022年,8月28日整體測(cè)試的類型根據(jù)模塊組成程序時(shí)的兩種不同方法,整體測(cè)試方法可以分為兩類:非漸增式測(cè)試:首先對(duì)每個(gè)模塊分別進(jìn)行模塊測(cè)試,然后再把所有模塊組裝在一起進(jìn)行測(cè)試,最終得到要求的軟件系統(tǒng);漸增式測(cè)試:把下一個(gè)要測(cè)試的模塊同已經(jīng)測(cè)試好的模塊結(jié)合起來(lái)進(jìn)行測(cè)試,測(cè)試完以后再把下一個(gè)應(yīng)該測(cè)試的模塊結(jié)合進(jìn)來(lái)測(cè)試。這種每次增加一個(gè)模塊的方法稱為漸增式測(cè)試。第六十頁(yè),共八十二頁(yè),2022年,8月28日非漸增式測(cè)試缺點(diǎn):
程序中不可避免地存在設(shè)計(jì)模塊間接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)等問(wèn)題,所以一次性運(yùn)行成功的可能性不大。一旦發(fā)現(xiàn)有錯(cuò)誤,查錯(cuò)和改錯(cuò)會(huì)遇到困難。第六十一頁(yè),共八十二頁(yè),2022年,8月28日漸增式測(cè)試漸增式測(cè)試是用于軟件裝配的一種系統(tǒng)化的技術(shù)。自頂向下測(cè)試自底向上測(cè)試第六十二頁(yè),共八十二頁(yè),2022年,8月28日1、自頂向下測(cè)試從主控制模塊(“主程序”)開(kāi)始,沿著軟件的控制層次向下移動(dòng),從而逐漸把各個(gè)模塊結(jié)合起來(lái)。在把附屬于(以及最終附屬于)主控制模塊的那些模塊組裝到軟件結(jié)構(gòu)中去時(shí),使用的方法:深度優(yōu)先的策略寬度優(yōu)先的策略第六十三頁(yè),共八十二頁(yè),2022年,8月28日深度優(yōu)先的策略第六十四頁(yè),共八十二頁(yè),2022年,8月28日自頂向下測(cè)試的步驟①對(duì)主控制模塊進(jìn)行測(cè)試,測(cè)試時(shí)用支持模塊代替所有直接附屬于主控制模塊的模塊;②根據(jù)選定的結(jié)合策略(深度優(yōu)先或?qū)挾葍?yōu)先),每次用一個(gè)實(shí)際模塊代換支持模塊(新結(jié)合進(jìn)來(lái)的模塊往往又需要新的支持模塊);③在結(jié)合進(jìn)一個(gè)模塊的同時(shí)進(jìn)行測(cè)試;④為了保證加入模塊沒(méi)有引進(jìn)新的錯(cuò)誤,可能需要進(jìn)行回歸測(cè)試(即全部或部分地重復(fù)以前做過(guò)的測(cè)試)。⑤重復(fù)進(jìn)行上述過(guò)程②-④,直到構(gòu)造起完整的軟件結(jié)構(gòu)為止。第六十五頁(yè),共八十二頁(yè),2022年,8月28日自頂向下測(cè)試的分析優(yōu)點(diǎn):在測(cè)試過(guò)程早期對(duì)較高層次模塊或主控模塊路徑進(jìn)行測(cè)試可進(jìn)早發(fā)現(xiàn)主控模塊控制是否有問(wèn)題,增強(qiáng)開(kāi)發(fā)人員和用戶雙方的信心。缺點(diǎn):需要設(shè)計(jì)支持模塊,使得低層關(guān)鍵模塊中的錯(cuò)誤發(fā)現(xiàn)較晚。解決辦法:把許多測(cè)試推遲到用真實(shí)模塊代替了支持模塊以后再進(jìn)行;與自底向上測(cè)試方法配合使用;第六十六頁(yè),共八十二頁(yè),2022年,8月28日2、自底向上測(cè)試這種組裝的方式是從程序模塊結(jié)構(gòu)的最底層的模塊開(kāi)始組裝和測(cè)試。第六十七頁(yè),共八十二頁(yè),2022年,8月28日3、結(jié)論自頂向下增殖的方式和自底向上增殖的方式各有優(yōu)缺點(diǎn)。在測(cè)試實(shí)際的軟件系統(tǒng)時(shí),應(yīng)該根據(jù)軟件的特點(diǎn)以及工程進(jìn)度安排,選用適當(dāng)?shù)臏y(cè)試策略?;旌喜呗裕簩?duì)軟件結(jié)構(gòu)中較上層,使用的是自頂向下方法;對(duì)軟件結(jié)構(gòu)中較下層,使用的是自底向上方法,兩者相結(jié)合。第六十八頁(yè),共八十二頁(yè),2022年,8月28日9.9有效性測(cè)試軟件有效性:如果軟件的功能和性能如同用戶所合理地期待的那樣,則軟件是有效的。有效性測(cè)試又稱確認(rèn)測(cè)試。任務(wù)是驗(yàn)證軟件的功能和性能及其它特性是否與用戶的要求一致。對(duì)軟件的功能和性能要求在軟件需求規(guī)格說(shuō)明書(shū)中已經(jīng)明確規(guī)定。它包含的信息就是軟件確認(rèn)測(cè)試的基礎(chǔ)。第六十九頁(yè),共八十二頁(yè),2022年,8月28日有效性測(cè)試有效性測(cè)試一般使用黑盒測(cè)試法。通過(guò)實(shí)施預(yù)定的測(cè)試計(jì)劃和測(cè)試步驟,確定軟件的特性是否與需求相符;所有的文檔都是正確且便于使用;同時(shí),對(duì)其它軟件需求,例如可移植性、兼容性、出錯(cuò)自動(dòng)恢復(fù)、可維護(hù)性等,也都要進(jìn)行測(cè)試。第七十頁(yè),共八十二頁(yè),2022年,8月28日在全部軟件測(cè)試的測(cè)試用例運(yùn)行完后,所有的測(cè)試結(jié)果可以分為兩類:
測(cè)試結(jié)果與預(yù)期的結(jié)果相符。這說(shuō)明軟件的這部分功能或性能特征與需求規(guī)格說(shuō)明書(shū)相符合,從而這部分程序被接受。
測(cè)試結(jié)果與預(yù)期的結(jié)果不符。這說(shuō)明軟件的這部分功能或性能特征與需求規(guī)格說(shuō)明不一致,因此要為它提交一份問(wèn)題報(bào)告。
第七十一頁(yè),共八十二頁(yè),2022年,8月28日9.10系統(tǒng)測(cè)試系統(tǒng)測(cè)試,是將通過(guò)有效性測(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)的需求定義作比較,發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合或與之矛盾的地方。第七十二頁(yè),共八十二頁(yè),2022年,8月28日系統(tǒng)測(cè)試的類型1.恢復(fù)測(cè)試2.安全性測(cè)試3.強(qiáng)度測(cè)試4.性能測(cè)試第七十三頁(yè),共八十二頁(yè),2022年,8月2
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年互聯(lián)網(wǎng)醫(yī)療解決方案技術(shù)合作協(xié)議
- 2025年雙方協(xié)商勞務(wù)派遣協(xié)議
- 2025年P(guān)PP項(xiàng)目合作財(cái)務(wù)管理協(xié)議
- 主材供應(yīng)及合作框架合同 2024年版一
- 2025版區(qū)塊鏈技術(shù)應(yīng)用合伙人合作協(xié)議3篇
- 2025年度智能建筑安裝工程承包技師合同4篇
- 二零二五年度酒吧食品安全管理與承包合同
- 2025年度城市公交車定點(diǎn)維修與應(yīng)急保障合同
- 二零二五年度汽車維修免責(zé)聲明適用于車主自帶配件
- 2025年度地鐵隧道鋼筋工勞務(wù)施工安全質(zhì)量保障合同
- 2024-2030年中國(guó)食品飲料灌裝設(shè)備行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 建筑結(jié)構(gòu)課程設(shè)計(jì)成果
- 班級(jí)建設(shè)方案中等職業(yè)學(xué)校班主任能力大賽
- 纖維增強(qiáng)復(fù)合材料 單向增強(qiáng)材料Ⅰ型-Ⅱ 型混合層間斷裂韌性的測(cè)定 編制說(shuō)明
- 習(xí)近平法治思想概論教學(xué)課件緒論
- 寵物會(huì)展策劃設(shè)計(jì)方案
- 孤殘兒童護(hù)理員(四級(jí))試題
- 醫(yī)院急診醫(yī)學(xué)小講課課件:急診呼吸衰竭的處理
- 腸梗阻導(dǎo)管在臨床中的使用及護(hù)理課件
- 小學(xué)英語(yǔ)單詞匯總大全打印
- 衛(wèi)生健康系統(tǒng)安全生產(chǎn)隱患全面排查
評(píng)論
0/150
提交評(píng)論