《軟件測(cè)試基礎(chǔ)》課件-第3章_第1頁
《軟件測(cè)試基礎(chǔ)》課件-第3章_第2頁
《軟件測(cè)試基礎(chǔ)》課件-第3章_第3頁
《軟件測(cè)試基礎(chǔ)》課件-第3章_第4頁
《軟件測(cè)試基礎(chǔ)》課件-第3章_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第3章軟件測(cè)試過程

3.1軟件測(cè)試流程概述3.2單元測(cè)試3.3集成測(cè)試3.4確認(rèn)測(cè)試3.5驗(yàn)收測(cè)試3.6思考與習(xí)題

3.1軟件測(cè)試流程概述

軟件測(cè)試流程與軟件開發(fā)流程類似,也包括測(cè)試計(jì)劃、測(cè)試設(shè)計(jì)、測(cè)試開發(fā)、測(cè)試執(zhí)行和測(cè)試評(píng)估幾個(gè)部分。

(1)測(cè)試計(jì)劃。根據(jù)用戶需求報(bào)告中關(guān)于功能要求和性能指標(biāo)的規(guī)格說明書,定義相應(yīng)的測(cè)試需求報(bào)告,使得隨后所有的測(cè)試工作都將圍繞著測(cè)試需求來進(jìn)行。同時(shí),適當(dāng)選擇測(cè)試內(nèi)容,合理安排測(cè)試人員、測(cè)試時(shí)間及測(cè)試資源等。

(2)測(cè)試設(shè)計(jì)。測(cè)試設(shè)計(jì)是指將測(cè)試計(jì)劃階段制訂的測(cè)試需求分解、細(xì)化為若干個(gè)可執(zhí)行的測(cè)試過程,并為每個(gè)測(cè)試過程選擇適當(dāng)?shù)臏y(cè)試用例,保證測(cè)試結(jié)果的有效性。

(3)測(cè)試開發(fā)。建立可重復(fù)使用的自動(dòng)測(cè)試過程。

(4)測(cè)試執(zhí)行。執(zhí)行測(cè)試開發(fā)階段建立的自動(dòng)測(cè)試過程,并對(duì)所發(fā)現(xiàn)的缺陷進(jìn)行跟蹤管理。測(cè)試執(zhí)行一般由單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試以及回歸測(cè)試等步驟組成。

(5)測(cè)試評(píng)估。結(jié)合量化的測(cè)試覆蓋域及缺陷跟蹤報(bào)告,對(duì)應(yīng)用軟件的質(zhì)量和開發(fā)團(tuán)隊(duì)的工作進(jìn)度及工作效率進(jìn)行綜合評(píng)價(jià)。

在上述測(cè)試流程中,測(cè)試執(zhí)行按以下步驟進(jìn)行:?jiǎn)卧獪y(cè)試、集成測(cè)試、確認(rèn)測(cè)試和驗(yàn)收測(cè)試,如圖3.1所示。圖3.1軟件測(cè)試執(zhí)行過程

(1)單元測(cè)試:通過對(duì)每個(gè)最小的軟件模塊進(jìn)行測(cè)試,對(duì)源代碼的每一個(gè)程序單元實(shí)行測(cè)試,檢查各個(gè)程序模塊是否正確地實(shí)現(xiàn)了規(guī)定的功能,確保其能正常工作。

(2)集成測(cè)試:對(duì)已測(cè)試過的模塊進(jìn)行組裝集成,目的在于檢驗(yàn)與軟件設(shè)計(jì)相關(guān)的程序結(jié)構(gòu)問題。

(3)確認(rèn)測(cè)試:檢驗(yàn)軟件是否滿足需求規(guī)格說明中的功能和性能需求,確定軟件配置完全、正確。同時(shí)檢驗(yàn)軟件產(chǎn)品能否與實(shí)際運(yùn)行環(huán)境中整個(gè)系統(tǒng)的其它部分(如硬件、數(shù)據(jù)庫及操作人員)協(xié)調(diào)工作。

(4)驗(yàn)收測(cè)試:作為檢驗(yàn)軟件產(chǎn)品質(zhì)量的最后一道工序,主要讓用戶對(duì)軟件進(jìn)行測(cè)試,并重新執(zhí)行已經(jīng)做過的測(cè)試的某個(gè)子集,保證沒有引入新的錯(cuò)誤。

3.2單元測(cè)試

1.單元測(cè)試內(nèi)容

單元測(cè)試針對(duì)程序模塊進(jìn)行測(cè)試,主要有以下5個(gè)任務(wù):模塊接口測(cè)試、局部數(shù)據(jù)結(jié)構(gòu)測(cè)試、邊界條件測(cè)試、執(zhí)行路徑測(cè)試和出錯(cuò)處理測(cè)試,如圖3.2所示。圖3.2單元測(cè)試要解決的任務(wù)

1)模塊接口測(cè)試

通過對(duì)被測(cè)模塊的數(shù)據(jù)流進(jìn)行測(cè)試,檢查進(jìn)出模塊的數(shù)據(jù)是否正確。因此,必須對(duì)模塊接口,包括參數(shù)表、調(diào)用子模塊的參數(shù)、全程數(shù)據(jù)、文件輸入/輸出等操作進(jìn)行測(cè)試。具體涉及以下內(nèi)容。

(1)模塊接受輸入的實(shí)際參數(shù)個(gè)數(shù)與模塊的形式參數(shù)個(gè)數(shù)是否一致。

(2)輸入的實(shí)際參數(shù)與模塊的形式參數(shù)的類型是否匹配。

(3)輸入的實(shí)際參數(shù)與模塊的形式參數(shù)所使用的單位是否一致。

(4)調(diào)用其它模塊時(shí),所傳送的實(shí)際參數(shù)個(gè)數(shù)與被調(diào)用模塊的形式參數(shù)的個(gè)數(shù)是否相同。

(5)調(diào)用其它模塊時(shí),所傳送的實(shí)際參數(shù)與被調(diào)用模塊的形式參數(shù)的類型是否匹配。

(6)調(diào)用其它模塊時(shí),所傳送的實(shí)際參數(shù)與被調(diào)用模塊的形式參數(shù)的單位是否一致。

(7)調(diào)用內(nèi)部函數(shù)時(shí),參數(shù)的個(gè)數(shù)、屬性和次序是否正確。

(8)在模塊有多個(gè)入口的情況下,是否引用與當(dāng)前入口無關(guān)的參數(shù)。

(9)是否修改了只讀型參數(shù)。

(10)全局變量是否在所有引用它們的模塊中都有相同的定義。如果模塊內(nèi)包括外部I/O,還應(yīng)該考慮下列因素:

(1)文件屬性是否正確。

(2)?OPEN與CLOSE語句是否正確。

(3)緩沖區(qū)容量與記錄長(zhǎng)度是否匹配。

(4)在進(jìn)行讀/寫操作之前是否打開了文件。

(5)在結(jié)束文件處理時(shí)是否關(guān)閉了文件。

(6)正文書寫/輸入有無錯(cuò)誤。

(7)?I/O錯(cuò)誤是否檢查并做了處理。

2)局部數(shù)據(jù)結(jié)構(gòu)測(cè)試

測(cè)試用例檢查局部數(shù)據(jù)結(jié)構(gòu)的完整性,如數(shù)據(jù)類型說明、初始化、缺省值等方面的問題,并測(cè)試全局?jǐn)?shù)據(jù)對(duì)模塊的影響。

在模塊工作過程中,必須測(cè)試模塊內(nèi)部的數(shù)據(jù)能否保持完整性,包括內(nèi)部數(shù)據(jù)的內(nèi)容、形式及相互關(guān)系不發(fā)生錯(cuò)誤。

局部數(shù)據(jù)結(jié)構(gòu)應(yīng)注意以下幾類錯(cuò)誤:不正確的或不一致的類型說明;錯(cuò)誤的初始化或默認(rèn)值;錯(cuò)誤的變量名,如拼寫錯(cuò)誤或書寫錯(cuò)誤;下溢、上溢或者地址錯(cuò)誤。

3)執(zhí)行路徑測(cè)試

測(cè)試用例對(duì)模塊中重要的執(zhí)行路徑進(jìn)行測(cè)試,其中對(duì)基本執(zhí)行路徑和循環(huán)進(jìn)行測(cè)試往往可以發(fā)現(xiàn)大量路徑錯(cuò)誤。測(cè)試用例必須能夠發(fā)現(xiàn)由于計(jì)算錯(cuò)誤、不正確的判定或不正常的控制流而產(chǎn)生的錯(cuò)誤。

常見的錯(cuò)誤如下:誤解的或不正確的算術(shù)優(yōu)先級(jí);混合模式的運(yùn)算錯(cuò)誤;錯(cuò)誤的初始化;精確度不夠精確;表達(dá)式的不正確符號(hào)表示。

針對(duì)判定和條件覆蓋,測(cè)試用例能夠發(fā)現(xiàn)如下錯(cuò)誤:不同數(shù)據(jù)類型的比較錯(cuò)誤;不正確的邏輯操作或優(yōu)先級(jí);應(yīng)當(dāng)相等的地方由于精確度的錯(cuò)誤而不能相等;不正確的判定或不正確的變量;不正確的或不存在的循環(huán)終止;當(dāng)遇到分支循環(huán)時(shí)不能退出;不適當(dāng)?shù)匦薷难h(huán)變量。

4)出錯(cuò)處理測(cè)試

檢查模塊的錯(cuò)誤處理功能是否包含錯(cuò)誤或缺陷。例如,是否拒絕不合理的輸入,出錯(cuò)的描述是否難以理解,是否對(duì)錯(cuò)誤定位有誤,是否出錯(cuò)原因報(bào)告有誤,是否對(duì)錯(cuò)誤條件的處理不正確,在對(duì)錯(cuò)誤處理之前錯(cuò)誤條件是否已經(jīng)引起系統(tǒng)的干預(yù)等。

測(cè)試出錯(cuò)處理的重點(diǎn)是當(dāng)模塊在工作中發(fā)生錯(cuò)誤時(shí),其中的出錯(cuò)處理設(shè)施是否有效。

5)邊界條件測(cè)試

邊界條件測(cè)試是單元測(cè)試的最后一步,必須采用邊界值分析方法來設(shè)計(jì)測(cè)試用例。測(cè)試在為限制數(shù)據(jù)處理而設(shè)置的邊界處,測(cè)試模塊是否能夠正常工作。

一些與邊界有關(guān)的數(shù)據(jù)類型,如第一個(gè)、最后一個(gè)、最大值、最小值、最長(zhǎng)、最短、最高、最低等。

在邊界條件測(cè)試中,應(yīng)設(shè)計(jì)測(cè)試用例檢查以下情況:

(1)在n次循環(huán)的第0次、1次……n次是否有錯(cuò)誤。

(2)運(yùn)算或判斷中取最大值、最小值時(shí)是否有錯(cuò)誤。

(3)數(shù)據(jù)流、控制流中剛好等于、大于、小于確定的比較值時(shí)是否出現(xiàn)錯(cuò)誤。

2.單元測(cè)試步驟

單元測(cè)試通常在編碼階段進(jìn)行。在源程序代碼編制完成并經(jīng)過評(píng)審和驗(yàn)證,確認(rèn)沒有語法錯(cuò)誤之后,開始設(shè)計(jì)單元測(cè)試的測(cè)試用例。

模塊并不是一個(gè)獨(dú)立的程序,在考慮測(cè)試模塊時(shí),同時(shí)要考慮它和外界的聯(lián)系,因此使用一些輔助模塊去模擬與被測(cè)模塊相關(guān)的其它模塊。輔助模塊分為以下兩種:

(1)驅(qū)動(dòng)模塊(Drive):用來模擬被測(cè)模塊的上一級(jí)模塊,相當(dāng)于被測(cè)模塊的主程序,用于接收測(cè)試數(shù)據(jù),并把這些數(shù)據(jù)傳送給被測(cè)模塊,啟動(dòng)被測(cè)模塊,最后輸出實(shí)測(cè)結(jié)果。

(2)樁模塊(Stub):用來模擬被測(cè)模塊工作過程中所調(diào)用的模塊。樁模塊一般只進(jìn)行很少的數(shù)據(jù)處理,不需要把子模塊的所有功能都帶進(jìn)來,但不允許什么事情也不做。

被測(cè)模塊、與它相關(guān)的驅(qū)動(dòng)模塊及樁模塊共同構(gòu)成了一個(gè)“測(cè)試環(huán)境”,如圖3.3所示。圖3.3單元測(cè)試的測(cè)試環(huán)境

3.3集成測(cè)試

按照軟件設(shè)計(jì)要求,將經(jīng)過單元測(cè)試的模塊連接起來,組成所規(guī)定的軟件系統(tǒng)的過程稱為“集成”。集成測(cè)試就是針對(duì)這個(gè)過程,按模塊之間的依賴接口關(guān)系圖進(jìn)行的測(cè)試。圖3.4給出了軟件分層結(jié)構(gòu)的示例圖。

由于集成測(cè)試不是在真實(shí)環(huán)境下進(jìn)行,而是在開發(fā)環(huán)境或是一個(gè)獨(dú)立的測(cè)試環(huán)境下進(jìn)行的,因此集成測(cè)試所需人員一般從開發(fā)組中選出,在開發(fā)組長(zhǎng)的監(jiān)督下進(jìn)行。開發(fā)組長(zhǎng)負(fù)責(zé)保證在合理的質(zhì)量控制和監(jiān)督下使用合適的測(cè)試技術(shù)執(zhí)行充分的集成測(cè)試。在集成測(cè)試過程中,由一個(gè)獨(dú)立測(cè)試觀察員來監(jiān)控測(cè)試工作。圖3.4軟件分層結(jié)構(gòu)的示意圖

1.集成測(cè)試的主要任務(wù)

集成測(cè)試是組裝軟件的系統(tǒng)測(cè)試技術(shù)之一,按設(shè)計(jì)要求把通過單元測(cè)試的各個(gè)模塊組裝在一起之后,要求軟件系統(tǒng)符合實(shí)際軟件結(jié)構(gòu),發(fā)現(xiàn)與接口有關(guān)的各種錯(cuò)誤。集成測(cè)試主要適應(yīng)于如下幾種軟件系統(tǒng):

(1)對(duì)軟件質(zhì)量要求較高的軟件系統(tǒng),如航天軟件、電信軟件、系統(tǒng)底層軟件等。

(2)使用范圍比較廣、用戶群數(shù)量較大的軟件。

(3)使用類似C/C++帶有指針的程序語言開發(fā)的軟件。

(4)類庫、中間件等產(chǎn)品。集成測(cè)試的主要任務(wù)是解決以下5個(gè)問題:

(1)將各模塊連接起來,檢查模塊相互調(diào)用時(shí)數(shù)據(jù)經(jīng)過接口是否丟失。

(2)將各個(gè)子功能組合起來,檢查能否達(dá)到預(yù)期要求的各項(xiàng)功能。

(3)一個(gè)模塊的功能是否會(huì)對(duì)另一個(gè)模塊的功能產(chǎn)生不利的影響。

(4)全局?jǐn)?shù)據(jù)結(jié)構(gòu)是否有問題,會(huì)不會(huì)被異常修改。

(5)單個(gè)模塊的誤差積累起來是否被放大,從而達(dá)到不可接受的程度。

2.集成測(cè)試方法

集成測(cè)試主要測(cè)試軟件的結(jié)構(gòu)問題,因此測(cè)試建立在模塊接口上,多為黑盒測(cè)試,適當(dāng)輔以白盒測(cè)試。執(zhí)行集成測(cè)試應(yīng)遵循如下步驟。

步驟1:確認(rèn)組成一個(gè)完整系統(tǒng)的模塊之間的關(guān)系。

步驟2:評(píng)審模塊之間的交互和通信需求,確認(rèn)模塊間的接口。

步驟3:生成一套測(cè)試用例。

步驟4:采用增量式測(cè)試,依次將模塊加入到系統(tǒng)并測(cè)試這個(gè)過程按邏輯/功能順序重復(fù)進(jìn)行。集成測(cè)試過程中尤其要注意關(guān)鍵模塊測(cè)試,關(guān)鍵模塊一般具有下述一個(gè)或多個(gè)特征:

(1)同時(shí)對(duì)應(yīng)幾項(xiàng)需求功能;

(2)具有高層控制功能;

(3)復(fù)雜,易出錯(cuò);

(4)有特殊的性能要求。

集成測(cè)試的主要目的是驗(yàn)證組成軟件系統(tǒng)的各模塊的接口和交互作用,因此集成測(cè)試對(duì)數(shù)據(jù)的要求從難度和內(nèi)容上不是很高。集成測(cè)試一般不使用真實(shí)數(shù)據(jù),可以使用一部分代表性的測(cè)試數(shù)據(jù)。在創(chuàng)建測(cè)試數(shù)據(jù)時(shí),應(yīng)保證數(shù)據(jù)充分測(cè)試軟件系統(tǒng)的邊界條件。

集成測(cè)試包括非增量式集成測(cè)試和增量式集成測(cè)試。

1)非增量式集成測(cè)試方法

非增量式集成測(cè)試方法采用一步到位的方法來進(jìn)行測(cè)試,對(duì)所有模塊進(jìn)行個(gè)別的單元測(cè)試后,按程序結(jié)構(gòu)圖將各模塊連接起來,把連接后的程序當(dāng)作一個(gè)整體進(jìn)行測(cè)試。

2)增量式集成測(cè)試方法

增量式集成測(cè)試方法具體包括自頂向下增量式測(cè)試、自底向上增量式測(cè)試以及三明治集成測(cè)試。

(1)自頂向下增量式測(cè)試。自頂向下增量式測(cè)試按結(jié)構(gòu)圖自上而下進(jìn)行逐步集成和逐步測(cè)試。模塊集成的順序是首先集成主控模塊(主程序),然后按照軟件控制層次結(jié)構(gòu)向下進(jìn)行集成。自頂向下的集成方式可以采用深度優(yōu)先策略和廣度優(yōu)先策略,如圖3.5所示。圖3.5自頂向下增量式測(cè)試示意圖

(2)自底向上增量式測(cè)試。自底向上增量式測(cè)試是從“原子”模塊(軟件結(jié)構(gòu)中最底層的模塊)開始,按結(jié)構(gòu)圖自下而上逐步進(jìn)行集成和測(cè)試。圖3.6表示采用自底向上增量式測(cè)試的過程。圖3.6自底向上增量式測(cè)試示意圖

(3)三明治集成測(cè)試。三明治集成也稱混合集成,它將自頂向下和自底向上的優(yōu)點(diǎn)和缺點(diǎn)集于一身。三明治集成是把系統(tǒng)分為三層,中間一層為目標(biāo)層。測(cè)試時(shí)對(duì)目標(biāo)層上面的一層采用自頂向下的集成測(cè)試方式,而對(duì)目標(biāo)層下面的一層使用自底向上的集成策略,最后再對(duì)目標(biāo)層進(jìn)行測(cè)試。

如圖3.7所示,使用程序樁S2、S3和S4對(duì)用戶界面M1進(jìn)行測(cè)試,使用驅(qū)動(dòng)程序D5和D6對(duì)最底層功能模塊M7、M8和M9進(jìn)行測(cè)試。當(dāng)整個(gè)系統(tǒng)集成時(shí),將程序樁S2、S3和S4換成中間層模塊M2、M3和M4,驅(qū)動(dòng)程序D5和D6對(duì)換成中間層模塊M5和M6,從而對(duì)中間層的功能模塊進(jìn)行測(cè)試。圖3.7三明治集成測(cè)試示意圖

3.4確認(rèn)測(cè)試

確認(rèn)測(cè)試用于驗(yàn)證軟件的有效性,即驗(yàn)證軟件的功能和性能及其它特性是否與用戶的要求一致。

在確認(rèn)測(cè)試階段需要做的工作如圖3.8所示。首先要進(jìn)行有效性測(cè)試以及軟件配置復(fù)審,然后進(jìn)行驗(yàn)收測(cè)試和安裝測(cè)試,在通過了專家鑒定之后,才能成為可交付的軟件。圖3.8確認(rèn)測(cè)試的步驟

1.有效性測(cè)試

有效性測(cè)試是在模擬的環(huán)境下,運(yùn)用黑盒測(cè)試的方法,驗(yàn)證被測(cè)軟件是否滿足需求規(guī)格說明書列出的需求。為此,需要制定測(cè)試計(jì)劃,規(guī)定要做測(cè)試的種類,制定一組測(cè)試步驟,描述具體的測(cè)試用例。通過實(shí)施預(yù)定的測(cè)試計(jì)劃和測(cè)試步驟,確定軟件的特性是否與需求相符,確保所有的軟件功能需求都能得到滿足,所有的軟件性能需求都能達(dá)到,所有的文檔都是正確的且便于使用。

2.軟件配置復(fù)查

軟件配置復(fù)查的目的是保證軟件配置的所有成分,包括與實(shí)際運(yùn)行環(huán)境中整個(gè)系統(tǒng)的支持環(huán)境都齊全,各方面的質(zhì)量都符合要求。在確認(rèn)測(cè)試的過程中,應(yīng)當(dāng)嚴(yán)格遵守用戶手冊(cè)和操作手冊(cè)中規(guī)定的使用步驟,以便檢查這些文檔資料的完整性和正確性,記錄發(fā)現(xiàn)的遺漏和錯(cuò)誤,并且適當(dāng)?shù)匮a(bǔ)充和改正。

3.5驗(yàn)收測(cè)試

驗(yàn)收測(cè)試是以用戶為主的測(cè)試,軟件開發(fā)人員和質(zhì)量保證人員也應(yīng)參加。由用戶參加設(shè)計(jì)測(cè)試用例,通過用戶界面輸入測(cè)試數(shù)據(jù),分析測(cè)試的輸出結(jié)果。一般使用生產(chǎn)中的實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。在測(cè)試過程中,除了考慮軟件的功能和性能外,還應(yīng)對(duì)軟件的可移植性、兼容性、可維護(hù)性、錯(cuò)誤的恢復(fù)功能等進(jìn)行確認(rèn)。3.5.1α測(cè)試和β測(cè)試

在軟件交付使用之后,用戶將如何實(shí)際使用程序,對(duì)于開發(fā)者來說是無法預(yù)測(cè)的。因?yàn)橛脩粼谑褂眠^程中常常會(huì)發(fā)生各種問題,如對(duì)軟件操作使用方法的誤解;異常的數(shù)據(jù)組合;產(chǎn)生對(duì)某些用戶來說似乎是清晰的,但對(duì)另一些用戶來說卻難以理解的輸出,等等。

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

β測(cè)試是由軟件的多個(gè)用戶在一個(gè)或多個(gè)用戶的實(shí)際使用環(huán)境下進(jìn)行的測(cè)試。與α測(cè)試不同的是,開發(fā)者通常不在測(cè)試現(xiàn)場(chǎng)。因而,β測(cè)試是在開發(fā)者無法控制的環(huán)境下進(jìn)行的軟件現(xiàn)場(chǎng)應(yīng)用。在β測(cè)試中,由用戶記下遇到的所有問題,包括真實(shí)的以及主觀認(rèn)定的,定期向開發(fā)者報(bào)告;開發(fā)者在綜合用戶的報(bào)告之后,做出修改,最后將軟件產(chǎn)品交付給全體用戶使用。β測(cè)試著重于產(chǎn)品的支持性,包括文檔、客戶培訓(xùn)和支持產(chǎn)品生產(chǎn)能力。只有當(dāng)α測(cè)試達(dá)到一定的可靠程度時(shí),才能開始β測(cè)試。3.5.2回歸測(cè)試

軟件生命周期中的任何一個(gè)階段,只要軟件發(fā)生了改變,就可能給該軟件帶來缺陷問題。而軟件的改變可能是源于發(fā)現(xiàn)了錯(cuò)誤并做了修改,也有可能是因?yàn)樵诩苫蚓S護(hù)階段加入了新的模塊等多種情況?;貧w測(cè)試是一種驗(yàn)證已變更的系統(tǒng)的完整性與正確性的測(cè)試技術(shù),是指重新執(zhí)行已經(jīng)做過的測(cè)試的某個(gè)子集,以保證修改沒有引入新的錯(cuò)誤或者發(fā)現(xiàn)由于更改而引起的之前未發(fā)現(xiàn)的錯(cuò)誤,也就是保證改變沒有帶來非預(yù)期的副作用。因此,軟件開發(fā)的各個(gè)階段會(huì)進(jìn)行多次回歸測(cè)試。

1.回歸測(cè)試的實(shí)施前提

(1)當(dāng)軟件中所含錯(cuò)誤被發(fā)現(xiàn)時(shí),如果錯(cuò)誤跟蹤與管理系統(tǒng)不夠完善,可能會(huì)遺漏對(duì)這些錯(cuò)誤的修改;

(2)開發(fā)者對(duì)錯(cuò)誤理解得不夠透徹,也可能導(dǎo)致所做的修改只修正了錯(cuò)誤的外在表現(xiàn),而沒有修復(fù)錯(cuò)誤本身,從而造成修改失??;

(3)修改還有可能產(chǎn)生副作用從而導(dǎo)致軟件未被修改的部分產(chǎn)生新的問題,使本來工作正常的功能產(chǎn)生錯(cuò)誤。

2.回歸測(cè)試的兩個(gè)策略

回歸測(cè)試是貫穿整個(gè)測(cè)試的各個(gè)階段的測(cè)試活動(dòng),其目的是檢驗(yàn)已經(jīng)發(fā)現(xiàn)的缺陷有沒有正確修改和修改過程中有沒有引發(fā)新的缺陷。可以采用如下的策略進(jìn)行回歸測(cè)試。

1)完全重復(fù)測(cè)試

完全重復(fù)測(cè)試是指將所有的測(cè)試用例全部再完全地執(zhí)行一遍,以確認(rèn)問題修改的正確性和修改后周邊是否受到影響的測(cè)試方法。其缺點(diǎn)是由于要把用例全部執(zhí)行,因此會(huì)增加項(xiàng)目成本,也會(huì)影響項(xiàng)目進(jìn)度,所以很難完全執(zhí)行。

2)選擇性重復(fù)測(cè)試

選擇性重復(fù)測(cè)試是指可以選擇一部分進(jìn)行執(zhí)行,以確認(rèn)問題修改的正確性和修改后周邊是否受到影響的測(cè)試方法。下面介紹幾種選擇性重復(fù)測(cè)試的方法:

(1)覆蓋修改法。

(2)周邊影響法。

(3)指標(biāo)達(dá)成法。

(4)基于操作剖面測(cè)試法。

(5)基于風(fēng)險(xiǎn)選擇測(cè)試法。

3.回歸測(cè)試的流程

回歸測(cè)試的流程一般具有如下步驟。

步驟1:在測(cè)試策略制定階段,制定回歸測(cè)試策略。

步驟2:確定回歸測(cè)試版本。

步驟3:回歸測(cè)試版本發(fā)布,按照回歸測(cè)試策略執(zhí)行回歸測(cè)試。

步驟4:回歸測(cè)試通過,關(guān)閉缺陷跟蹤單。

步驟5:回歸測(cè)試不通過,缺陷單返回;開發(fā)人員重新修改,再次做回歸測(cè)試。

4.回歸測(cè)試與一般測(cè)試的比較

回歸測(cè)試與一般測(cè)試相比具有許多不同點(diǎn),下面分別從測(cè)試計(jì)劃的可獲性、測(cè)試范圍、時(shí)間分配、開發(fā)信息、完成時(shí)間和執(zhí)行效率等方面進(jìn)行介紹。

(1)測(cè)試計(jì)劃的可獲性:一般測(cè)試根據(jù)系統(tǒng)規(guī)格說明書和測(cè)試計(jì)劃,測(cè)試用例都是新的;而回歸測(cè)試可能是更改了的規(guī)格說明書、修改過的程序和需要更新的測(cè)試計(jì)劃。

(2)測(cè)試范圍:一般測(cè)試的目標(biāo)是檢測(cè)整個(gè)程序的正確性;而回歸測(cè)試的目標(biāo)是檢測(cè)被修改的相關(guān)部分的正確性以及它與系統(tǒng)原有功能的整合。

(3)時(shí)間分配:一般測(cè)試所需時(shí)間通常是在軟件開發(fā)之前預(yù)算;而回歸測(cè)試所需的時(shí)間(尤其是修正性的回歸測(cè)試)往往不包含在整個(gè)產(chǎn)品進(jìn)度表中。

(4)開發(fā)信息:一般測(cè)試關(guān)于開發(fā)的知識(shí)和信息可隨時(shí)獲?。欢貧w測(cè)試可能會(huì)在不同的地點(diǎn)和時(shí)間進(jìn)行,需要保留開發(fā)信息以保證回歸測(cè)試的正確。

(5)完成時(shí)間:由于回歸測(cè)試只需測(cè)試程序的一部分,因此完成測(cè)試所需時(shí)間通常比一般測(cè)試所需時(shí)間少。

(6)執(zhí)行頻率:回歸測(cè)試在一個(gè)系統(tǒng)的生命周期內(nèi)往往要多次進(jìn)行,一旦系統(tǒng)經(jīng)過修改就需要進(jìn)行回歸測(cè)試。

3.6思?考?與?習(xí)?題

一、選擇題

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論