測(cè)試-中科大繼續(xù)教育學(xué)院_第1頁(yè)
已閱讀1頁(yè),還剩187頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、軟件工程學(xué),中國(guó)科學(xué)技術(shù)大學(xué)網(wǎng)絡(luò)學(xué)院,,7.1 軟件測(cè)試基礎(chǔ)7.2 白盒測(cè)試與黑盒測(cè)試7.3 軟件測(cè)試步驟7.4 軟件測(cè)試種類7.5 程序調(diào)試7.6 軟件可靠性,第7章 測(cè)試,7.1軟件測(cè)試基礎(chǔ),軟件測(cè)試的目標(biāo)軟件測(cè)試的原則軟件測(cè)試的對(duì)象測(cè)試信息流測(cè)試與軟件開(kāi)發(fā)各階段的關(guān)系,軟件測(cè)試的目標(biāo),基于不同的立場(chǎng),存在著兩種完全不同的測(cè)試目的。從用戶的角度出發(fā),普遍希望通過(guò)軟件測(cè)試暴露軟件中隱藏的錯(cuò)誤和缺陷,以考慮是否可接

2、受該產(chǎn)品。從軟件開(kāi)發(fā)者的角度出發(fā),則希望測(cè)試成為表明軟件產(chǎn)品中不存在錯(cuò)誤的過(guò)程,驗(yàn)證該軟件已正確地實(shí)現(xiàn)了用戶的要求,確立人們對(duì)軟件質(zhì)量的信心。,Myers軟件測(cè)試目的,(1) 測(cè)試是程序的執(zhí)行過(guò)程,目的在于發(fā)現(xiàn)錯(cuò)誤;(2) 一個(gè)好的測(cè)試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;(3) 一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。,換言之,測(cè)試的目的是 想以最少的時(shí)間和人力,系統(tǒng)地找出軟件中潛在的各種錯(cuò)誤和缺陷。如果我們成功地實(shí)施了測(cè)試,

3、我們就能夠發(fā)現(xiàn)軟件中的錯(cuò)誤。 測(cè)試的附帶收獲是,它能夠證明軟件的功能和性能與需求說(shuō)明相符合。 實(shí)施測(cè)試收集到的測(cè)試結(jié)果數(shù)據(jù)為可靠性分析提供了依據(jù)。 測(cè)試不能表明軟件中不存在錯(cuò)誤,它只能說(shuō)明軟件中存在錯(cuò)誤。,軟件測(cè)試的原則,1. 應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟件測(cè)試”作為軟件開(kāi)發(fā)者的座右銘。2. 測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)和對(duì)應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。3. 程序員應(yīng)避免檢查自己的程序。4. 在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)包括合理的輸入條

4、件和不合理的輸入條件。,5. 充分注意測(cè)試中的群集現(xiàn)象。經(jīng)驗(yàn)表明,測(cè)試后程序中殘存的錯(cuò)誤數(shù)目與該程序中已發(fā)現(xiàn)的錯(cuò)誤數(shù)目成正比。6. 嚴(yán)格執(zhí)行測(cè)試計(jì)劃,排除測(cè)試的隨意性。7. 應(yīng)當(dāng)對(duì)每一個(gè)測(cè)試結(jié)果做全面檢查。8. 妥善保存測(cè)試計(jì)劃,測(cè)試用例,出錯(cuò)統(tǒng)計(jì)和最終分析報(bào)告,為維護(hù)提供方便。,軟件測(cè)試的對(duì)象,軟件測(cè)試并不等于程序測(cè)試。軟件測(cè)試應(yīng)貫穿于軟件定義與開(kāi)發(fā)的整個(gè)期間。需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)以及程序編碼等各階段所得到的文檔,包

5、括需求規(guī)格說(shuō)明、概要設(shè)計(jì)規(guī)格說(shuō)明、詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明以及源程序,都應(yīng)成為軟件測(cè)試的對(duì)象。,為把握軟件開(kāi)發(fā)各個(gè)環(huán)節(jié)的正確性,需要進(jìn)行各種確認(rèn)和驗(yàn)證工作。確認(rèn)(Validation),是一系列的活動(dòng)和過(guò)程,目的是想證實(shí)在一個(gè)給定的外部環(huán)境中軟件的邏輯正確性。 需求規(guī)格說(shuō)明確認(rèn) 程序確認(rèn) (靜態(tài)確認(rèn)、動(dòng)態(tài)確認(rèn)) 驗(yàn)證(Verification),試圖證明在軟件生存期各個(gè)階段,以及階段間的邏輯協(xié)調(diào)性、完備性和正確性。,測(cè)試信息流,測(cè)試信息

6、流,軟件配置:軟件需求規(guī)格說(shuō)明、軟件設(shè)計(jì)規(guī)格說(shuō)明、源代碼等;測(cè)試配置:測(cè)試計(jì)劃、測(cè)試用例、測(cè)試程序等;測(cè)試工具:測(cè)試數(shù)據(jù)自動(dòng)生成程序、靜態(tài)分析程序、動(dòng)態(tài)分析程序、測(cè)試結(jié)果分析程序、以及驅(qū)動(dòng)測(cè)試的測(cè)試數(shù)據(jù)庫(kù)等等。,測(cè)試結(jié)果分析:比較實(shí)測(cè)結(jié)果與預(yù)期結(jié)果,評(píng)價(jià)錯(cuò)誤是否發(fā)生。排錯(cuò)(調(diào)試):對(duì)已經(jīng)發(fā)現(xiàn)的錯(cuò)誤進(jìn)行錯(cuò)誤定位和確定出錯(cuò)性質(zhì),并改正這些錯(cuò)誤,同時(shí)修改相關(guān)的文檔。修正后的文檔再測(cè)試:直到通過(guò)測(cè)試為止。,通過(guò)收集和分析測(cè)試結(jié)果數(shù)據(jù),對(duì)

7、軟件建立可靠性模型利用可靠性分析,評(píng)價(jià)軟件質(zhì)量: 軟件的質(zhì)量和可靠性達(dá)到可以接受的程度; 所做的測(cè)試不足以發(fā)現(xiàn)嚴(yán)重的錯(cuò)誤;如果測(cè)試發(fā)現(xiàn)不了錯(cuò)誤,可以肯定,測(cè)試配置考慮得不夠細(xì)致充分,錯(cuò)誤仍然潛伏在軟件中。,測(cè)試與軟件開(kāi)發(fā)各階段的關(guān)系,軟件開(kāi)發(fā)過(guò)程是一個(gè)自頂向下,逐步細(xì)化的過(guò)程軟件計(jì)劃階段定義軟件作用域軟件需求分析建立軟件信息域、功能和性能需求、約束等軟件設(shè)計(jì)把設(shè)計(jì)用某種程序設(shè)計(jì)語(yǔ)言轉(zhuǎn)換成程序代碼,測(cè)試過(guò)程是依相反順序安排

8、的自底向上,逐步集成的過(guò)程。,,7.2白盒測(cè)試與黑盒測(cè)試,兩種常用的測(cè)試方法 黑盒測(cè)試 白盒測(cè)試,黑盒測(cè)試,這種方法是把測(cè)試對(duì)象看做一個(gè)黑盒子,測(cè)試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說(shuō)明書(shū),檢查程序的功能是否符合它的功能說(shuō)明。黑盒測(cè)試又叫做功能測(cè)試或數(shù)據(jù)驅(qū)動(dòng)測(cè)試。,黑盒測(cè)試方法是在程序接口上進(jìn)行測(cè)試,主要是為了發(fā)現(xiàn)以下錯(cuò)誤: 是否有不正確或遺漏了的功能? 在接口上,輸入能否正確地接受? 能否輸出正

9、確的結(jié)果? 是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問(wèn)錯(cuò)誤? 性能上是否能夠滿足要求? 是否有初始化或終止性錯(cuò)誤?,用黑盒測(cè)試發(fā)現(xiàn)程序中的錯(cuò)誤,必須在所有可能的輸入條件和輸出條件中確定測(cè)試數(shù)據(jù),來(lái)檢查程序是否都能產(chǎn)生正確的輸出。但這是不可能的。,假設(shè)一個(gè)程序P有輸入量X和Y及輸出量Z。在字長(zhǎng)為32位的計(jì)算機(jī)上運(yùn)行。若X、Y取整數(shù),按黑盒方法進(jìn)行窮舉測(cè)試:可能采用的 測(cè)試數(shù)據(jù)組: 232×232

10、 =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è)試又稱為結(jié)構(gòu)測(cè)試或邏輯驅(qū)動(dòng)測(cè)試。,軟件人員使用白盒測(cè)試方法,主要想對(duì)程序模塊進(jìn)行如下的檢查: 對(duì)程序模塊

11、的所有獨(dú)立的執(zhí)行路徑至少測(cè)試一次; 對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都至少測(cè)試一次; 在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體; 測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等。,對(duì)一個(gè)具有多重選擇和循環(huán)嵌套的程序,不同的路徑數(shù)目可能是天文數(shù)字。給出一個(gè)小程序的流程圖,它包括了一個(gè)執(zhí)行20次的循環(huán)。包含的不同執(zhí)行路徑數(shù)達(dá)520條,對(duì)每一條路徑進(jìn)行測(cè)試需要1毫秒,假定一年工作365 × 24小時(shí),要想把所有路徑測(cè)試完,需3170年

12、。,邏輯覆蓋,語(yǔ)句覆蓋 判定覆蓋 條件覆蓋,判定-條件覆蓋 條件組合覆蓋 路徑覆蓋。,邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù)。它屬白盒測(cè)試。,,,,例,,(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,L1 ( a ? c ? e )= {(A>1) and (B=0)} and

13、 {(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),L2 ( a? b ? d )= not{(A>1) and (B=0)} and

14、 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) or not (B=0) and not (A=2) and not

15、(X>1),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 not (A>1) and (X>1) or

16、not (B=0) and (A=2) or not (B=0) and (X>1),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>1),語(yǔ)句覆蓋,語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被

17、測(cè)程序,使得每一可執(zhí)行語(yǔ)句至少執(zhí)行一次。在圖例中,正好所有的可執(zhí)行語(yǔ)句都在路徑L1上,所以選擇路徑 L1設(shè)計(jì)測(cè)試用例,就可以覆蓋所有的可執(zhí)行語(yǔ)句。,測(cè)試用例的設(shè)計(jì)格式如下【輸入的(A, B, X),輸出的(A, B, X)】為圖例設(shè)計(jì)滿足語(yǔ)句覆蓋的測(cè)試用例是:【(2, 0, 4),(2, 0, 3)】  覆蓋 ace【L1】,(A=2) and (B=0) or (A>1) and (B=0) and

18、(X/A>1),,判定覆蓋,判定覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的取真分支和取假分支至少經(jīng)歷一次。判定覆蓋又稱為分支覆蓋。對(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>1) a

19、nd (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),,,如果選擇路徑L3和L4,還可得另一組可用的測(cè)試用例:【(2, 1, 1),(2, 1, 2)】覆蓋 abe【L3】【(3, 0, 3),(3, 1, 1)

20、】覆蓋 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è)條件的可能取值至少執(zhí)行一次。在圖例中,我

21、們事先可對(duì)所有條件的取值加以標(biāo)記。例如,對(duì)于第一個(gè)判斷: 條件 A>1 取真為 ,取假為 條件 B=0 取真為 ,取假為,對(duì)于第二個(gè)判斷: 條件A=2 取真為 ,取假為 條件X>1 取真為 ,取假為 測(cè)試用例 覆蓋分支 條件取值【(2, 0, 4),(2, 0, 3)】 L1(c, e) 【(1, 0, 1),(1, 0, 1)】 L2(b, d) 【

22、(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) 判定-條件覆蓋判定-條件覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,每個(gè)判斷中的每個(gè)條件的可能取值至少執(zhí)行一次。,測(cè) 試 用 例覆蓋分支 條件取值【(2, 0,

23、 4),(2, 0, 3)】L1(c, e)【(1, 1, 1),(1, 1, 1)】L2(b, d),(A=2) and (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

24、) and not (X>1),,and,or,,A>1,,T,B=0,,T,,X=X/A,,T,,,,,,F,F,A=2,,T,,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

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

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

27、, 0, 4), (2, 0, 3)】 ace (L1) 【(1, 1, 1), (1, 1, 1)】 abd (L2) 【(1, 1, 2), (1, 1, 3)】 abe (L3) 【(3, 0, 3), (3, 0, 1)】 acd (L4),條件測(cè)試路徑選擇,當(dāng)程序中判定多于一個(gè)時(shí),形成的分支結(jié)構(gòu)可以分為兩類:嵌套型分支結(jié)構(gòu)和連鎖型分支結(jié)構(gòu)

28、。對(duì)于嵌套型分支結(jié)構(gòu),若有n個(gè)判定語(yǔ)句,需要n+1個(gè)測(cè)試用例;對(duì)于連鎖型分支結(jié)構(gòu), 若有n個(gè)判定語(yǔ)句,需要有2n個(gè)測(cè)試用例,覆蓋它的2n條路徑。,循環(huán)測(cè)試路徑選擇,循環(huán)分為4種不同類型:簡(jiǎn)單循環(huán)、連鎖循環(huán)、嵌套循環(huán)和非結(jié)構(gòu)循環(huán)。 (1) 簡(jiǎn)單循環(huán) ① 零次循環(huán):從循環(huán)入口到出口 ② 一次循環(huán):檢查循環(huán)初始值 ③ 二次循環(huán):檢查多次循環(huán) ④ m次循環(huán): 檢查在多次循環(huán) ⑤ 最大次數(shù)循環(huán)、比最大

29、次數(shù)多一次、少一次的循環(huán)。,例:求最小值,k = i;for ( j = i+1; j <= n; j++ ) if ( A[j] < A[k] ) k = j;,k = i ; j = i+1;,,,,,j <= n?,,,,,,A[j]<A[k]?,,,,,k = j,,,j ++,,,,,,,,,f,d,c,a,b,e,測(cè)試用例選擇,,① 對(duì)最內(nèi)層循環(huán)做簡(jiǎn)單循環(huán)的全部測(cè)試。所有其它層的循

30、環(huán)變量置為最小值;② 逐步外推,對(duì)其外面一層循環(huán)進(jìn)行測(cè)試。測(cè)試時(shí)保持所有外層循環(huán)的循環(huán)變量取最小值,所有其它嵌套內(nèi)層循環(huán)的循環(huán)變量取“典型”值。。③ 反復(fù)進(jìn)行,直到所有各層循環(huán)測(cè)試完畢。,(2) 嵌套循環(huán),④ 對(duì)全部各層循環(huán)同時(shí)取最小循環(huán)次數(shù),或者同時(shí)取最大循環(huán)次數(shù)(3) 連鎖循環(huán)如果各個(gè)循環(huán)互相獨(dú)立,則可以用與簡(jiǎn)單循環(huán)相同的方法進(jìn)行測(cè)試。但如果幾個(gè)循環(huán)不是互相獨(dú)立的,則需要使用測(cè)試嵌套循環(huán)的辦法來(lái)處理。(4) 非結(jié)構(gòu)循

31、環(huán)這一類循環(huán)應(yīng)該使用結(jié)構(gòu)化程序設(shè)計(jì)方法重新設(shè)計(jì)測(cè)試用例。,基本路徑測(cè)試,基本路徑測(cè)試方法把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),程序中的循環(huán)體最多只執(zhí)行一次。它是在程序控制流圖的基礎(chǔ)上,分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中,程序的每一個(gè)可執(zhí)行語(yǔ)句至少要執(zhí)行一次。,1. 程序的控制流圖,符號(hào)○為控制流圖的一個(gè)結(jié)點(diǎn),表示一個(gè)或多個(gè)無(wú)分支的PDL語(yǔ)句或源程序語(yǔ)句。箭頭為邊,表示控制流

32、的方向。,在選擇或多分支結(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, AND, ...) 連接的復(fù)合條件表達(dá)式,則需改為 一系列只有單個(gè)條件的嵌套的判斷。,,2. 程序環(huán)路復(fù)雜性,程序的環(huán)路復(fù)雜性給出了程序基本路徑集中的獨(dú)立路徑條數(shù),這是確保程序中每個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次所必需的測(cè)試用例數(shù)目的上界。從控

33、制流圖來(lái)看,一條獨(dú)立路徑是至少包含有一條在其它獨(dú)立路徑中從未有過(guò)的邊的路徑。,例如,在圖示的控制流圖中,一組獨(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,pat

34、h4組成了控制流圖的一個(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í),這些路徑的測(cè)

35、試可以是另一條路徑測(cè)試的一部分。,黑盒測(cè)試的測(cè)試用例設(shè)計(jì),等價(jià)類劃分 邊界值分析 錯(cuò)誤推測(cè)法 因果圖,等價(jià)類劃分,等價(jià)類劃分是一種典型的黑盒測(cè)試方法,使用這一方法時(shí),完全不考慮程序的內(nèi)部結(jié)構(gòu),只依據(jù)程序的規(guī)格說(shuō)明來(lái)設(shè)計(jì)測(cè)試用例。等價(jià)類劃分方法把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分,然后從每一部分中選取少數(shù)有代表性的數(shù)據(jù)做為測(cè)試用例。,使用這一方法設(shè)計(jì)測(cè)試用例要經(jīng)歷劃分等價(jià)類(列出等價(jià)類表)和選取測(cè)試用例兩步。劃分等

36、價(jià)類等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的。測(cè)試某等價(jià)類的代表值就等價(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)成的集合。在設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮有效等價(jià)類和無(wú)效等價(jià)類的設(shè)計(jì)。,劃分等價(jià)類等價(jià)類的原則。

37、(1) 如果輸入條件規(guī)定了取值范圍,或值的個(gè)數(shù),則可以確立一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。,例如,在程序的規(guī)格說(shuō)明中,對(duì)輸入條件有一句話: “…… 項(xiàng)數(shù)可以從1到999 ……” 則有效等價(jià)類是“1≤項(xiàng)數(shù)≤999”兩個(gè)無(wú)效等價(jià)類是“項(xiàng)數(shù)<1”或“項(xiàng)數(shù)>999”。在數(shù)軸上表示成:,(2) 如果輸入條件規(guī)定了輸入值的集合,或者是規(guī)定了“必須如何”的條件,這時(shí)可確立一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。例如,在Pascal語(yǔ)言中對(duì)變量標(biāo)識(shí)符

38、規(guī)定為“以字母打頭的……串”。那么所有以字母打頭的構(gòu)成有效等價(jià)類,而不在此集合內(nèi)(不以字母打頭)的歸于無(wú)效等價(jià)類。,(3) 如果輸入條件是一個(gè)布爾量,則可以確定一個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。(4) 如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序要對(duì)每個(gè)輸入值分別進(jìn)行處理。這時(shí)可為 每一個(gè)輸入值確立一個(gè)有效等價(jià)類,此外針對(duì)這組值確立一個(gè)無(wú)效等價(jià)類,它是所有不允許的輸入值的集合。,例如,在教師上崗方案中規(guī)定對(duì)教授、副教授、講師和助教分別計(jì)算分?jǐn)?shù),

39、做相應(yīng)的處理。因此可以確定4個(gè)有效等價(jià)類為教授、副教授、講師和助教,一個(gè)無(wú)效等價(jià)類,它是所有不符合以上身分的人員的輸入值的集合。(5) 如果規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則,則可以確立一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無(wú)效等價(jià)類(從不同角度違反規(guī)則)。,例如,Pascal語(yǔ)言規(guī)定 “一個(gè)語(yǔ)句必須以分號(hào)‘;’結(jié)束”。這時(shí),可以確定一個(gè)有效等價(jià)類 “以‘;’結(jié)束”,若干個(gè)無(wú)效等價(jià)類 “以‘:’結(jié)束”、“以‘,’結(jié)束”、“以‘ ’結(jié)束”、“以L

40、F結(jié)束”等。確立測(cè)試用例在確立了等價(jià)類之后,建立等價(jià)類表,列出所有劃分出的等價(jià)類。,再?gòu)膭澐殖龅牡葍r(jià)類中按以下原則選擇測(cè)試用例:(1) 為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一編號(hào);(2) 設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋的有效等價(jià)類,重復(fù)這一步,直到所有的有效等價(jià)類都被覆蓋為止;(3) 設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋的無(wú)效等價(jià)類,重復(fù)這一步,直到所有的無(wú)效等價(jià)類都被覆蓋為止。,,用等價(jià)類劃分法設(shè)計(jì)測(cè)試用例

41、的實(shí)例在某一PASCAL語(yǔ)言版本中規(guī)定:“標(biāo)識(shí)符是由字母開(kāi)頭,后跟字母或數(shù)字的任意組合構(gòu)成。有效字符數(shù)為8個(gè),最大字符數(shù)為80個(gè)。”并且規(guī)定:“標(biāo)識(shí)符必須先說(shuō)明,再使用?!?“在同一說(shuō)明語(yǔ)句中,標(biāo)識(shí)符至少必須有一個(gè)。”,用等價(jià)類劃分方法,建立輸入等價(jià)類表:,下面選取了9個(gè)測(cè)試用例,它們覆蓋了所有的等價(jià)類。① VAR x,T1234567:REAL; BEGIN x := 3.414;

42、 T1234567 := 2.732; ...… (1), (2), (4), (8), (9), (12), (14)② VAR :REAL; (3)③ VAR x,:REAL; (5),④ VAR T12345678:REAL; (6)⑤ VAR

43、 T12345......:REAL; (7) 多于80個(gè)字符⑥ VAR T$:CHAR; (10)⑦ VAR GOTO:INTEGER; (11)⑧ VAR 2T:REAL; (13)⑨ VAR PAR:REAL; (15) BEGIN ...... PAP

44、:= SIN (3.14 * 0.8) / 6;,邊界值分析,邊界值分析也是一種黑盒測(cè)試方法,是對(duì)等價(jià)類劃分方法的補(bǔ)充。人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部。因此針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出更多的錯(cuò)誤。,比如,在做三角形計(jì)算時(shí),要輸入三角形的三個(gè)邊長(zhǎng):A、B和C。 我們應(yīng)注意到這三個(gè)數(shù)值應(yīng)當(dāng)滿足 A>0、B>0、C>0、 A+B>C、A+C>B、B+C

45、>A,才能構(gòu)成三角形。但如果把六個(gè)不等式中的任何一個(gè)大于號(hào)“>”錯(cuò)寫(xiě)成大于等于號(hào)“≥”,那就不能構(gòu)成三角形。問(wèn)題恰出現(xiàn)在容易被疏忽的邊界附近。,這里所說(shuō)的邊界是指,相當(dāng)于輸入等價(jià)類和輸出等價(jià)類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)確定邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于,或剛剛小于邊界的值做為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值做為測(cè)試數(shù)據(jù)。,錯(cuò)誤推測(cè)法,人們也可以靠經(jīng)驗(yàn)和直

46、覺(jué)推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫(xiě)檢查這些錯(cuò)誤的例子。這就是錯(cuò)誤推測(cè)法。錯(cuò)誤推測(cè)法的基本想法是:列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,根據(jù)它們選擇測(cè)試用例。,因果圖,因果圖的適用范圍如果在測(cè)試時(shí)必須考慮輸入條件的各種組合,可使用一種適合于描述對(duì)于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動(dòng)作的形式來(lái)設(shè)計(jì)測(cè)試用例,這就需要利用因果圖。因果圖方法最終生成的就是判定表。它適合于檢查程序輸入條件的各種組合情況。,用因果圖

47、生成測(cè)試用例的基本步驟(1) 分析軟件規(guī)格說(shuō)明描述中,哪些是原因 (即輸入條件或輸入條件的等價(jià)類),哪些是結(jié)果 (即輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識(shí)符。(2) 分析軟件規(guī)格說(shuō)明描述中的語(yǔ)義,找出原因與結(jié)果之間,原因與原因之間對(duì)應(yīng)的是什么關(guān)系? 根據(jù)這些關(guān)系,畫(huà)出因果圖。,(3) 由于語(yǔ)法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號(hào)標(biāo)明約束或限制條件。(4)

48、把因果圖轉(zhuǎn)換成判定表。(5) 把判定表的每一列拿出來(lái)作為依據(jù),設(shè)計(jì)測(cè)試用例。,在因果圖中出現(xiàn)的基本符號(hào)通常在因果圖中用Ci表示原因,用Ei表示結(jié)果,各結(jié)點(diǎn)表示狀態(tài),可取值“0”或“1”。“0”表示某狀態(tài)不出現(xiàn),“1”表示某狀態(tài)出現(xiàn)。主要的原因和結(jié)果之間的關(guān)系有:,表示約束條件的符號(hào)為了表示原因與原因之間,結(jié)果與結(jié)果之間可能存在的約束條件,在因果圖中可以附加一些表示約束條件的符號(hào)。,,例如,有一個(gè)處理單價(jià)為5角錢的飲料的自動(dòng)售貨機(jī)

49、軟件測(cè)試用例的設(shè)計(jì)。其規(guī)格說(shuō)明如下:若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來(lái)。若售貨機(jī)沒(méi)有零錢找,則一個(gè)顯示〖零錢找完〗的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來(lái)而且1元硬幣也退出來(lái);若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時(shí)退還5角硬幣。”,(1) 分析這一段說(shuō)明,列出原因和結(jié)果原因: 1. 售貨機(jī)有零錢找 2. 投入1元硬幣

50、 3. 投入5角硬幣 4. 押下橙汁按鈕 5. 押下啤酒按鈕建立中間結(jié)點(diǎn),表示處理中間狀態(tài)11. 投入1元硬幣且押下飲料按鈕12. 押下〖橙汁〗或〖啤酒〗的按鈕13. 應(yīng)當(dāng)找5角零錢并且售貨機(jī)有零錢找14. 錢已付清,結(jié)果: 21. 售貨機(jī)〖零錢找完〗燈亮 22. 退還1元硬幣 23. 退還5角硬幣

51、 24. 送出橙汁飲料 25. 送出啤酒飲料(2) 畫(huà)出因果圖。所有原因結(jié)點(diǎn)列在左邊,所有結(jié)果結(jié)點(diǎn)列在右邊。 (3) 由于 2 與 3 ,4 與 5 不能同時(shí)發(fā)生,分別加上約束條件E。(4) 因果圖 (5) 轉(zhuǎn)換成判定表,,,,,,7.3軟件測(cè)試步驟,測(cè)試過(guò)程按4個(gè)步驟進(jìn)行,即單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。開(kāi)始是單元測(cè)試,集中對(duì)用源代碼實(shí)現(xiàn)的每一個(gè)程序單元進(jìn)行

52、測(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è)試。,(一)單元測(cè)試 (Unit Testing),單元測(cè)試又稱模塊測(cè)試,是針對(duì)軟件設(shè)計(jì)的最小單位 ─ 程序模塊,進(jìn)行正確性檢

53、驗(yàn)的測(cè)試工作。其目的在于發(fā)現(xiàn)各模塊內(nèi)部可能存在的各種差錯(cuò)。單元測(cè)試需要從程序的內(nèi)部結(jié)構(gòu)出發(fā)設(shè)計(jì)測(cè)試用例。多個(gè)模塊可以平行地獨(dú)立進(jìn)行單元測(cè)試。,1. 單元測(cè)試的內(nèi)容,在單元測(cè)試時(shí),測(cè)試者需要依據(jù)詳細(xì)設(shè)計(jì)說(shuō)明書(shū)和源程序清單,了解該模塊的I/O條件和模塊的邏輯結(jié)構(gòu),主要采用白盒測(cè)試的測(cè)試用例,輔之以黑盒測(cè)試的測(cè)試用例,使之對(duì)任何合理的輸入和不合理的輸入,都能鑒別和響應(yīng)。,(1) 模塊接口測(cè)試,在單元測(cè)試的開(kāi)始,應(yīng)對(duì)通過(guò)被測(cè)模塊的數(shù)據(jù)流進(jìn)行測(cè)

54、試。測(cè)試項(xiàng)目包括: 調(diào)用本模塊的輸入?yún)?shù)是否正確; 本模塊調(diào)用子模塊時(shí)輸入給子模塊的參數(shù)是否正確; 全局量的定義在各模塊中是否一致;,在做內(nèi)外存交換時(shí)要考慮: 文件屬性是否正確; OPEN與CLOSE語(yǔ)句是否正確; 緩沖區(qū)容量與記錄長(zhǎng)度是否匹配; 在進(jìn)行讀寫(xiě)操作之前是否打開(kāi)了文件; 在結(jié)束文件處理時(shí)是否關(guān)閉了文件; 正文書(shū)寫(xiě)/輸入錯(cuò)誤, I/O錯(cuò)誤是否檢查并做了處理。,(2) 局部數(shù)據(jù)結(jié)構(gòu)測(cè)試,不正確或不一致的數(shù)據(jù)類

55、型說(shuō)明使用尚未賦值或尚未初始化的變量錯(cuò)誤的初始值或錯(cuò)誤的缺省值變量名拼寫(xiě)錯(cuò)或書(shū)寫(xiě)錯(cuò)不一致的數(shù)據(jù)類型全局?jǐn)?shù)據(jù)對(duì)模塊的影響,(3) 路徑測(cè)試,選擇適當(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ò)誤。,(4) 錯(cuò)誤處理測(cè)試,出錯(cuò)的描述是否難以理解出錯(cuò)的描述是否能夠?qū)﹀e(cuò)誤定位顯示的錯(cuò)誤與實(shí)際的錯(cuò)誤是否相

56、符對(duì)錯(cuò)誤條件的處理正確與否在對(duì)錯(cuò)誤進(jìn)行處理之前,錯(cuò)誤條件是否已經(jīng)引起系統(tǒng)的干預(yù)等,(5) 邊界測(cè)試,注意數(shù)據(jù)流、控制流中剛好等于、大于或小于確定的比較值時(shí)出錯(cuò)的可能性。對(duì)這些地方要仔細(xì)地選擇測(cè)試用例,認(rèn)真加以測(cè)試。如果對(duì)模塊運(yùn)行時(shí)間有要求的話,還要專門進(jìn)行關(guān)鍵路徑測(cè)試,以確定最壞情況下和平均意義下影響模塊運(yùn)行時(shí)間的因素。,2. 單元測(cè)試的步驟,模塊并不是一個(gè)獨(dú)立的程序,在考慮測(cè)試模塊時(shí),同時(shí)要考慮它和外界的聯(lián)系,用一些輔助模塊去模

57、擬與被測(cè)模塊相聯(lián)系的其它模塊。 驅(qū)動(dòng)模塊 (driver) 樁模塊 (stub) ── 存根模塊,如果一個(gè)模塊要完成多種功能,可以將這個(gè)模塊看成由幾個(gè)小程序組成。必須對(duì)其中的每個(gè)小程序先進(jìn)行單元測(cè)試要做的工作,對(duì)關(guān)鍵模塊還要做性能測(cè)試。對(duì)支持某些標(biāo)準(zhǔn)規(guī)程的程序,更要著手進(jìn)行互聯(lián)測(cè)試。有人把這種情況特別稱為模塊測(cè)試,以區(qū)別單元測(cè)試。,(二)集成測(cè)試(Integrated Testing),集成測(cè)試 (組裝測(cè)試、聯(lián)合測(cè)試)通常,在

58、單元測(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á)到不能接受的程度。在單元測(cè)試的同時(shí)可進(jìn)行組裝測(cè)試,發(fā)現(xiàn)并排除在模塊連接中可能出現(xiàn)的問(wèn)題,最終構(gòu)成要求的軟件系統(tǒng)

59、。,,子系統(tǒng)的組裝測(cè)試特別稱為部件測(cè)試,它所做的工作是要找出組裝后的子系統(tǒng)與系統(tǒng)需求規(guī)格說(shuō)明之間的不一致。通常,把模塊組裝成為系統(tǒng)的方式有兩種 一次性組裝方式 增殖式組裝方式,1. 一次性組裝方式,它是一種非增殖式組裝方式。也叫做整體拼裝。使用這種方式,首先對(duì)每個(gè)模塊分別進(jìn)行模塊測(cè)試,然后再把所有模塊組裝在一起進(jìn)行測(cè)試,最終得到要求的軟件系統(tǒng)。,2. 增殖式組裝方式,這種組裝方式又稱漸增式組裝首先對(duì)一個(gè)個(gè)模塊進(jìn)行模塊測(cè)試,然后

60、將這些模塊逐步組裝成較大的系統(tǒng)在組裝的過(guò)程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過(guò)程中產(chǎn)生的問(wèn)題通過(guò)增殖逐步組裝成為要求的軟件系統(tǒng)。,(1) 自頂向下的增殖方式,這種組裝方式將模塊按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝。自頂向下的增殖方式在測(cè)試過(guò)程中較早地驗(yàn)證了主要的控制和判斷點(diǎn)。選用按深度方向組裝的方式,可以首先實(shí)現(xiàn)和驗(yàn)證一個(gè)完整的軟件功能。,(2) 自底向上的增殖方式,這種組裝的方式是從程序模塊結(jié)構(gòu)的最底層的模塊開(kāi)始組裝和測(cè)試。因

61、為模塊是自底向上進(jìn)行組裝,對(duì)于一個(gè)給定層次的模塊,它的子模塊(包括子模塊的所有下屬模塊)已經(jīng)組裝并測(cè)試完成,所以不再需要樁模塊。在模塊的測(cè)試過(guò)程中需要從子模塊得到的信息可以直接運(yùn)行子模塊得到。,自頂向下增殖的方式和自底向上增殖的方式各有優(yōu)缺點(diǎn)。一般來(lái)講,一種方式的優(yōu)點(diǎn)是另一種方式的缺點(diǎn)。,(3) 混合增殖式測(cè)試,衍變的自頂向下的增殖測(cè)試 首先對(duì)輸入/輸出模塊和引入新算法模塊進(jìn)行測(cè)試; 再自底向上組裝成為功能相當(dāng)完整且相對(duì)獨(dú)立的子系

62、統(tǒng); 然后由主模塊開(kāi)始自頂向下進(jìn)行增殖測(cè)試。,自底向上?自頂向下的增殖測(cè)試 首先對(duì)含讀操作的子系統(tǒng)自底向上直至根結(jié)點(diǎn)模塊進(jìn)行組裝和測(cè)試; 然后對(duì)含寫(xiě)操作的子系統(tǒng)做自頂向下的組裝與測(cè)試?;貧w測(cè)試 這種方式采取自頂向下的方式測(cè)試被修改的模塊及其子模塊; 然后將這一部分視為子系統(tǒng),再自底向上測(cè)試。,關(guān)鍵模塊問(wèn)題,在組裝測(cè)試時(shí),應(yīng)當(dāng)確定關(guān)鍵模塊,對(duì)這些關(guān)鍵模塊及早進(jìn)行測(cè)試。關(guān)鍵模塊的特征:① 滿足某些軟件需求;② 在程序的模塊

63、結(jié)構(gòu)中位于較高的層次(高層控制模塊);③ 較復(fù)雜、較易發(fā)生錯(cuò)誤;④ 有明確定義的性能要求。,(三)確認(rèn)測(cè)試(Validation Testing),確認(rèn)測(cè)試又稱有效性測(cè)試。任務(wù)是驗(yàn)證軟件的功能和性能及其它特性是否與用戶的要求一致。對(duì)軟件的功能和性能要求在軟件需求規(guī)格說(shuō)明書(shū)中已經(jīng)明確規(guī)定。它包含的信息就是軟件確認(rèn)測(cè)試的基礎(chǔ)。,,,1. 進(jìn)行有效性測(cè)試(黑盒測(cè)試),有效性測(cè)試是在模擬的環(huán)境 (可能就是開(kāi)發(fā)的環(huán)境) 下,運(yùn)用黑盒測(cè)試的方

64、法,驗(yàn)證被測(cè)軟件是否滿足需求規(guī)格說(shuō)明書(shū)列出的需求。首先制定測(cè)試計(jì)劃,規(guī)定要做測(cè)試的種類。還需要制定一組測(cè)試步驟,描述具體的測(cè)試用例。,通過(guò)實(shí)施預(yù)定的測(cè)試計(jì)劃和測(cè)試步驟,確定 軟件的特性是否與需求相符; 所有的文檔都是正確且便于使用; 同時(shí),對(duì)其它軟件需求,例如可移植性、兼容性、出錯(cuò)自動(dòng)恢復(fù)、可維護(hù)性等,也都要進(jìn)行測(cè)試,在全部軟件測(cè)試的測(cè)試用例運(yùn)行完后,所有的測(cè)試結(jié)果可以分為兩類: 測(cè)試結(jié)果與預(yù)期的結(jié)果相符。這說(shuō)明軟件的這部分功

65、能或性能特征與需求規(guī)格說(shuō)明書(shū)相符合,從而這部分程序被接受。 測(cè)試結(jié)果與預(yù)期的結(jié)果不符。這說(shuō)明軟件的這部分功能或性能特征與需求規(guī)格說(shuō)明不一致,因此要為它提交一份問(wèn)題報(bào)告。,2. 軟件配置復(fù)查,軟件配置復(fù)查的目的是保證 軟件配置的所有成分都齊全; 各方面的質(zhì)量都符合要求; 具有維護(hù)階段所必需的細(xì)節(jié); 而且已經(jīng)編排好分類的目錄。應(yīng)當(dāng)嚴(yán)格遵守用戶手冊(cè)和操作手冊(cè)中規(guī)定的使用步驟,以便檢查這些文檔資料的完整性和正確性。,(四)驗(yàn)收測(cè)試

66、(Acceptance Testing),在通過(guò)了系統(tǒng)的有效性測(cè)試及軟件配置審查之后,就應(yīng)開(kāi)始系統(tǒng)的驗(yàn)收測(cè)試。驗(yàn)收測(cè)試是以用戶為主的測(cè)試。軟件開(kāi)發(fā)人員和QA(質(zhì)量保證)人員也應(yīng)參加。由用戶參加設(shè)計(jì)測(cè)試用例,使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。,在測(cè)試過(guò)程中,除了考慮軟件的功能和性能外,還應(yīng)對(duì)軟件的可移植性、兼容性、可維護(hù)性、錯(cuò)誤的恢復(fù)功能等進(jìn)行確認(rèn)。確認(rèn)測(cè)試應(yīng)交付的文檔有: 確認(rèn)測(cè)試分析報(bào)告 最終的用戶手冊(cè)和操作手冊(cè) 項(xiàng)目開(kāi)發(fā)總結(jié)

67、報(bào)告。,(五)系統(tǒng)測(cè)試(System Testing),系統(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)的需求定義作比較, 發(fā)現(xiàn)軟件與系統(tǒng)的定義不符合或與之矛盾的地方。,α測(cè)試和β測(cè)試,在軟件交付使用之后,用戶將如何實(shí)際使用程序,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)是無(wú)法預(yù)測(cè)的

68、。α測(cè)試是由一個(gè)用戶在開(kāi)發(fā)環(huán)境下進(jìn)行的測(cè)試,也可以是公司內(nèi)部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的測(cè)試。,α測(cè)試的目的是評(píng)價(jià)軟件產(chǎn)品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。尤其注重產(chǎn)品的界面和特色。α測(cè)試可以從軟件產(chǎn)品編碼結(jié)束之時(shí)開(kāi)始,或在模塊(子系統(tǒng))測(cè)試完成之后開(kāi)始,也可以在確認(rèn)測(cè)試過(guò)程中產(chǎn)品達(dá)到一定的穩(wěn)定和可靠程度之后再開(kāi)始。,β測(cè)試是由軟件的多個(gè)用戶在實(shí)際使用環(huán)境下進(jìn)行的測(cè)試。這些用戶返回有關(guān)錯(cuò)誤信息給開(kāi)發(fā)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論