




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、6.1 軟件測(cè)試的基本概念什么是軟件測(cè)試 軟件測(cè)試是在軟件投入生產(chǎn)性運(yùn)行之前,對(duì)軟件需求分析、設(shè)計(jì)規(guī)格說(shuō)明和編碼的最終復(fù)審,是軟件質(zhì)量控制的關(guān)鍵步驟。 如果給軟件測(cè)試下定義的話,可以這樣講:軟件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過(guò)程?;蛘哒f(shuō),軟件測(cè)試是根據(jù)軟件開(kāi)發(fā)各階段的規(guī)格說(shuō)明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測(cè)試用例(即輸入數(shù)據(jù)及其預(yù)期的輸出結(jié)果),并利用這些測(cè)試用例去運(yùn)行程序,以發(fā)現(xiàn)程序錯(cuò)誤的過(guò)程。 6.1 軟件測(cè)試的基本概念軟件測(cè)試的目的和原則 基于不同的立場(chǎng),存在著兩種完全不同的測(cè)試目的。從用戶的角度出發(fā),普遍希望通過(guò)軟件測(cè)試檢驗(yàn)軟件中隱藏的錯(cuò)誤和缺陷,以考慮是否可以接受該產(chǎn)品。從軟件開(kāi)發(fā)者
2、的角度出發(fā),則希望測(cè)試成為表明軟件產(chǎn)品中不存在錯(cuò)誤的過(guò)程,驗(yàn)證該軟件已正確地實(shí)現(xiàn)了用戶的要求,確立人們對(duì)軟件質(zhì)量的信心。6.1 軟件測(cè)試的基本概念 Grenford J.Myers就軟件測(cè)試目的提出了以下觀點(diǎn)。測(cè)試是程序的執(zhí)行過(guò)程,目的在于發(fā)現(xiàn)錯(cuò)誤。一個(gè)好的測(cè)試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤。一個(gè)成功的測(cè)試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測(cè)試。 6.1 軟件測(cè)試的基本概念根據(jù)以上測(cè)試目的,軟件測(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è)試用例
3、時(shí),應(yīng)當(dāng)包括合理的輸入條 件和不合理的輸入條件。(5)充分注意測(cè)試中的群集現(xiàn)象。 (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ù)提供方便。 6.1 軟件測(cè)試的基本概念軟件測(cè)試的對(duì)象 軟件測(cè)試應(yīng)貫穿于軟件定義與開(kāi)發(fā)的整個(gè)期間。需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、程序編碼等各階段所得到的文檔資料,包括需求規(guī)格說(shuō)明、概要設(shè)計(jì)規(guī)格說(shuō)明、詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明以及源程序,都應(yīng)成為軟件測(cè)試的對(duì)象。 到程序的測(cè)試為止,軟件開(kāi)發(fā)工作已經(jīng)經(jīng)歷了許多環(huán)節(jié),每個(gè)環(huán)節(jié)都可能發(fā)生問(wèn)題。為了把握各個(gè)環(huán)節(jié)的正確性,人們需要進(jìn)行各種確認(rèn)
4、和驗(yàn)證工作。 6.1 軟件測(cè)試的基本概念 確認(rèn)(validation),是一系列的活動(dòng)和過(guò)程,其目的是想證實(shí)在一個(gè)給定的外部環(huán)境中軟件的邏輯正確性。它包括需求規(guī)格說(shuō)明的確認(rèn)和程序的確認(rèn),而程序的確認(rèn)又分為靜態(tài)確認(rèn)與動(dòng)態(tài)確認(rèn)。 驗(yàn)證(verification),則試圖證明在軟件生存期各個(gè)階段,以及階段間的邏輯協(xié)調(diào)性、完備性和正確性。下圖為軟件生存期各個(gè)重要階段之間所要保持的正確性。6.1 軟件測(cè)試的基本概念6.1 軟件測(cè)試的基本概念 測(cè)試信息流如下圖所示。6.1 軟件測(cè)試的基本概念測(cè)試信息流 軟件開(kāi)發(fā)過(guò)程是一個(gè)自頂向下、逐步細(xì)化的過(guò)程,而測(cè)試過(guò)程則是依相反的順序安排的自底向上、逐步集成的過(guò)程。低
5、一級(jí)測(cè)試為上一級(jí)測(cè)試準(zhǔn)備條件。當(dāng)然不排除兩者平行地進(jìn)行測(cè)試。 軟件測(cè)試與軟件開(kāi)發(fā)過(guò)程的關(guān)系如下圖所示。6.1 軟件測(cè)試的基本概念測(cè)試與軟件開(kāi)發(fā)各階段的關(guān)系 首先對(duì)每一個(gè)程序模塊進(jìn)行單元測(cè)試,消除程序模塊內(nèi)部在邏輯上和功能上的錯(cuò)誤和缺陷。再對(duì)照軟件設(shè)計(jì)進(jìn)行集成測(cè)試,檢測(cè)和排除子系統(tǒng)(或系統(tǒng))結(jié)構(gòu)上的錯(cuò)誤。隨后再對(duì)照需求,進(jìn)行確認(rèn)測(cè)試。最后從系統(tǒng)全體出發(fā),運(yùn)行系統(tǒng),看是否滿足要求。 6.1 軟件測(cè)試的基本概念1. 黑盒測(cè)試 黑盒測(cè)試是把測(cè)試對(duì)象看做一個(gè)黑盒子,測(cè)試人員完 全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程 序的需求規(guī)格說(shuō)明書(shū),檢查程序的功能是否符合它的 功能說(shuō)明。 黑盒測(cè)試方法主要是為
6、了發(fā)現(xiàn):是否有不正確或遺漏了的功能?輸入能否正確地接收?能否輸出正確的結(jié)果?是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息(例如數(shù)據(jù)文件)訪問(wèn)錯(cuò)誤?性能上是否能夠滿足要求?是否有初始化或終止性錯(cuò)誤?所以,用黑盒測(cè)試發(fā)現(xiàn)程序中的錯(cuò)誤,必須在所有可能的輸入條件和輸出條件中確定測(cè)試數(shù)據(jù),檢查程序是否都能產(chǎn)生正確的輸出。6.1 軟件測(cè)試的基本概念白盒測(cè)試與黑盒測(cè)試 現(xiàn)在假設(shè)一個(gè)程序P有輸入量X和Y及輸出量Z,如右圖所示。在字長(zhǎng)為32位的計(jì)算機(jī)上運(yùn)行,如果X,Y只取整數(shù),考慮把所有的X,Y值都作為測(cè)試數(shù)據(jù),按黑盒方法進(jìn)行窮舉測(cè)試,力圖全面、無(wú)遺漏地“挖掘”出程序中的所有錯(cuò)誤。這樣作可能采用的測(cè)試數(shù)據(jù)組(Xi,Yi),不同
7、測(cè)試數(shù)據(jù)組合的最大可能數(shù)目為232232=264。如果程序P測(cè)試一組X,Y數(shù)據(jù)需要1毫秒,而且假定一天工作24小時(shí),一年工作365天,要完成264組測(cè)試,需要5億年。 6.1 軟件測(cè)試的基本概念6.1 軟件測(cè)試的基本概念2. 白盒測(cè)試 白盒測(cè)試是對(duì)軟件的過(guò)程性細(xì)節(jié)做細(xì)致的檢查。這一方法是把測(cè)試對(duì)象看做一個(gè)打開(kāi)的盒子或透明的盒子,它允許測(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ì)程序模塊的所有獨(dú)立的執(zhí)行路徑
8、至少測(cè)試一次;對(duì)所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測(cè)試一次;在循環(huán)的邊界和運(yùn)行界限內(nèi)執(zhí)行循環(huán)體;測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性等。然而,對(duì)一個(gè)具有多重選擇和循環(huán)嵌套的程序,獨(dú)立的路徑數(shù)目可能是天文數(shù)字。而且即使精確地實(shí)現(xiàn)了白盒測(cè)試,也不能斷言測(cè)試過(guò)的程序完全正確。舉例來(lái)說(shuō),右圖所示的小程序流程圖,它對(duì)應(yīng)了一個(gè)有100行源代碼的PASCAL語(yǔ)言程序,其中包括了一個(gè)執(zhí)行達(dá)20次的循環(huán)。它所包含的獨(dú)立執(zhí)行路徑數(shù)高達(dá)520(=1013)條,若要對(duì)它進(jìn)行窮舉測(cè)試,即要設(shè)計(jì)測(cè)試用例,覆蓋所有的路徑。假使有這么一個(gè)測(cè)試程序,對(duì)每一條路徑進(jìn)行測(cè)試需要1毫秒,同樣假定一天工作24小時(shí),一年工作365
9、天,那么要想把如圖6-6所示的小程序的所有路徑測(cè)試完,則需要3170年。 6.1 軟件測(cè)試的基本概念 通過(guò)以上兩個(gè)例子表明,實(shí)行窮舉測(cè)試,由于工作量過(guò)大,需用的時(shí)間過(guò)長(zhǎng),實(shí)施起來(lái)是不現(xiàn)實(shí)的。既然窮舉測(cè)試不可行,就必須精心設(shè)計(jì)測(cè)試用例,從數(shù)量極大的可用測(cè)試用例中精心地挑選少量的測(cè)試數(shù)據(jù),使得采用這些測(cè)試數(shù)據(jù)能夠達(dá)到最佳的測(cè)試效果,或者說(shuō)它們能夠高效率地把隱藏的錯(cuò)誤盡可能多地揭露出來(lái)。 以上事實(shí)說(shuō)明,軟件測(cè)試有一個(gè)致命的缺陷,即測(cè)試的不完全、不徹底性。由于任何程序只能進(jìn)行少量(相對(duì)于窮舉的巨大數(shù)量而言)的有限的測(cè)試,在發(fā)現(xiàn)錯(cuò)誤時(shí)能說(shuō)明程序有問(wèn)題;但在未發(fā)現(xiàn)錯(cuò)誤時(shí),不能說(shuō)明程序中沒(méi)有錯(cuò)誤,不能說(shuō)明程
10、序中沒(méi)有問(wèn)題。6.1 軟件測(cè)試的基本概念6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)邏輯覆蓋 邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù),它屬于白盒測(cè)試。這一方法要求測(cè)試人員對(duì)程序的邏輯結(jié)構(gòu)有清楚的了解,甚至要能掌握源程序的所有細(xì)節(jié)。由于覆蓋測(cè)試的目標(biāo)不同,邏輯覆蓋又可分為語(yǔ)句覆蓋、判定覆蓋、判定條件覆蓋、條件組合覆蓋及路徑覆蓋。以下將分別做扼要的介紹。在所介紹的幾種邏輯覆蓋中,均以下圖所示的程序段為例。其中有兩個(gè)判斷,每個(gè)判斷都包含復(fù)合條件的邏輯表達(dá)式,符號(hào)“”表示“and”運(yùn)算,“”表示“or”運(yùn)算。6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)圖中所示的程序段有4條不同的路徑。為了清楚起見(jiàn),分別對(duì)第1個(gè)
11、判斷的取假分支、取真分支及第2個(gè)判斷的取假分支、取真分支命名為b、c、d、e。這樣所有4條路徑可表示為:L1(ace),L2(abd),L3(abe)和L4(acd),或簡(jiǎn)寫(xiě)為ace、abd、abe和acd。6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)語(yǔ)句覆蓋 所謂語(yǔ)句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得每一個(gè)可執(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
12、,3)】覆蓋ace【L1】 從程序中每個(gè)可執(zhí)行語(yǔ)句都得到執(zhí)行這一點(diǎn)來(lái)看,語(yǔ)句覆蓋的方 法似乎能夠比較全面地檢驗(yàn)每一個(gè)可執(zhí)行語(yǔ)句。但與后面介紹的 其他覆蓋相比,語(yǔ)句覆蓋是最弱的邏輯覆蓋準(zhǔn)則。所謂判定覆蓋就是設(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】如果選擇路徑L3和L4,還可得另一組可用的測(cè)試用例: 【(2,1,1),(2,1,2)】覆蓋abe【L3】
13、【(3,0,3),(3,1,1)】覆蓋acd【L4】所以,測(cè)試用例的取法不唯一。注意有例外情形,例如,若把圖中第2個(gè)判斷中的條件x1錯(cuò)寫(xiě)成x1,那么利用上面兩組測(cè)試用例,仍能得到同樣結(jié)果。這表明,只是判定覆蓋,還不能保證一定能查出在判斷的條件中存在的錯(cuò)誤,因此,還需要更強(qiáng)的邏輯覆蓋準(zhǔn)則檢驗(yàn)判斷內(nèi)部條件。6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)判定覆蓋 所謂條件覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,運(yùn)行被測(cè)程序,使得程序中每個(gè)判斷的每個(gè)條件的可能取值至少執(zhí)行一次。例如,在上圖所給出的例子中,我們事先可對(duì)所有條件的取值加以標(biāo)記。例如,對(duì)于第1個(gè)判斷: 條件A1取真值為T1,取假值為 條件B0取真值為T2,取假值為對(duì)于
14、第2個(gè)判斷: 條件A2取真值為T3,取假值為 條件x1取真值為T4,取假值為則可選取測(cè)試用例如下:6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)條件覆蓋 6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)注意,前一組測(cè)試用例不但覆蓋了所有判斷的取真分支和取假分支,而且覆蓋了判斷中所有條件的可能取值。后一組測(cè)試用例雖滿足了條件覆蓋,但只覆蓋了第1個(gè)判斷的取假分支和第2個(gè)判斷的取真分支,不滿足判定覆蓋的要求。為解決這一矛盾,需要對(duì)條件和分支兼顧,有必要考慮以下的判定條件覆蓋。6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)所謂判定-條件覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,使得判斷中每個(gè)條件的所有可能取值至少執(zhí)行一次,同時(shí)每個(gè)判斷本身的所有可能判斷結(jié)果至少執(zhí)行
15、一次。例如,對(duì)于圖中的各判斷,若T1,T2,T3,T4及 的含義如前所述,則只需設(shè)計(jì)以下兩個(gè)測(cè)試用例便可覆蓋圖中的8個(gè)條件取值以及4個(gè)判斷分支。 判定-條件覆蓋 6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)判定-條件覆蓋也有缺陷。從表面上來(lái)看,它測(cè)試了所有條件的取值,但是事實(shí)并非如此,因?yàn)橥承l件掩蓋了另一些條件。對(duì)于條件表達(dá)式(A1)and(B=0)來(lái)說(shuō),若(A1)的測(cè)試結(jié)果為真,則還要測(cè)試(B=0),才能決定表達(dá)式的值;而若(A1)的測(cè)試結(jié)果為假,可以立刻確定表達(dá)式的結(jié)果為假,這時(shí),往往就不再測(cè)試(B=0)的取值了,因此,條件(B=0)就沒(méi)有檢查。同樣,對(duì)于條件表達(dá)式(A=2)or(X1)來(lái)說(shuō),若(
16、A=2)的測(cè)試結(jié)果為真,就可以立即確定表達(dá)式的結(jié)果為真,這時(shí),條件(X1)就沒(méi)有檢查,因此,采用判定-條件覆蓋,邏輯表達(dá)式中的錯(cuò)誤不一定能夠查得出來(lái)。6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)為徹底地檢查所有條件的取值,可以將上圖中給出的多重條件判定分解,形成下圖所示的由多個(gè)基本判斷組成的流程圖。這樣可以有效地檢查所有的條件是否正確。6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)所謂條件組合覆蓋就是設(shè)計(jì)足夠的測(cè)試用例,運(yùn)行被測(cè)程序,使得每個(gè)判斷的所有可能的條件取值組合至少執(zhí)行一次。以上一小節(jié)給出的圖為例,先對(duì)各個(gè)判斷的條件取值組合加以標(biāo)記。例如,記A1,B=0作T1 T2,屬第1個(gè)判斷的取真分支。A1,B0作T1 ,屬第
17、1個(gè)判斷的取假分支。A1,B=0作 T2,屬第1個(gè)判斷的取假分支。A1,B0作 ,屬第1個(gè)判斷的取假分支。A=2,x1作T3 T4,屬第2個(gè)判斷的取真分支。A=2,x1作T3 ,屬第2個(gè)判斷的取真分支。條件組合覆蓋 A2,x1作 T4,屬第2個(gè)判斷的取真分支。A2,x1作 ,屬第2個(gè)判斷的取假分支。對(duì)于每個(gè)判斷,要求所有可能的條件取值的組合都必須取到。圖中每個(gè)判斷各有兩個(gè)條件,所以,各有4個(gè)條件取值的組合。取4個(gè)測(cè)試用例,可用以覆蓋上面8種條件取值的組合。必須明確,這里并未要求第1個(gè)判斷的4個(gè)組合與第2個(gè)判斷的4個(gè)組合再進(jìn)行組合。要是那樣的話,就需要42=16個(gè)測(cè)試用例了。 6.2 白盒測(cè)試的
18、測(cè)試用例設(shè)計(jì)路徑測(cè)試是設(shè)計(jì)足夠的測(cè)試用例,覆蓋程序中所有可能的路徑。若仍以最初的圖為例,則可以選擇如下的一組測(cè)試用例,覆蓋該程序段的全部路徑。 6.2 白盒測(cè)試的測(cè)試用例設(shè)計(jì)路徑測(cè)試 上節(jié)的例子是個(gè)非常簡(jiǎn)單的程序段,只有4條路徑。但在實(shí)際問(wèn)題中,一個(gè)不太復(fù)雜的程序,其路徑都是一個(gè)龐大的數(shù)字。要在測(cè)試中覆蓋這么多的路徑是不現(xiàn)實(shí)的。為解決這一難題,只得把覆蓋的路徑數(shù)壓縮到一定限度內(nèi),如程序中的循環(huán)體只執(zhí)行一次。本節(jié)所介紹的基本路徑測(cè)試就是這樣一種測(cè)試方法,它是在程序控制流圖的基礎(chǔ)上,通過(guò)分析控制構(gòu)造的環(huán)路復(fù)雜性,導(dǎo)出基本可執(zhí)行路徑集合,從而設(shè)計(jì)測(cè)試用例的方法。設(shè)計(jì)出的測(cè)試用例要保證在測(cè)試中程序的每
19、一個(gè)可執(zhí)行語(yǔ)句至少執(zhí)行一次。6.3 基本路徑測(cè)試 實(shí)施基本路徑測(cè)試需要利用程序環(huán)路復(fù)雜性計(jì)算的McCabe方法。基本路徑測(cè)試法適用于模塊的詳細(xì)設(shè)計(jì)及源程序,其主要步驟如下:(1)以詳細(xì)設(shè)計(jì)或源代碼作為基礎(chǔ),導(dǎo)出程序的控制流圖;(2)計(jì)算得到的控制流圖G的環(huán)路復(fù)雜性V(G);(3)確定線性無(wú)關(guān)的基本路徑集;(4)生成測(cè)試用例,確?;韭窂郊忻織l路徑的執(zhí)行。 下面以一個(gè)求平均值的過(guò)程averagy為例,說(shuō)明測(cè)試用例的設(shè)計(jì)過(guò)程。用PDL描述的averagy過(guò)程如下所示。 6.3 基本路徑測(cè)試6.3 基本路徑測(cè)試1. 由過(guò)程描述導(dǎo)出控制流圖 利用第五章介紹的符號(hào)和構(gòu)造規(guī)則生成控制流圖。對(duì)于以上用PD
20、L描述的averagy過(guò)程 ,對(duì)將要映射為對(duì)應(yīng)控制流圖中一個(gè)結(jié)點(diǎn)的PDL語(yǔ)句或語(yǔ)句組,加上用數(shù)字表示的標(biāo)號(hào)。加了標(biāo)號(hào)的PDL程序及對(duì)應(yīng)的控制流圖如下所示。 6.3 基本路徑測(cè)試6.3 基本路徑測(cè)試averagy過(guò)程的控制流圖 對(duì)averagy過(guò)程定義結(jié)點(diǎn) 6.3 基本路徑測(cè)試2. 由過(guò)程描述導(dǎo)出控制流圖 利用在前面給出的計(jì)算控制流圖環(huán)路復(fù)雜性的方法,算出控制流圖G的環(huán)路復(fù)雜性。如果一開(kāi)始就知道判斷結(jié)點(diǎn)的個(gè)數(shù),甚至不必畫(huà)出整個(gè)控制流圖,就可以計(jì)算出該圖的環(huán)路復(fù)雜性的值。對(duì)于以上控制流圖,可以算出: V(G)=6(區(qū)域數(shù))=5(判定結(jié)點(diǎn)數(shù))+1=63. 確定線性無(wú)關(guān)的基本路徑集 計(jì)算出的環(huán)路復(fù)雜性
21、的值,就是該圖已有的線性無(wú)關(guān)基本路徑集中路徑的數(shù)目。該圖所有的6條路徑是:path1:1-2-10-11-13path2:1-2-10-12-13path3:1-2-3-10-11-13path4:1-2-3-4-5-8-9-2path5:1-2-3-4-5-6-8-9-2path6:1-2-3-4-5-6-7-8-9-2路徑4、5、6后面的省略號(hào)()表示在控制結(jié)構(gòu)中以后剩下的路徑是可選擇的。在很多情況下,標(biāo)識(shí)判斷結(jié)點(diǎn),常常能夠有效地幫助導(dǎo)出測(cè)試用例。在上例中,結(jié)點(diǎn)2、3、5、6和10都是判斷結(jié)點(diǎn)。 6.3 基本路徑測(cè)試6.3 基本路徑測(cè)試4. 準(zhǔn)備測(cè)試用例,確保基本路徑集中的每一條路徑的執(zhí)行
22、 根據(jù)判斷結(jié)點(diǎn)給出的條件,選擇適當(dāng)?shù)臄?shù)據(jù)以保證某一條路徑可以被測(cè)試到。滿足上例基本路徑集的測(cè)試用例如下。 path1:輸入數(shù)據(jù):valuek=有效輸入,限于ki(i定義如下) valuei=999, 當(dāng)2i100 預(yù)期結(jié)果:n個(gè)值的正確的平均值、正確的總計(jì)數(shù)。 注意:不能孤立地進(jìn)行測(cè)試,應(yīng)當(dāng)作為路徑4、5、6測(cè)試的一 部分來(lái)測(cè)試。 path2:輸入數(shù)據(jù):value1=999 預(yù)期結(jié)果:平均值=999,總計(jì)數(shù)取初始值。 path3:輸入數(shù)據(jù):試圖處理101個(gè)或更多的值,而前100個(gè)應(yīng)當(dāng)是有 效的值。 預(yù)期結(jié)果:與測(cè)試用例1相同。 6.3 基本路徑測(cè)試 path4:輸入數(shù)據(jù):valuei=有效輸入
23、,且i100 valuek最小值,當(dāng)ki時(shí) 預(yù)期結(jié)果:n個(gè)值的正確的平均值,正確的總計(jì)數(shù) path5:輸入數(shù)據(jù):valuei=有效輸入,且i最大值,當(dāng)ki時(shí) 預(yù)期結(jié)果:n個(gè)值的正確的平均值,正確的總計(jì)數(shù) path6:輸入數(shù)據(jù):valuei=有效輸入,且i100 預(yù)期結(jié)果:n個(gè)值的正確的平均值,正確的總計(jì)數(shù) 每個(gè)測(cè)試用例執(zhí)行之后,與預(yù)期結(jié)果進(jìn)行比較。如果所有測(cè)試用例都執(zhí)行完畢,則可以確信程序中所有的可執(zhí)行語(yǔ)句至少被執(zhí)行了一次。但是必須注意的是,一些獨(dú)立的路徑(如此例中的路徑1),往往不是完全孤立的,有時(shí)它是程序正常的控制流的一部分,這時(shí),這些路徑的測(cè)試可以是另一條路徑測(cè)試的一部分。 5. 圖形矩
24、陣 圖形矩陣是在基本路徑測(cè)試中起輔助作用的軟件工具,利用它可以實(shí)現(xiàn)自動(dòng)地確定一個(gè)基本路徑集。一個(gè)圖形矩陣是一個(gè)方陣,其行/列數(shù)等于控制流圖中的結(jié)點(diǎn)數(shù)。每行和每列依次對(duì)應(yīng)到一個(gè)被標(biāo)識(shí)的結(jié)點(diǎn),矩陣元素對(duì)應(yīng)到結(jié)點(diǎn)間的連接(即邊)。下圖所示為一個(gè)簡(jiǎn)單的控制流圖和它所對(duì)應(yīng)的圖形矩陣。在此圖中,控制流圖的每一個(gè)結(jié)點(diǎn)都用數(shù)字加以標(biāo)識(shí),每一條邊都用字母加以標(biāo)識(shí)。如果在控制流圖中第i個(gè)結(jié)點(diǎn)到第j個(gè)結(jié)點(diǎn)有一條名為x的邊相連接,則在對(duì)應(yīng)的圖形矩陣中第i行/第j列有一個(gè)非空的元素x。 6.3 基本路徑測(cè)試在控制流圖中對(duì)每一條邊加上一個(gè)連接權(quán),圖形矩陣就成為測(cè)試過(guò)程中評(píng)價(jià)程序控制結(jié)構(gòu)的工具。連接權(quán)提供了關(guān)于控制流的附加
25、信息。最簡(jiǎn)單的情形,連接權(quán)為“1”,表示存在一個(gè)連接,或者為“0”,表示不存在一個(gè)連接。但在其他情況,連接權(quán)可以表示如下特性:連接(邊)執(zhí)行的可能性(概率)、通過(guò)一個(gè)連接需花費(fèi)的時(shí)間、在通過(guò)一個(gè)連接時(shí)所需的存儲(chǔ)、在通過(guò)一個(gè)連接時(shí)所需的資源。6.3 基本路徑測(cè)試 為了舉例說(shuō)明,用最簡(jiǎn)單的權(quán)限(0或者1)來(lái)表明連接。下圖為上圖圖形矩陣改畫(huà)后的結(jié)果。每個(gè)字母用“1”取代,表明存在一個(gè)連接。在圖中,“0”未畫(huà)出。采用這種表示時(shí),圖形矩陣稱為連接矩陣。 圖中,若一行有2個(gè)或更多的元素,則這行所代表的結(jié)點(diǎn)一定是判定結(jié)點(diǎn)。因而通過(guò)計(jì)算排列在連接矩陣右邊的算式,可以得到確定該圖環(huán)路復(fù)雜性的另一種方法。 6.3
26、 基本路徑測(cè)試等價(jià)類劃分是一種典型的黑盒測(cè)試方法,也是一種非常實(shí)用的重要測(cè)試方法,它是用來(lái)解決如何選擇適當(dāng)?shù)淖蛹蛊浔M可能多地發(fā)現(xiàn)錯(cuò)誤。使用這一方法設(shè)計(jì)測(cè)試用例要經(jīng)歷劃分等價(jià)類(列出等價(jià)類表)和選取測(cè)試用例兩步。1. 劃分等價(jià)類 所謂等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)對(duì)于揭露程序中的錯(cuò)誤都是等效的,并合理地假定:測(cè)試某等價(jià)類的代表值等價(jià)于對(duì)這一類其他值的測(cè)試。或者說(shuō),如果某個(gè)等價(jià)類中的一個(gè)數(shù)據(jù)作為測(cè)試數(shù)據(jù)進(jìn)行測(cè)試查出了錯(cuò)誤,那么使用這一等價(jià)類中的其他數(shù)6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)等價(jià)類劃分 據(jù)進(jìn)行測(cè)試也會(huì)查出同樣的錯(cuò)誤;反之,若使用某個(gè)等價(jià)類中的一個(gè)數(shù)據(jù)作為測(cè)試數(shù)據(jù)進(jìn)
27、行測(cè)試沒(méi)有查出錯(cuò)誤,則使用這個(gè)等價(jià)類中的其他數(shù)據(jù)也同樣查不出錯(cuò)誤。 等價(jià)類的劃分有兩種不同的情況。 (1)有效等價(jià)類:是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō),是合理 的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用它,可以檢 驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說(shuō)明預(yù)先規(guī)定的功能和性能。 (2)無(wú)效等價(jià)類:是指對(duì)于程序的規(guī)格說(shuō)明來(lái)說(shuō),是不合 理的、無(wú)意義的輸入數(shù)據(jù)構(gòu)成的集合。程序員主要利 用這一類測(cè)試用例檢查程序中功能和性能的實(shí)現(xiàn)是否 有不符合規(guī)格說(shuō)明要求的地方。6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)在設(shè)計(jì)測(cè)試用例時(shí),要同時(shí)考慮有效等價(jià)類和無(wú)效等價(jià)類的設(shè)計(jì)。軟件不能都只接受合理的數(shù)據(jù),還要經(jīng)受意外的考驗(yàn),檢驗(yàn)出無(wú)效的或不合理的數(shù)據(jù),這樣的軟
28、件測(cè)試才是全面的。以下結(jié)合具體實(shí)例給出幾條劃分等價(jià)類的原則。(1)如果輸入數(shù)據(jù)規(guī)定了取值范圍或值的個(gè)數(shù),則可以確 定一個(gè)有效等價(jià)類和兩個(gè)無(wú)效等價(jià)類。例如,在程序 的規(guī)格說(shuō)明中,對(duì)輸入數(shù)據(jù)有一句話: “項(xiàng)數(shù)可以從1到999” 則有效等價(jià)類是“1項(xiàng)數(shù)999”,兩個(gè)無(wú)效等價(jià)類是 “項(xiàng)數(shù)999”。在數(shù)軸上表示為6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)(2)如果規(guī)格說(shuō)明規(guī)定了數(shù)據(jù)值的集合,或者是規(guī)定了 “必須如何”的條件,這時(shí)可確定一個(gè)有效等價(jià)類和一 個(gè)無(wú)效等價(jià)類。例如,在PASCAL語(yǔ)言中對(duì)變量標(biāo)識(shí) 符規(guī)定為“以字母打頭的串”,那么所有以字母打 頭的串構(gòu)成有效等價(jià)類,而不在此集合內(nèi)(不以字母 打 頭)的串歸于無(wú)
29、效等價(jià)類。(3)如果規(guī)格說(shuō)明中規(guī)定的是一個(gè)條件數(shù)據(jù),則可確定一 個(gè)有效等價(jià)類和一個(gè)無(wú)效等價(jià)類。例如:“成人 (年滿18歲)須”,則考慮成人為一有效等價(jià)類; 未滿18歲者為無(wú)效等價(jià)類。(4)如果我們確知,已劃分的等價(jià)類中各元素在程序中的 處理方式不同,則應(yīng)將此等價(jià)類進(jìn)一步劃分成更小的 等價(jià)類。 6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)2. 確定測(cè)試用例 在確定了等價(jià)類之后,建立等價(jià)類表,列出所有劃分出的 等價(jià)類如下: 6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)再?gòu)膭澐殖龅牡葍r(jià)類中按以下原則選擇測(cè)試用例。(1)為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號(hào)。(2)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其盡可能多地覆蓋尚未被 覆蓋的有效等價(jià)類,重復(fù)
30、這一步,直到所有的有效等 價(jià)類都被覆蓋為止。(3)設(shè)計(jì)一個(gè)新的測(cè)試用例,使其僅覆蓋一個(gè)尚未被覆蓋 的無(wú)效等價(jià)類,重復(fù)這一步,直到所有的無(wú)效等價(jià)類 都被覆蓋為止。上述原則中,(2)完全是為了把測(cè)試工作量減到最小,(3)則可把多個(gè)錯(cuò)誤分開(kāi)。例如,學(xué)校領(lǐng)導(dǎo)分為校長(zhǎng)、副校長(zhǎng)、書(shū)記、副書(shū)記,年齡(AGE)在25AGE75。若給出一個(gè)無(wú)效等價(jià)類的測(cè)試用例為(婦聯(lián)主任,5歲),它覆蓋了兩個(gè)錯(cuò)誤的輸入條件(職務(wù),年齡),但當(dāng)程序檢查到職務(wù)時(shí)發(fā)現(xiàn)了錯(cuò)誤,就可能不再去檢查年齡錯(cuò)誤,因此必須針對(duì)每一個(gè)無(wú)效等價(jià)類,分別設(shè)計(jì)測(cè)試用例。 6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)3. 用等價(jià)類劃分法設(shè)計(jì)
31、測(cè)試用例的實(shí)例 在某一PASCAL語(yǔ)言版本中規(guī)定:“標(biāo)識(shí)符是由字母開(kāi)頭、后跟字母或數(shù)字的任意組合構(gòu)成。有效字符數(shù)為8個(gè),最大字符數(shù)為80個(gè)?!辈⑶乙?guī)定:“標(biāo)識(shí)符必須先說(shuō)明,再使用?!薄霸谕徽f(shuō)明語(yǔ)句中,標(biāo)識(shí)符至少必須有一個(gè)。” 為用等價(jià)類劃分的方法得到上述規(guī)格說(shuō)明所規(guī)定的要求,本著前述的劃分原則,建立輸入等價(jià)類表,如下表所示(表中括號(hào)中的數(shù)字為等價(jià)類編號(hào))。 下面選取了8個(gè)測(cè)試用例,它們覆蓋了所有的等價(jià)類。 VAR x,T1234567:REAL; (1)(2)(4)(7)(8)(11) (13) BEGIN x:=3.414;T1234567:=2.732; VAR :REAL; (3) V
32、AR x,:REAL; (5) VAR T12345:REAL; (6)多于80個(gè)字符 VAR T $:CHAR; (9) VAR GOTO:INTEGER; (10) VAR 2T:REAL; (12) VAR PAR:REAL; (14) BEGIN PAP:=SIN(3.14*0.8)/6; 6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)邊界值分析 1. 邊界值分析方法的考慮 邊界值分析也是一種黑盒測(cè)試方法,是對(duì)等價(jià)類劃分方法的補(bǔ)充。人們從長(zhǎng)期的測(cè)試工作經(jīng)驗(yàn)中得知,大量的錯(cuò)誤是發(fā)生在輸入或輸出范圍的邊界上,而不是在輸入范圍的內(nèi)部,因此,針對(duì)各種邊界情況設(shè)計(jì)測(cè)試用例,可以查出
33、許多容易發(fā)生的錯(cuò)誤。這里所說(shuō)的邊界是指,相當(dāng)于輸入等價(jià)類和輸出等價(jià)類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。 使用邊界值分析方法設(shè)計(jì)測(cè)試用例,首先應(yīng)分析邊界情況。通常輸入等價(jià)類與輸出等價(jià)類的邊界是需要認(rèn)真考慮的。應(yīng)當(dāng)選取正好等于、剛剛大于或剛剛小于邊界的值作為測(cè)試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測(cè)試數(shù)據(jù)。6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)2. 選擇測(cè)試用例的原則 (1)如果輸入數(shù)據(jù)規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個(gè)范圍的邊界 的值,以及剛剛超越這個(gè)范圍邊界的值作為測(cè)試輸入數(shù)據(jù)。例如, 若輸入值的范圍是“1.01.0”,則可選取“1.0”,“1.0”, “1.001”,“1.0
34、01”作為測(cè)試輸入數(shù)據(jù)。 (2)如果輸入數(shù)據(jù)規(guī)定了值的個(gè)數(shù),則用最大個(gè)數(shù)、最小個(gè)數(shù)、比 最大個(gè)數(shù)多1、比最小個(gè)數(shù)少1的數(shù)作為測(cè)試數(shù)據(jù)。例如,一個(gè)輸入 文件有1255個(gè)記錄,設(shè)計(jì)測(cè)試用例時(shí)則可以分別設(shè)計(jì)有1個(gè)記 錄、255個(gè)記錄以及0個(gè)記錄和256個(gè)記錄的輸入文件。 (3)根據(jù)規(guī)格說(shuō)明的每個(gè)輸出數(shù)據(jù),使用前面的原則(1)。例 如,某程序的功能是計(jì)算折扣量,最低折扣量是0元,最高折扣量 是1050元,則設(shè)計(jì)一些測(cè)試用例,使它們恰好產(chǎn)生0元和1050元 的結(jié)果。此外,還可考慮設(shè)計(jì)結(jié)果為負(fù)值或大于1050元的測(cè)試用 例。由于輸入值的邊界不與輸出值的邊界相對(duì)應(yīng),所以要檢查輸出 值的邊界不一定可能,要產(chǎn)生
35、超出輸出值值域之外的結(jié)果也不一定辦得到。盡管如此,必要時(shí)還需一試。(4)根據(jù)規(guī)格說(shuō)明的每個(gè)輸出數(shù)據(jù),使用前面的原則(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è)試用例。(6)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),則應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為測(cè)試用例。例如,如果程序中定義了一個(gè)數(shù)組,其元素下標(biāo)的下界是0,上
36、界是100,那么應(yīng)選擇達(dá)到這個(gè)數(shù)組下標(biāo)邊界的值,如0與100,作為測(cè)試用例。(7)分析規(guī)格說(shuō)明,找出其他可能的邊界條件。 6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)3. 應(yīng)用邊界值分析方法設(shè)計(jì)測(cè)試用例的實(shí)例 假如一個(gè)為學(xué)生標(biāo)準(zhǔn)化考試批閱試卷、產(chǎn)生成績(jī)報(bào)告的程序,程序的輸入文件由一些有80個(gè)字符的記錄(卡片)組成。輸入數(shù)據(jù)記錄格式如右圖所示。 把以上所有記錄分為3組:(1)標(biāo)題。這一組只有一個(gè)記錄,其內(nèi)容是成績(jī)報(bào)告的名字。(2)各題的標(biāo)準(zhǔn)答案。每個(gè)記錄均在第80個(gè)字符處標(biāo)以數(shù)字“2”。該組 的第1個(gè)記錄的第13個(gè)字符為試題數(shù)(取值為1999)。第 1059個(gè)字符給出第150題的
37、標(biāo)準(zhǔn)答案(每個(gè)合法字符表示一個(gè) 答案)。該組的第2、第3個(gè)記錄相應(yīng)為第51100題、第 101150題題的標(biāo)準(zhǔn)答案。(3)學(xué)生的答卷。每個(gè)記錄均在第80個(gè)字符處標(biāo)以數(shù)字“3”,每個(gè)學(xué)生 的答卷在若干個(gè)記錄中給出。例如,某甲的首記錄第19個(gè)字符 給出學(xué)生的學(xué)號(hào),第1059個(gè)字符列出的是某甲所作的第150題 的解答。若試題數(shù)超過(guò)50,則其第2、第3個(gè)記錄分別給出的 第51100題、第101150題的解答。然后是某乙的答卷記 錄。學(xué)生人數(shù)不超過(guò)200人,試題個(gè)數(shù)不超過(guò)999。程序的輸出有4 個(gè)報(bào)告。 6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì) 按學(xué)號(hào)排列的成績(jī)單,列出每個(gè)學(xué)生的成績(jī)(百分制)、名次。 按學(xué)生成績(jī)
38、排序的成績(jī)單。 平均分?jǐn)?shù)及標(biāo)準(zhǔn)偏差的報(bào)告。 試題分析報(bào)告。按試題號(hào)排列,列出各題學(xué)生答對(duì)的百分比。下面分別考慮輸入數(shù)據(jù)和輸出數(shù)據(jù),以及邊界條件,選擇測(cè)試用例。 6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì)6.4 黑盒測(cè)試的測(cè)試用例設(shè)計(jì) 通常軟件測(cè)試過(guò)程按4個(gè)步驟進(jìn)行,即單元測(cè)試、組裝測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試。如下圖所示。6.5 軟件測(cè)試的策略單元測(cè)試(unit testing)又稱模塊測(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è)試用例。多個(gè)模塊可以平行地獨(dú)立進(jìn)行單元測(cè)試。1單元測(cè)試的內(nèi)容單元測(cè)試主要采用白
39、盒測(cè)試方法設(shè)計(jì)測(cè)試用例,輔之以黑盒測(cè)試的測(cè)試用例,使之對(duì)任何合理的輸入和不合理的輸入,都能鑒別和響應(yīng)。在單元測(cè)試中進(jìn)行的測(cè)試工作如下圖所示,需要在5個(gè)方面對(duì)被測(cè)模塊進(jìn)行檢查。 6.5 軟件測(cè)試的策略單元測(cè)試 (1)模塊接口測(cè)試。在單元測(cè)試的開(kāi)始,應(yīng)對(duì)通過(guò)被測(cè)模塊的數(shù) 據(jù)流進(jìn)行測(cè)試。對(duì)模塊接口可能需要如下的測(cè)試項(xiàng)目:調(diào)用本模塊時(shí)的輸入?yún)?shù)與模塊的形式參數(shù)的匹配情況;本模塊調(diào)用子模塊時(shí),它輸入給子模塊的參數(shù)與子模塊中的形式參數(shù)的匹配情況;是否修改了只作輸入用的形式參數(shù);全局量的定義在各模塊中是否一致;限制是否通過(guò)形式參數(shù)來(lái)傳送。6.5 軟件測(cè)試的策略(2)局部數(shù)據(jù)結(jié)構(gòu)測(cè)試。模塊的局部數(shù)據(jù)結(jié)構(gòu)是最常
40、見(jiàn)的錯(cuò)誤來(lái)源,應(yīng)設(shè)計(jì)測(cè)試用例以檢查以下各種錯(cuò)誤:不正確或不一致的數(shù)據(jù)類型說(shuō)明;使用尚未賦值或尚未初始化的變量;錯(cuò)誤的初始值或錯(cuò)誤的默認(rèn)值;變量名拼寫(xiě)錯(cuò);不一致的數(shù)據(jù)類型。可能的話,除局部數(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ò)誤。6.5 軟件測(cè)試的策略(4)錯(cuò)誤處理測(cè)試。比較完善的模塊設(shè)計(jì)要求能預(yù)見(jiàn)出錯(cuò)的條件,并設(shè)置適當(dāng)?shù)某鲥e(cuò)處理,以便在一旦程序出錯(cuò)時(shí),能對(duì)出錯(cuò)程序重作安排,保證其邏輯上的正確性。若出
41、現(xiàn)下列情況之一,則表明模塊的錯(cuò)誤處理功能包含有錯(cuò)誤或缺陷:出錯(cuò)的描述難以理解;出錯(cuò)的描述不足以對(duì)錯(cuò)誤定義,不足以確定出錯(cuò)的原因;顯示的錯(cuò)誤與實(shí)際的錯(cuò)誤不符;對(duì)錯(cuò)誤條件的處理不正確;在對(duì)錯(cuò)誤進(jìn)行處理之前,錯(cuò)誤條件已經(jīng)引起系統(tǒng)的干預(yù)等。(5)邊界測(cè)試。在邊界上出現(xiàn)錯(cuò)誤是常見(jiàn)的, 要特別注意數(shù)據(jù)流、控制流中剛好等于、大于或小于確定的比較值時(shí)出錯(cuò)的可能性,對(duì)這些地方要仔細(xì)地選擇測(cè)試用例,認(rèn)真加以測(cè)試。 6.5 軟件測(cè)試的策略2. 單元測(cè)試的步驟 通常單元測(cè)試是在編碼階段進(jìn)行的。在源程序代碼編制完成,經(jīng)過(guò)評(píng)審和驗(yàn)證,肯定沒(méi)有語(yǔ)法錯(cuò)誤之后,就開(kāi)始進(jìn)行單元測(cè)試的測(cè)試用例設(shè)計(jì)。 模塊并不是一個(gè)獨(dú)立的程序,在考
42、慮測(cè)試模塊時(shí),同時(shí)要考慮它和外界的聯(lián)系,用一些輔助模塊去模擬與被測(cè)模塊相聯(lián)系的其他模塊。這些輔助模塊分為如下兩種。 (1)驅(qū)動(dòng)模塊(driver)相當(dāng)于被測(cè)模塊的主程序,它接收測(cè)試數(shù)據(jù),并把這些數(shù)據(jù)傳送給被測(cè)模塊,最后再輸出實(shí)測(cè)結(jié)果。 6.5 軟件測(cè)試的策略(2)樁模塊(stub)也叫做存根模塊,用以代替被測(cè)模塊調(diào)用的子模塊。樁模塊可以做少量的數(shù)據(jù)操作,不需要把子模塊所有功能都帶進(jìn)來(lái),但不允許什么事情也不做。被測(cè)模塊、與它相關(guān)的驅(qū)動(dòng)模塊及樁模塊共同構(gòu)成了一個(gè)“測(cè)試環(huán)境”,如下圖所示。 6.5 軟件測(cè)試的策略組裝測(cè)試(integrated testing)也叫做集成測(cè)試或聯(lián)合測(cè)試。通常,在單元測(cè)
43、試的基礎(chǔ)上,需要將所有模塊按照設(shè)計(jì)要求組裝成為系統(tǒng),把模塊組裝為系統(tǒng)的方式有兩種:一次性組裝方式(big bang)和增值式組裝方式。1一次性組裝方式它是一種非增值式組裝方式,也叫做整體拼裝。使用這種方式,首先對(duì)每個(gè)模塊分別進(jìn)行模塊測(cè)試,然后再把所有模塊組裝在一起進(jìn)行測(cè)試,最終得到要求的軟件系統(tǒng)。例如,有一個(gè)模塊系統(tǒng)結(jié)構(gòu),如下圖(a)所示,其單元測(cè)試和組裝順序(b)所示。 6.5 軟件測(cè)試的策略組裝測(cè)試 上圖中,模塊d1,d2,d3,d4,d5是對(duì)各個(gè)模塊作單元測(cè)試時(shí)建立的驅(qū)動(dòng)模塊,s1,s2,s3,s4,s5是為單元測(cè)試而建立的樁模塊。這種一次性組裝方式試圖在輔助模塊的協(xié)助下,在分別完成模塊
44、單元測(cè)試的基礎(chǔ)上,將被測(cè)模塊連接起來(lái)進(jìn)行測(cè)試。但是,由于程序中不可避免地存在涉及模塊間接口、全局?jǐn)?shù)據(jù)結(jié)構(gòu)等方面的問(wèn)題,所以一次試運(yùn)行成功的可能性不很大。 6.5 軟件測(cè)試的策略2. 增值式組裝方式 這種組裝方式又稱漸增式組裝,首先是對(duì)一個(gè)個(gè)模塊進(jìn)行模塊測(cè)試,然后將這些模塊逐步組裝成較大的系統(tǒng),在組裝的過(guò)程中邊連接邊測(cè)試,以發(fā)現(xiàn)連接過(guò)程中產(chǎn)生的問(wèn)題。最后通過(guò)增值逐步組裝成為要求的軟件系統(tǒng)。增值組裝有以下3種做法。(1)自頂向下的增值方式。這種組裝方式是將模塊按系統(tǒng)程序結(jié)構(gòu),沿控制層次自頂向下進(jìn)行組裝,其步驟如下: 以主模塊為被測(cè)模塊兼驅(qū)動(dòng)模塊,所有直屬于主模塊 的下屬模塊全部用樁模塊代替,對(duì)主模
45、塊進(jìn)行測(cè)試。6.5 軟件測(cè)試的策略 采用深度優(yōu)先(如下圖)或?qū)挾葍?yōu)先的策略,逐步用實(shí)際模塊替換已用過(guò)的樁模塊,再用新的樁模塊代替它們的直接下屬模塊,與已測(cè)試的模塊或子系統(tǒng)組裝成新的子系統(tǒng)。 6.5 軟件測(cè)試的策略 進(jìn)行回歸測(cè)試(即重新執(zhí)行以前做過(guò)的全部測(cè)試或部分測(cè)試),排除組裝過(guò)程中引入新的錯(cuò)誤的可能。 判斷是否所有的模塊都已組裝到系統(tǒng)中,若是則結(jié)束測(cè)試,否則轉(zhuǎn)到去執(zhí)行。 自頂向下的組裝和測(cè)試存在一個(gè)邏輯次序問(wèn)題。在為了充分測(cè)試較高層的處理而需要較低層處理的信息時(shí),就會(huì)出現(xiàn)這類問(wèn)題。在自頂向下組裝階段,還需要用樁模塊代替較低層的模塊,根據(jù)不同情況,樁模塊的編寫(xiě),可能如下所示的幾種選擇。 6.5
46、 軟件測(cè)試的策略 為了能夠準(zhǔn)確地實(shí)施測(cè)試,應(yīng)當(dāng)讓樁模塊正確而有效地模擬子模塊的功能和合理的接口,不能是只包含返回語(yǔ)句或只顯示該模塊已調(diào)用信息,不執(zhí)行任何功能的啞模塊。6.5 軟件測(cè)試的策略(2)自底向上的增值方式。這種組裝方式是從程序模塊結(jié)構(gòu)的最底層的模塊開(kāi)始組裝和測(cè)試。因?yàn)槟K是自底向上進(jìn)行組裝,對(duì)于一個(gè)給定層次的模塊,它的子模塊(包括子模塊的所有下屬模塊)已經(jīng)組裝并測(cè)試完成,所以不再需要樁模塊。在模塊的測(cè)試過(guò)程中需要從子模塊得到的信息可以由直接運(yùn)行子模塊得到。 自底向上增值的步驟如下: 由驅(qū)動(dòng)模塊控制最底層模塊的并行測(cè)試;也可以把最底層模塊組合成實(shí)現(xiàn)某一特定軟件功能的簇,由驅(qū)動(dòng)模塊控制它進(jìn)
47、行測(cè)試。 用實(shí)際模塊代替驅(qū)動(dòng)模塊,與它已測(cè)試的直屬子模塊組裝成為子系統(tǒng)。 6.5 軟件測(cè)試的策略 為子系統(tǒng)配備驅(qū)動(dòng)模塊,進(jìn)行新的測(cè)試。 判斷是否已組裝到達(dá)主模塊。若是則結(jié)束測(cè)試,否則執(zhí)行。 自底向上進(jìn)行組裝和測(cè)試時(shí),需要為被測(cè)模塊或子系統(tǒng)編制相應(yīng)的驅(qū)動(dòng)模塊。常見(jiàn)的幾種類型的驅(qū)動(dòng)模塊如下圖所示。 6.5 軟件測(cè)試的策略(3)混合增值式測(cè)試。自頂向下增值的方式和自底向上增值的方式各有優(yōu)缺點(diǎn)。自頂向下增值方式的缺點(diǎn)是需要建立樁模塊。自底向上增值方式的缺點(diǎn)是“程序一直未能作為一個(gè)實(shí)體存在,直到最后一個(gè)模塊加上去后才形成一個(gè)實(shí)體”。也就是說(shuō),在自底向上組裝和測(cè)試的過(guò)程中,對(duì)主要的控制直到最后才接觸到。
48、鑒于此,通常是把以上兩種方式結(jié)合起來(lái)進(jìn)行組裝和測(cè)試。下面簡(jiǎn)單介紹3種常見(jiàn)的綜合增值方式測(cè)試。 衍變的自頂向下的增值測(cè)試:它的基本思想是強(qiáng)化對(duì)輸入/輸出模塊和引入新算法模塊的測(cè)試,并自底向上組裝成為功能相當(dāng)完整且相對(duì)獨(dú)立的子系統(tǒng),然后由主模塊開(kāi)始自頂向下進(jìn)行增值測(cè)試。6.5 軟件測(cè)試的策略 自底向上自頂向下的增值測(cè)試:它首先對(duì)含讀操作的子系統(tǒng)自底向上直至根結(jié)點(diǎn)模塊進(jìn)行組裝和測(cè)試,然后對(duì)含寫(xiě)操作的子系統(tǒng)作自頂向下的組裝與測(cè)試。 回歸測(cè)試:這種方式采取自頂向下的方式測(cè)試被修改的模塊及其子模塊,然后將這一部分視為子系統(tǒng),再自底向上測(cè)試,以檢查該子系統(tǒng)與其上級(jí)模塊的接口是否適配。3組裝測(cè)試的組織和實(shí)施
49、組裝測(cè)試是一種正規(guī)測(cè)試過(guò)程,必須精心計(jì)劃,并與單元測(cè)試的完成時(shí)間協(xié)調(diào)起來(lái)。在制定測(cè)試計(jì)劃時(shí),應(yīng)考慮如下因素:(1)采用何種系統(tǒng)組裝方法進(jìn)行組裝測(cè)試。(2)組裝測(cè)試過(guò)程中連接各個(gè)模塊的順序。 6.5 軟件測(cè)試的策略(3)模塊代碼編制和測(cè)試進(jìn)度是否與組裝測(cè)試的順序一 致。(4)測(cè)試過(guò)程中是否需要專門的硬件設(shè)備。 解決了上述問(wèn)題之后,就可以列出各個(gè)模塊的編制、測(cè)試計(jì)劃表,標(biāo)明每個(gè)模塊單元測(cè)試完成的日期、首次組裝測(cè)試的日期、組裝測(cè)試全部完成的日期,以及需要的測(cè)試用例和所期望的測(cè)試結(jié)果。 在完成預(yù)定的組裝測(cè)試工作之后,測(cè)試小組應(yīng)負(fù)責(zé)對(duì)測(cè)試結(jié)果進(jìn)行整理、分析,形成測(cè)試報(bào)告。測(cè)試報(bào)告中要記錄實(shí)際的測(cè)試結(jié)果,
50、在測(cè)試中發(fā)現(xiàn)的問(wèn)題,解決這些問(wèn)題的方法以及解決之后再次測(cè)試的結(jié)果。此外,還應(yīng)提出目前不能解決、還需要管理人員和開(kāi)發(fā)人員注意的一些問(wèn)題,提供測(cè)試評(píng)審和最終決策,以提出處理意見(jiàn)。 6.5 軟件測(cè)試的策略確認(rèn)測(cè)試(validation testing)又稱有效性測(cè)試。它的任務(wù)是驗(yàn)證軟件的有效性,即驗(yàn)證軟件的功能和性能及其他特性是否與用戶的要求一致。在確認(rèn)測(cè)試階段需要做的工作如下圖所示。 6.5 軟件測(cè)試的策略確認(rèn)測(cè)試 從上圖中可看出,首先要進(jìn)行有效性測(cè)試以及軟件配置復(fù)審,然后進(jìn)行驗(yàn)收測(cè)試和安裝測(cè)試,在通過(guò)了專家鑒定之后,才能成為可交付的軟件。1進(jìn)行有效性測(cè)試(黑盒測(cè)試)有效性測(cè)試是在模擬的環(huán)境(可能
51、就是開(kāi)發(fā)的環(huán)境)下,運(yùn)用黑盒測(cè)試的方法,驗(yàn)證被測(cè)軟件是否滿足需求規(guī)格說(shuō)明書(shū)列出的需求。為此,需要首先制訂測(cè)試計(jì)劃,規(guī)定要進(jìn)行測(cè)試的種類。還需要制訂一組測(cè)試步驟,描述具體的測(cè)試用例。通過(guò)實(shí)施預(yù)定的測(cè)試計(jì)劃和測(cè)試步驟,確定軟件的特性是否與需求相符,確保所有的軟件功能需求都能得到滿足,所有的軟件性能需求都能達(dá)到,所有的文檔都正確且便于使用。同時(shí),對(duì)其他軟件需求,如可移植性、兼容性、出錯(cuò)自動(dòng)恢復(fù)、可維護(hù)性等,也都要進(jìn)行測(cè)試,確認(rèn)是否滿足。 6.5 軟件測(cè)試的策略2軟件配置復(fù)查 軟件配置復(fù)查的目的是保證軟件配置的所有成分都齊全,各方面的質(zhì)量都符合要求,具有維護(hù)階段所必須的細(xì)節(jié),而且已經(jīng)編排好分類的目錄。
52、 除了按合同規(guī)定的內(nèi)容和要求,由人工審查軟件配置之外,在確認(rèn)測(cè)試的過(guò)程中,應(yīng)當(dāng)嚴(yán)格遵守用戶手冊(cè)和操作手冊(cè)中規(guī)定的使用步驟,以便檢查這些文檔資料的完整性和正確性。必須仔細(xì)記錄發(fā)現(xiàn)的遺漏和錯(cuò)誤,并且適當(dāng)?shù)匮a(bǔ)充和改正。 6.5 軟件測(cè)試的策略3測(cè)試和測(cè)試 在軟件交付使用之后,用戶將如何實(shí)際使用程序,對(duì)于開(kāi)發(fā)者來(lái)說(shuō)是無(wú)法預(yù)測(cè)的。如果軟件是為多個(gè)用戶開(kāi)發(fā)的產(chǎn)品,讓每個(gè)用戶逐個(gè)執(zhí)行正式的驗(yàn)收測(cè)試是不切實(shí)際的。很多軟件產(chǎn)品生產(chǎn)者采用一種稱之為測(cè)試和測(cè)試的測(cè)試方法,以發(fā)現(xiàn)可能只有最終用戶才能發(fā)現(xiàn)的錯(cuò)誤。 測(cè)試是由一個(gè)用戶在開(kāi)發(fā)環(huán)境下進(jìn)行的測(cè)試,也可以是公司內(nèi)部的用戶在模擬實(shí)際操作環(huán)境下進(jìn)行的測(cè)試。軟件在一個(gè)自
53、然設(shè)置狀態(tài)下使用,開(kāi)發(fā)者坐在用戶旁邊,隨時(shí)記下錯(cuò)誤情況和使用中的問(wèn)題。 測(cè)試的目的是評(píng)價(jià)軟件產(chǎn)品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持),尤其注重產(chǎn)品的界面和特色。 6.5 軟件測(cè)試的策略 測(cè)試是由軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際使用環(huán)境下進(jìn)行的測(cè)試。這些用戶是與公司簽定了支持產(chǎn)品預(yù)發(fā)行合同的外部客戶。與測(cè)試不同的是,開(kāi)發(fā)者通常不在測(cè)試現(xiàn)場(chǎng),由用戶記下遇到的所有問(wèn)題。開(kāi)發(fā)者在綜合用戶的報(bào)告之后進(jìn)行修改,最后將軟件產(chǎn)品交付給全體用戶使用。測(cè)試主要衡量產(chǎn)品的FLURPS,著重于產(chǎn)品的支持性,包括文檔、客戶培訓(xùn)和支持產(chǎn)品生產(chǎn)能力。只有當(dāng)測(cè)試達(dá)到一定的可靠程度時(shí),才能開(kāi)始測(cè)試
54、。 由于測(cè)試的主要目標(biāo)是測(cè)試可支持性,所以測(cè)試應(yīng)盡可能由主持產(chǎn)品發(fā)行的人員管理。 6.5 軟件測(cè)試的策略4驗(yàn)收測(cè)試 在通過(guò)了系統(tǒng)的有效性測(cè)試及軟件配置審查之后,應(yīng)開(kāi)始系統(tǒng)的驗(yàn)收測(cè)試(acceptance testing)。驗(yàn)收測(cè)試是以用戶為主的測(cè)試,軟件開(kāi)發(fā)人員和QA(質(zhì)量保證)人員也應(yīng)參加。由用戶參加設(shè)計(jì)測(cè)試用例,使用用戶界面輸入測(cè)試數(shù)據(jù),并分析測(cè)試的輸出結(jié)果。一般使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試,在測(cè)試過(guò)程中,除了考慮軟件的功能和性能外,還應(yīng)對(duì)軟件的可移植性、兼容性、可維護(hù)性、錯(cuò)誤的恢復(fù)功能等進(jìn)行確認(rèn)。 6.5 軟件測(cè)試的策略5確認(rèn)測(cè)試的結(jié)果 在全部確認(rèn)測(cè)試的測(cè)試用例運(yùn)行完后,所有的測(cè)試結(jié)果可
55、以分為兩類。(1)測(cè)試結(jié)果與預(yù)期的結(jié)果相符,這說(shuō)明軟件的這部分功能或性能特征與需求規(guī)格說(shuō)明書(shū)相符合,從而這部分程序可以接受。(2)測(cè)試結(jié)果與預(yù)期的結(jié)果不符,這說(shuō)明軟件的這部分功能或性能特征與需求規(guī)格說(shuō)明不一致,因此,需要開(kāi)列一張軟件各項(xiàng)缺陷表或軟件問(wèn)題報(bào)告,通過(guò)與用戶的協(xié)商,解決所發(fā)現(xiàn)的缺陷和錯(cuò)誤。 6.5 軟件測(cè)試的策略 系統(tǒng)測(cè)試(system testing)是將通過(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)的需求定義
56、作比較,發(fā)現(xiàn)軟件與系統(tǒng)定義不符合或與之矛盾的地方。系統(tǒng)測(cè)試的測(cè)試用例應(yīng)根據(jù)系統(tǒng)的需求分析說(shuō)明書(shū)設(shè)計(jì),并在實(shí)際使用環(huán)境下運(yùn)行。6.5 軟件測(cè)試的策略系統(tǒng)測(cè)試軟件測(cè)試實(shí)際上是由一系列不同的測(cè)試組成。幾種常見(jiàn)的軟件測(cè)試及它們與各個(gè)測(cè)試步驟中的關(guān)系如右圖所示。6.5 軟件測(cè)試的策略測(cè)試的類型上圖中各類測(cè)試的定義如下:(1)功能測(cè)試(function testing):功能測(cè)試是在規(guī)定的一段時(shí)間內(nèi)運(yùn)行軟件系統(tǒng)的所有功能,以驗(yàn)證這個(gè)軟件系統(tǒng)有無(wú)嚴(yán)重錯(cuò)誤。(2)回歸測(cè)試(regression testing):這種測(cè)試用于驗(yàn)證對(duì)軟件修改后有沒(méi)有引出新的錯(cuò)誤,或者說(shuō),驗(yàn)證修改后的軟件是否仍然滿足系統(tǒng)的需求規(guī)格
57、說(shuō)明。(3)可靠性測(cè)試(reliability testing):如果系統(tǒng)需求說(shuō)明書(shū)中有對(duì)可靠性的要求,則需進(jìn)行可靠性測(cè)試。通常使用平均失效間隔時(shí)間(MTBF)與因故障而停機(jī)的時(shí)間(MTTR)來(lái)度量系統(tǒng)的可靠性。 6.5 軟件測(cè)試的策略(4)強(qiáng)度測(cè)試(stress testing):也稱壓力測(cè)試,是要檢查在系統(tǒng)運(yùn)行環(huán)境惡劣的情況下,系統(tǒng)可以運(yùn)行到何種程度的測(cè)試。因此,進(jìn)行強(qiáng)度測(cè)試,需要提供非正常數(shù)量、頻率或總量資源來(lái)運(yùn)行系統(tǒng)。實(shí)際上,這是對(duì)軟件的“超負(fù)荷”環(huán)境或臨界環(huán)境的運(yùn)行檢驗(yàn)。 (5)性能測(cè)試(performance testing):是要檢查系統(tǒng)是否滿足在需求說(shuō)明書(shū)中規(guī)定的性能。特別是對(duì)
58、于實(shí)時(shí)系統(tǒng)或嵌入式系統(tǒng),軟件只滿足要求的功能而達(dá)不到要求的性能是不可接受的,所以還需要進(jìn)行性能測(cè)試。(6)恢復(fù)測(cè)試(recovery testing):恢復(fù)測(cè)試是要證實(shí)在克服硬件故障(包括掉電、硬件或網(wǎng)絡(luò)出錯(cuò)等)后,系統(tǒng)能否正常地繼續(xù)進(jìn)行工作,并不對(duì)系統(tǒng)造成任何損害。 6.5 軟件測(cè)試的策略(7)啟動(dòng)/停止測(cè)試(startup/shutdown testing):這類測(cè)試的目的是驗(yàn)證在機(jī)器啟動(dòng)及關(guān)機(jī)階段,軟件系統(tǒng)正確處理的能力。包括反復(fù)啟動(dòng)軟件系統(tǒng)(例如,操作系統(tǒng)自舉、網(wǎng)絡(luò)的啟動(dòng)、應(yīng)用程序的調(diào)用等),以及在盡可能多的情況下關(guān)機(jī)。(8)配置測(cè)試(configuration testing):這類
59、測(cè)試是要檢查計(jì)算機(jī)系統(tǒng)內(nèi)各個(gè)設(shè)備或各種資源之間的相互連接和功能分配中的錯(cuò)誤。配置測(cè)試主要包括以下3種。 配置命令測(cè)試:驗(yàn)證全部配置命令的可操作性(有效 性);特別對(duì)最大配置和最小配置要進(jìn)行測(cè)試。軟件配置 和硬件配置都要測(cè)試。6.5 軟件測(cè)試的策略 循環(huán)配置測(cè)試:證明對(duì)每個(gè)設(shè)備物理與邏輯的、邏輯 與功能的每次循環(huán)置換配置都能正常工作。 修復(fù)測(cè)試:檢查每種配置狀態(tài)及哪個(gè)設(shè)備是壞的,并 用自動(dòng)的或手工的方式進(jìn)行配置狀態(tài)間的轉(zhuǎn)換。(9)安全性測(cè)試(security testing):檢驗(yàn)在系統(tǒng)中已經(jīng)存在的系統(tǒng)安全性和保密性措施是否發(fā)揮作用,有無(wú)漏洞。為此要了解破壞安全性的方法和工具,并設(shè)計(jì)一些模擬測(cè)試
60、用例對(duì)系統(tǒng)進(jìn)行測(cè)試,力圖破壞系統(tǒng)的保護(hù)機(jī)構(gòu)以進(jìn)入系統(tǒng)。(10)可使用性測(cè)試(usability testing):可使用性測(cè)試主要從使用的合理性、方便性等角度對(duì)軟件系統(tǒng)進(jìn)行檢查,以發(fā)現(xiàn)人為因素或使用上的問(wèn)題。 6.5 軟件測(cè)試的策略(11)可支持性測(cè)試(supportability testing):驗(yàn)證系統(tǒng)的支持策略對(duì)于公司與用戶方面是否切實(shí)可行。它所采用的方法是試運(yùn)行支持過(guò)程(如對(duì)有錯(cuò)部分打補(bǔ)丁的過(guò)程,熱線界面等),對(duì)其結(jié)果進(jìn)行質(zhì)量分析,評(píng)審診斷工具、維護(hù)過(guò)程、內(nèi)部維護(hù)文檔;衡量修復(fù)一個(gè)明顯錯(cuò)誤所需的平均最少時(shí)間。還有一種常用的方法是,在發(fā)行前把產(chǎn)品交給用戶,向用戶提供支持服務(wù)的計(jì)劃,從用
溫馨提示
- 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-2030年中國(guó)酒杯(酒具)市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及投資前景規(guī)劃研究報(bào)告
- 2025-2030年中國(guó)西樂(lè)器制造市場(chǎng)發(fā)展?fàn)顩r及前景趨勢(shì)分析報(bào)告
- 岳西事業(yè)編招聘年考試真題及答案解析事業(yè)單位真題
- 長(zhǎng)江大學(xué)文理學(xué)院《區(qū)域分析方法計(jì)量地理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025甘肅省建筑安全員《A證》考試題庫(kù)及答案
- 常州工程職業(yè)技術(shù)學(xué)院《化工環(huán)保與安全概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊城市經(jīng)濟(jì)職業(yè)學(xué)院《第二語(yǔ)言教學(xué)法》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南安全技術(shù)職業(yè)學(xué)院《商業(yè)倫理與會(huì)計(jì)職業(yè)操守》2023-2024學(xué)年第二學(xué)期期末試卷
- 汕頭大學(xué)《財(cái)政與金融》2023-2024學(xué)年第二學(xué)期期末試卷
- 浙江師范大學(xué)行知學(xué)院《公共部門績(jī)效評(píng)估》2023-2024學(xué)年第二學(xué)期期末試卷
- 《豐收之歌》精選教學(xué)課件
- 【青島版《科學(xué)》】四年級(jí)下冊(cè)第一單元1 《運(yùn)動(dòng)與力》 教學(xué)設(shè)計(jì)
- 2022春蘇教版五年級(jí)下冊(cè)科學(xué)全冊(cè)單元課件全套
- 小學(xué)期末班級(jí)頒獎(jiǎng)典禮動(dòng)態(tài)PPT模板
- 液堿生產(chǎn)工序及生產(chǎn)流程敘述
- 圖解調(diào)音臺(tái)使用說(shuō)明(共14頁(yè))
- 人民軍隊(duì)性質(zhì)宗旨和優(yōu)良傳統(tǒng)教育課件教案
- 心理抗壓能力測(cè)試?yán)}
- 操作系統(tǒng)試題
- 電子秤校驗(yàn)記錄表
- (完整word)外研版八年級(jí)下冊(cè)英語(yǔ)課文電子版
評(píng)論
0/150
提交評(píng)論