系統(tǒng)測試教案稿_第1頁
系統(tǒng)測試教案稿_第2頁
系統(tǒng)測試教案稿_第3頁
系統(tǒng)測試教案稿_第4頁
系統(tǒng)測試教案稿_第5頁
已閱讀5頁,還剩80頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

現(xiàn)

《軟件測試

軟件測試基本概念

軟件測試技術(shù)

實(shí)例

2

軟件測試基本概念

什么是軟件測試?目標(biāo)是什么?

測試步驟

測試階段信息流

3

]軟件測試的概念

1.軟件測試是按照特定的規(guī)則,發(fā)現(xiàn)軟件錯(cuò)誤的

過程;

2.軟件測試是對軟件規(guī)格說明、設(shè)計(jì)和編碼的最

后復(fù)審;

3.軟件測試在軟件生存周期中橫跨兩個(gè)階段:模

塊和單元測試在編碼階段,綜合測試在獨(dú)立的

測試階段;

4.軟件測試的工作量一般占軟件開發(fā)總工作量的

40%以上,有的測試成本占到其它步驟總成本的

3—5倍。

4

《軟件測試的目標(biāo)

1.軟件測試是為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程;

2.測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯(cuò)誤;

3.軟件測試中需要數(shù)據(jù),即為測試而精心設(shè)計(jì)的測試

用例,利用測試用例去運(yùn)行程序,幫助發(fā)現(xiàn)程序錯(cuò)誤;

4.一個(gè)好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯(cuò)誤;

5.一個(gè)成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯(cuò)誤的測試。

6.軟件測試絕對不是要證明程序的正確性,也證明不

了程序的正確性.

5

《軟件測試與軟件調(diào)試的區(qū)別

內(nèi)容軟件測試軟件調(diào)試

目的從一個(gè)側(cè)面證明程序員的失敗;證明程序員的正確;

方法從已知條件開始,使用預(yù)先定義的程序,從不可知內(nèi)部條件開始,除

且有預(yù)知的結(jié)果,不可預(yù)見的僅是程序是統(tǒng)計(jì)性調(diào)試外,結(jié)果是不可

否通過測試;預(yù)見的;

約束有計(jì)劃并且要進(jìn)行測試設(shè)計(jì);不受時(shí)間約束;

過程發(fā)現(xiàn)錯(cuò)誤、改正錯(cuò)誤、重新測試的過程;是一個(gè)推理的過程;

方式執(zhí)行是有規(guī)程的;執(zhí)行要求程序員進(jìn)行必要的

推理;

測試由獨(dú)立的測試組在不了解軟件設(shè)計(jì)的由了解詳細(xì)設(shè)計(jì)的程序員完

人員條件下完成;成;

工具大多數(shù)測試的執(zhí)行和設(shè)計(jì)可由工具支持。程序員能用的工具主要是調(diào)

試器。6

&軟件測試的原則⑴

1.設(shè)計(jì)測試用例,要給出測試的預(yù)期結(jié)果。一個(gè)測試

用例,必須由兩部分組成:對輸入數(shù)據(jù)的描述及其

這些輸入數(shù)據(jù)所產(chǎn)生的程序預(yù)期結(jié)果的精確描述。

2.設(shè)計(jì)非法輸入用例。當(dāng)有非法輸入時(shí),測試程序

是否能夠拒絕接受那些非法輸入并給出提示信息。

3.進(jìn)行回歸測試,對程序的任何修改,使用以前測試

用例,重新進(jìn)行測試,有助于發(fā)現(xiàn)修改程序引起

的新錯(cuò)誤。

&軟件測試的原則(2)

4.集中測試容易出錯(cuò)的程序段。測試統(tǒng)計(jì)結(jié)果表明:

一段程序中發(fā)現(xiàn)的錯(cuò)誤越多,則其中存在錯(cuò)誤的概

率也就越大。為了提高測試效率,在深入測試時(shí),

要集中測試那些容易出錯(cuò)的程序段。

5.開發(fā)小組與測試小組應(yīng)分離,二者在思想上、方法

上是不一樣的,前者是建設(shè)性的,后者是“破壞性”

的。因此二者分離是成立測試小組的基本要求。

8

軟件測試方法和技術(shù)

代碼會(huì)審

「人工測試走查和排練

(代碼復(fù)審)

辦公桌檢查

軟件測試Y

機(jī)器測試白盒測試技術(shù)

I(動(dòng)態(tài)測試)

黑盒測試技術(shù)

9

《軟件測試方法和技術(shù)

1.人工測試

代碼復(fù)審采用人工方式進(jìn)行,目的在于檢查程

序的靜態(tài)錯(cuò)誤。

2.機(jī)器測試

(1)在設(shè)定的測試數(shù)據(jù)上執(zhí)行被測程序的過程,也稱

為動(dòng)態(tài)測試;

(2)動(dòng)態(tài)測試包括:測試用例、執(zhí)行被測程序和分析

執(zhí)行結(jié)果并發(fā)現(xiàn)錯(cuò)誤的過程。

10

&軟件測試步驟

步驟測試內(nèi)容時(shí)間

單元將每一個(gè)模塊作為一個(gè)單獨(dú)的測試單元,保證每個(gè)模塊作編碼

測試為一個(gè)單元能正確運(yùn)行。階段

子系統(tǒng)將經(jīng)過單元測試的模塊放在一起形成一個(gè)子系統(tǒng)來測試,

測試以測試模塊間的接口正確性作為主要任務(wù)。

系統(tǒng)將經(jīng)過測試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來測試,檢驗(yàn)集中測

測試系統(tǒng)是否確實(shí)能實(shí)現(xiàn)需求規(guī)格說明書中的功能,以及系統(tǒng)的試階段

動(dòng)態(tài)特征是否符合預(yù)定要求。系統(tǒng)測試是指整個(gè)計(jì)算機(jī)系統(tǒng)(

包括軟硬件)的測試,可與系統(tǒng)的安裝和驗(yàn)收相結(jié)合進(jìn)行。

驗(yàn)收在用戶的參與下,把軟件系統(tǒng)作為單一的實(shí)體進(jìn)行測試,驗(yàn)收

測試使軟件系統(tǒng)能滿足用戶的需要。測試內(nèi)容與系統(tǒng)測試基本相階段

同。

平行新舊兩個(gè)系統(tǒng)同時(shí)運(yùn)行進(jìn)行比較,避免風(fēng)險(xiǎn)的同時(shí)給用戶運(yùn)行

測試對新系統(tǒng)一段熟悉的時(shí)間。階/

學(xué)元測試

在單元測試期間著重從下述5個(gè)方面對模塊進(jìn)

行測試。

1.模塊接口

主要檢查下述幾個(gè)方面:參數(shù)的數(shù)目、次序、

屬性或單位素統(tǒng)與變元是否一致;是否修改了只

作輸入用的變元;全局變量的定義和用法在各個(gè)

模塊中是否一致。

2.局部數(shù)據(jù)結(jié)構(gòu)

3.重要的執(zhí)行通路

12

4.出錯(cuò)處理通路

當(dāng)評價(jià)出錯(cuò)處理通路時(shí),應(yīng)該著重測試下

述一些可能發(fā)生的錯(cuò)誤:

(1)對錯(cuò)誤的描述是難以理解的;

(2)記下的錯(cuò)誤與實(shí)際遇到的錯(cuò)誤不同;

⑶在對錯(cuò)誤進(jìn)行處理之前,錯(cuò)誤條件已經(jīng)引起

系統(tǒng)干預(yù);

(4)對錯(cuò)誤的處理不正確;

(5)描述錯(cuò)誤的信息不足以幫助確定造成錯(cuò)誤的

位置。

5.邊界條件■

集成測試

■不論是子系統(tǒng)測試還是系統(tǒng)測試,都兼有檢測和組

裝兩重含義,通常稱為集成測試。

■由模塊組裝成程序時(shí)有兩種方法:

1、非漸增式測試方法

2、漸增式測試方法:a.自頂向下

b.自底向上。

14

頂向下集成

■方法:

從主控制模塊開始,沿著程序的控制層次

向下移動(dòng),逐漸把各個(gè)模塊結(jié)合起來。在把附

屬于(及最終附屬于)主控制模塊的那些模塊

組裝到程序結(jié)構(gòu)中去時(shí),或者使用深度優(yōu)先的

策略,或者使用寬度優(yōu)先的策略。

15

自頂向下集成

把模塊結(jié)合進(jìn)軟件結(jié)構(gòu)的具體過程由下述4個(gè)步驟完成:

第一步,對主控制模塊進(jìn)行測試,測試時(shí)用存根程序

代替所有直接附屬于主控制模塊的模塊;

第二步,根據(jù)選定的結(jié)合策略(深度優(yōu)先或?qū)挾葍?yōu)先),

每次用一個(gè)實(shí)際模塊代換一個(gè)存根程序(新結(jié)合進(jìn)

來的模塊往往又需要新的存根程序);

第三步,在結(jié)合進(jìn)一個(gè)模塊的同時(shí)進(jìn)行測試;

第四步,為了保證加入模塊沒有引進(jìn)新的錯(cuò)誤,可能

需要進(jìn)行回歸測試(即,全部或部分地重復(fù)以前做

過的測試)。

16

4

M]

s4

自頂向下結(jié)合

17

a底向上集成

實(shí)現(xiàn)自底向上結(jié)合策略的步驟:

第一步,把低層模塊組合成實(shí)現(xiàn)某個(gè)特定的軟件子

功能的族;

第二步,寫一個(gè)驅(qū)動(dòng)程序(用于測試的控制程序),

協(xié)調(diào)測試數(shù)據(jù)的輸入和輸出;

第三步,對由模塊組成的子功能族進(jìn)行測試;

18

自底向上集成

第四步,去掉驅(qū)動(dòng)程序,沿軟件結(jié)構(gòu)自下

向上移動(dòng),把子功能族組合起來形成更大

的子功能族。

上述第二步到第四步實(shí)質(zhì)上構(gòu)成了一個(gè)循

環(huán)。

19

自底向上結(jié)合

20

¥不同集成測試策略的比較

一'般說來,一'種方法的優(yōu)點(diǎn)正好對應(yīng)于另一'種

方法的缺點(diǎn)。

自頂向下測試方法的主要優(yōu)點(diǎn):不需要測試驅(qū)動(dòng)

程序,能夠在測試階段的早期實(shí)現(xiàn)并驗(yàn)證系統(tǒng)的主

要功能,而且能在早期發(fā)現(xiàn)上層模塊的接口錯(cuò)誤。

自頂向下測試方法的主要缺點(diǎn):需要存根程序,

可能遇到與此相聯(lián)系的測試?yán)щy,低層關(guān)鍵模塊中

的錯(cuò)誤發(fā)現(xiàn)較晚,而且用這種方法在早期不能充分

展開人力。

可以看出,自底向上測試方法的優(yōu)缺點(diǎn)與上述

自頂向下測試方法的優(yōu)缺點(diǎn)剛好相反。

21

土不同集成測試策略的比較

混合策略:

(1)改進(jìn)的自頂向下測試方法?;旧鲜褂米皂斚蛳碌臏y試

方法,但是在早期使用自底向上的方法測試軟件中的少

數(shù)關(guān)鍵模塊。一般的自頂向下方法所具有的優(yōu)點(diǎn)在這種

方法中也都有,而且能在測試的早期發(fā)現(xiàn)關(guān)鍵模塊中的

錯(cuò)誤;但是,它的缺點(diǎn)也比自頂向下方法多一條,即測

試關(guān)鍵模塊時(shí)需要驅(qū)動(dòng)程序。

(2)混合法。對軟件結(jié)構(gòu)中較上層使用的自頂向下方法與

對軟件結(jié)構(gòu)中較下層使用的自底向上方法相結(jié)合。這種

方法兼有兩種方法的優(yōu)點(diǎn)和缺點(diǎn),當(dāng)被測試的軟件中關(guān)

鍵模塊比較多時(shí),這種混合法可能是最好的折衷方法。

回歸測試

回歸測試是指重新執(zhí)行已經(jīng)做過的測試

的某個(gè)子集,以保證軟件發(fā)生變化時(shí)沒有帶

來非預(yù)期的副作用。

23

回歸測試

任何成功的測試都會(huì)發(fā)現(xiàn)錯(cuò)誤,而且錯(cuò)誤必

須被改正。每當(dāng)改正軟件錯(cuò)誤的時(shí)候,軟件配置

的某些成分(程序、文檔或數(shù)據(jù))也被修改了。

回歸測試就是用于保證由于調(diào)試或其他原因

引起的變化,不會(huì)導(dǎo)致非預(yù)期的軟件行為或額外

錯(cuò)誤的測試活動(dòng)。

24

■回歸測試

回歸測試可以通過重新執(zhí)行全部測試用例的一

個(gè)子集人工地進(jìn)行,也可以使用自動(dòng)化的捕獲回放

工具自動(dòng)進(jìn)行。

利用捕獲回放工具,軟件工程師能夠捕獲測試

用例和實(shí)際運(yùn)行結(jié)果,然后可以回放(即重新執(zhí)行

測試用例),并且比較軟件變化前后所得到的運(yùn)行

結(jié)果。

25

回歸測試集是指已執(zhí)行過的測試用例的子集。

回歸測試集包括3類不同的測試用例:

(1)檢測軟件全部功能的代表性測試用例;

(2)專門針對可能受修改影響的軟件功能的附

加測試;

(3)針對被修改過的軟件成分的測試。

26

確認(rèn)測試

■F認(rèn)測試也稱為驗(yàn)收測試,它的目標(biāo)是驗(yàn)證軟件的

有效性。

■驗(yàn)證指的是保證軟件正確地實(shí)現(xiàn)了某個(gè)特定要求的一

系列活動(dòng)。

確認(rèn)指的是為了保證軟件確實(shí)滿足了用戶需求而進(jìn)

行的一系列活動(dòng)。

軟件有效性的一個(gè)簡單定義是:如果軟件的功能和

性能如同用戶所合理期待的那樣,軟件就是有效的。

需求分析階段產(chǎn)生的軟件需求規(guī)格說明書,準(zhǔn)確地描

述了用戶對軟件的合理期望,因此是軟件有效性的標(biāo)

準(zhǔn),也是進(jìn)行確認(rèn)測試的基礎(chǔ)。

27

確認(rèn)測試(Alpha測試與Beta測試)

Alpha測試由用戶在開發(fā)者的場所進(jìn)行,

并且在開發(fā)者對用戶的“指導(dǎo)”下進(jìn)行測試。

A1pha測試是在受控的環(huán)境中進(jìn)行的。

Beta測試由軟件的最終用戶們在一個(gè)或多

個(gè)客戶場所進(jìn)行。Beta測試是軟件在開發(fā)者不

能控制的環(huán)境中的“真實(shí)”應(yīng)用。

28

,軟件測試與開發(fā)各階段關(guān)系

f|需求分析?|設(shè)計(jì)編程—]

一確認(rèn)測試V—集成測試V一單元測試V

29

測試階段信息流

錯(cuò)

測試

分析改正的軟件

錯(cuò)

測試

軟件配置預(yù)率

結(jié)N.據(jù)

測試配置果

可靠性

、分析,

測試工具預(yù)測的可靠性.

30

&軟件測試技術(shù)

設(shè)計(jì)測試方案是測試階段的關(guān)鍵技術(shù)問題。

測試方案包括具體的測試目的(例如,預(yù)定

要測試的具體功能),應(yīng)該輸入的測試數(shù)據(jù)和預(yù)

期的結(jié)果。

把>測試數(shù)據(jù)和預(yù)期的輸出結(jié)果稱為測試用例。

其中最困難的問題是設(shè)計(jì)測試用的輸入數(shù)據(jù)。

31

1|軟件測試技術(shù)

兩種常用的測試方法

■白盒測試:結(jié)構(gòu)測試

■黑盒測試:功能測試

32

&軟件測試技術(shù)

■白盒測試把測試對象看做一個(gè)透明的盒子,它

允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)

信息,設(shè)計(jì)或選擇測試用例,對程序所有邏輯

路徑進(jìn)行測試。

■通過在不同點(diǎn)檢查程序的狀態(tài),確定實(shí)際的狀

態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱

為結(jié)構(gòu)測試或邏輯驅(qū)動(dòng)測試。

33

&軟件測試技術(shù)

■黑盒測試是把測試對象看做一個(gè)黑盒子,測試

人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特

性,只依據(jù)程序的需求規(guī)格說明書,檢查程序

的功能是否符合它的功能說明。

■黑盒測試又叫做功能測試或數(shù)據(jù)驅(qū)動(dòng)測試。

34

&軟件測試技術(shù)

■白盒測試對程序模塊的所有的執(zhí)行路徑至少測

試一次;對所有的邏輯判定,取“真”與取

“假”的兩種情況都至少測試一次;

■黑盒測試發(fā)現(xiàn)程序中的錯(cuò)誤,必須在所有可能

的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢

查程序是否都能產(chǎn)生正確的輸出。

35

&軟件測試技術(shù)

白盒方法窮盡測試實(shí)例:

循環(huán)《20次

36

&軟件測試技術(shù)

包含的不同執(zhí)行路徑數(shù)達(dá)夕〃條,對

每一條路徑進(jìn)行測試需要1毫秒,假定一

年工作365x24小時(shí),要想把所有路徑

測試完,需3170年。

37

軟件測試技術(shù)

黑盒方法窮盡測試實(shí)例:

PZ

T

38

&軟件測試技術(shù)

>在字長為32位的計(jì)算機(jī)上運(yùn)行。若TY

取整數(shù),按黑盒方法進(jìn)行窮舉測試,可能采

用的測試數(shù)據(jù)組:

232x232=264

如果測試一組數(shù)據(jù)需要1毫秒,一年工作

365義24小時(shí),完成所有測試需5億年。

39

&軟件測試技術(shù)

■軟件的窮盡測試是不現(xiàn)實(shí)的,因此測試

無法證明正確性。

■如何花最少的費(fèi)用,得到最好的測試效

果?...測試用例的設(shè)計(jì)。

40

&軟件測試技術(shù)

一、白盒測試稱為結(jié)構(gòu)測試,測試者了解被測程序的

內(nèi)部結(jié)構(gòu)和處理過程,對程序的所有邏輯路徑進(jìn)行

測試,在不同點(diǎn)檢查程序狀態(tài),確定實(shí)際狀態(tài)與預(yù)

期狀態(tài)是否一致。

二、白盒測試從程序的邏輯結(jié)構(gòu)入手,按照一定的原

貝山來設(shè)計(jì)測試用例和測試數(shù)據(jù),因此白盒測試法

也稱為邏輯覆蓋法。

41

&軟件測試技術(shù)

”由白盒測試產(chǎn)生的測試實(shí)例應(yīng)具有下列功能:

1.保證在模塊中的獨(dú)立路徑最少被檢查一次;

2.檢查每個(gè)邏輯判斷的真假兩種情況;

3.對每個(gè)循環(huán)變量的初值、中間值和終止進(jìn)行檢查;

4.檢查程序的內(nèi)部結(jié)構(gòu)是否有效。

四.通過白盒測試發(fā)現(xiàn)的錯(cuò)誤:

1.程序中的邏輯錯(cuò)誤和不正確的假設(shè)和條件;

2.沒預(yù)料到的意外路徑;

3.語法檢查未發(fā)現(xiàn)的印刷或書寫錯(cuò)誤。

42

一、邏輯覆蓋

邏輯覆蓋:邏輯覆蓋法是以程序內(nèi)部的邏

輯結(jié)構(gòu)為基礎(chǔ)的設(shè)計(jì)測試用例的技術(shù)。從覆

蓋源程序語句和路徑的詳盡程度分析,有以

下不同的覆蓋標(biāo)準(zhǔn):

語句覆蓋判定-條件覆蓋

判定覆蓋條件組合覆蓋

條件覆蓋路徑覆蓋

43

軟件測試技術(shù)示例

示例

路徑:

ace---L1abd---L2

abe---L3acd---L4

44

&軟件測試技術(shù)示例

對于第一個(gè)判斷:

條件A>1取真為取假為彳

條件B=0取真為T2,取假為石

對于第二個(gè)判斷:

條件A=2取真為T3,取假為因

條件X>1取真為T*取假為醫(yī)

45

I軟件測試技術(shù)示例

Ll(afc-e)

={(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)

46

軟件測試技術(shù)示例

L2(afb.d)

=|(A>1]and(B=0)|and|(A=2)or(X>

=[(A>1)or(B=0)j>and|(A=2)and(X>l)j>

=(A>1)and(A=2)and(X>1)or

(B=0)and(A=2)and(X>1)

=(A<1)and(X<1)or

(Bw0)and(Aw2)and(X<1)

47

軟件測試技術(shù)示例

L3(aTbTc)

={(A>1]and(B=0)}and{(A=2)or(X>1)}

二(A〉1)and(X>1)or

(B=0)and(A=2)or(B=0)and(X>1)

=(A<1)and(X>1)or

(Bw0)and(A=2)or(Bw0)and(X>1)

48

軟件測試技術(shù)示例

L4(a->c->d)

={(A>1)and(B=0)}and{(A=2)or(X/A>1)}

=(A>1)and(B=0)and(AW2)and(X/A<1)

49

口I軟件測試技術(shù)示例

①語句覆蓋

?設(shè)計(jì)若干個(gè)測試用例,運(yùn)行被測程序,使

得每一可執(zhí)行語句至少執(zhí)行一次。

在圖例中,正好所有的可執(zhí)行語句都在路

徑L1上,所以選擇路徑L1設(shè)計(jì)測試用

例:

[(2,0,4)]

注:(2,0,4)即:A=2,B=0,X=4下同。

50

軟件測試技術(shù)示例

②判定覆蓋

設(shè)計(jì)若干個(gè)測試用例,運(yùn)行被測程序,不

僅每個(gè)語句至少執(zhí)行一次,而且每個(gè)判定

的每種可能的結(jié)果都應(yīng)該至少執(zhí)行一次。

對于圖例,如果選擇路徑L3和L4,就

可得滿足要求的測試用例:

【(2,1,1)]覆蓋[L3]

[(3,0,3)】覆蓋【L4】

如果選擇路徑L1和L2,還可得另一組

可用的測試用例。

聲圖

I軟件測試技術(shù)示例

同條件覆蓋

小設(shè)計(jì)若干測試用例,運(yùn)行被測程序,不僅每個(gè)語句

至少執(zhí)行一次,而且使判定表達(dá)式中的每個(gè)條件都

取到各種可能的結(jié)果。

測試用例覆蓋分支條件取值

【(2,0,4)1LITiT2T3T4

1(1,1,1)1L2T1T2T3T4

需要注意的是,條件覆蓋不一定滿足判定覆蓋,如:

測試用例覆蓋分支條件取值

【(2,0,1)1L1

"TT2乂T3乂T4

【(1,1,2)】L3TTTT

50圖

&軟件測試技術(shù)示例

④判定/條件覆蓋

?設(shè)計(jì)足夠的測試用例,使得判斷表達(dá)式

中的每個(gè)條件都取到各種可能的值,而

且每個(gè)判斷表達(dá)式也都取到各種可能結(jié)

果。

測試用例覆蓋分支條件取值

【(2,0,4)1L1TiT2T3T4

1(1,1,1)1L2T1T2T3T4

5竽圖

&軟件測試技術(shù)示例

⑤條件組合覆蓋

設(shè)計(jì)足夠的測試用例,運(yùn)行被測程序,使得

所有可能的條件取值組合至少執(zhí)行一次。

記①A>B-o

T1T2_

②A>Bwo作

A>B-o作_T1T2卜第一個(gè)判斷

④A>Bwo作T1T2

⑤X>作T1T2J

⑥X>作T3T4、

⑦作

X>T3T4卜第二個(gè)判斷

⑧作

X>T3T4_______

T3T4,

5制圖

】I軟件測試技術(shù)示例

測試用例覆蓋分支覆蓋條件覆蓋組合

【(2,0,4)1(LI)TiT2T3T4①,⑤

1(2,1,1)1(L3)TiT2T3T4②,⑥

[(1,0,3)](L3)T\T2T^T4③,⑦

【(1,1,1)](L2)④,⑧

5中圖

軟件測試技術(shù)示例

⑥路徑覆蓋

就是設(shè)計(jì)足夠的測試用例,覆蓋程序中所

有可能的路徑。

測試用例通過路徑覆蓋條件

【(2,0,4)1LlTiT2T3T4

【(1,1,1)1L2

[(1,1,2)]L3T?TITZT4

[30,1)1L4TiT2T3T4

5刎

口.二、控制結(jié)構(gòu)測試

■基本路徑測試

57

《控制結(jié)構(gòu)測試

苴太致久加才通過計(jì)算程序的環(huán)形復(fù)雜度,并用

■基本路徑測試該復(fù)雜度為指南定義執(zhí)行路徑的

>思想:一^、基本集合。

>效果或覆蓋標(biāo)準(zhǔn);

>步驟:

從執(zhí)行路徑的基本集合導(dǎo)出的測試:

_______k1、)ZS■二waq應(yīng)rbr女二位入

fl、根據(jù)過程設(shè)計(jì)結(jié)果畫出相應(yīng)的流圖;

2、計(jì)算流圖的環(huán)形復(fù)雜度;

3、確定線性獨(dú)立路徑的基本集合;)

4、設(shè)計(jì)可強(qiáng)制執(zhí)行基本集合中每條路徑的測

I試用例

58

流圖的畫法

■流圖:抽象化的程序流圖,突出表現(xiàn)控制流.

A符號(hào)。為流圖的一個(gè)結(jié)點(diǎn),表示一個(gè)或多

個(gè)無分支語句。

A箭頭為邊,表示控制流的方向。

59

流圖的畫法

60

流圖的畫法

如果判斷中的條件表達(dá)式是由一個(gè)或多個(gè)邏輯運(yùn)

算符(OR,AND,NAND,NOR)連接的復(fù)合條

件表達(dá)式,則需要改為一系列只有單個(gè)條件的嵌

套的判斷。

判斷結(jié)點(diǎn)

ifaORb

thenprocedurex

elseprocedurey;

(a)(b)

61

升算變題復(fù)雜度

McCabe方法根據(jù)程序控制流的復(fù)雜程度定量度

量程序的復(fù)雜程度,這樣度量出的結(jié)果稱為程序的

環(huán)形復(fù)雜度。

■環(huán)形(環(huán)路)復(fù)雜度方法,根據(jù)程序內(nèi)單條件分支

數(shù)或循環(huán)個(gè)數(shù)來度量程序的復(fù)雜度.

■流圖G的環(huán)形復(fù)雜度:

AV(G)=流圖區(qū)域數(shù)

>V(G)=邊數(shù)一結(jié)點(diǎn)數(shù)+2

>V(G)=單條件判定數(shù)+1

62

確定線性獨(dú)立路徑的基本集合

■獨(dú)立的路徑是:

pathl:1-11

path2:1-2-3-4-5-10-1-11

path3:1-2-3-6-8-9-10-1-11

path4:1-2-3-6-7-9-10-1-11

■路徑pathl,path2,path3,path4組成了控制

流圖的一個(gè)基本路徑集。

63

黑盒測試技術(shù)

黑盒測試著重測試軟件功能。黑盒測試并不能取代白

盒測試,它是與白盒測試互補(bǔ)的測試方法,它很可能發(fā)現(xiàn)

白盒測試不易發(fā)現(xiàn)的其他類型的錯(cuò)誤。

黑盒測試力圖發(fā)現(xiàn)下述類型的錯(cuò)誤:

①功能不正確或遺漏了功能;

②界面錯(cuò)誤;

③數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部數(shù)據(jù)庫訪問錯(cuò)誤;

④性能錯(cuò)誤;

⑤初始化和終止錯(cuò)誤。

64

黑盒測試技術(shù)

黑盒測試

>等價(jià)類法

>邊界值分析法

65

等價(jià)劃分(等價(jià)類法)

等價(jià)類法

>思想:

>劃分等價(jià)類的經(jīng)驗(yàn)

>等價(jià)類法步驟

66

劃分等價(jià)類思想

■把所有可能的輸入數(shù)據(jù),包括有效的和無效的劃

分成若干個(gè)等價(jià)類,則可以合理地做如下假設(shè):每類

中的一個(gè)典型值在測試中的作用與其他值的作用相同。

因此可以從每個(gè)等價(jià)類中只取一組數(shù)據(jù)作為測試數(shù)據(jù),

這樣選取的測試數(shù)據(jù)最有代表性也最容易發(fā)現(xiàn)問題。

■比如:三角形類別識(shí)別程序:等邊、等腰、任意,不

合理的三角形等等

■無效的等價(jià)類可以從多個(gè)角度考慮,如:只有兩個(gè)輸

入邊,輸入不是實(shí)數(shù),輸入數(shù)據(jù)有負(fù)數(shù)等。

67

劃分等價(jià)類啟發(fā)式規(guī)則

(1)如果規(guī)定了輸入值的范圍,則可劃分出一個(gè)有

效的等價(jià)類(輸入值在此范圍內(nèi)),兩個(gè)無效的等價(jià)

類(輸入值小于最小值或大于最大值);

(2)如果規(guī)定了輸入數(shù)據(jù)的個(gè)數(shù),則類似地也可以

劃分出一個(gè)有效的等價(jià)類和兩個(gè)無效的等價(jià)類;

(3)如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序?qū)Σ?/p>

同輸入值做不同處理,則每個(gè)允許的輸入值是'一個(gè)

有效的等價(jià)類,此外還有一個(gè)無效的等價(jià)類(任一個(gè)

不允許的輸入值);

68

、劃分等價(jià)類啟發(fā)式規(guī)則

(4)如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,則可

以劃分出一個(gè)有效的等價(jià)類(符合規(guī)則)和若干個(gè)

無效的等價(jià)類(從各種不同角度違反規(guī)則);

(5)如果規(guī)定了輸入數(shù)據(jù)為整型,則可以劃分出

正整數(shù)、零和負(fù)整數(shù)等3個(gè)有效類;

(6)如果程序的處理對象是表格,則應(yīng)該使用空

表,以及含一項(xiàng)或多項(xiàng)的表。

69

劃分等價(jià)類經(jīng)驗(yàn)

等價(jià)類劃分啟發(fā)式規(guī)則

>輸入條件:?值可以是1到999…”

“?..項(xiàng)數(shù)可以是1到999…”

]999_________

無效等價(jià)類一有效等價(jià)類一無效等價(jià)類

70

K劃分等價(jià)類經(jīng)驗(yàn)

>輸入數(shù)據(jù)(教師職稱):在教師住房分配軟件中規(guī)

定對教授、副教授、講師和助教分別計(jì)算分?jǐn)?shù),

做相應(yīng)的處理。

四個(gè)有效等價(jià)類,一個(gè)無效等價(jià)類。

>輸入規(guī)定:”標(biāo)識(shí)符是一字母打頭的長度不超

過八位的串?!?/p>

則字母打頭長度在1?8位的為一個(gè)有效等價(jià)

類,非字母打頭為一個(gè)無效等價(jià)類,長度大于八

位或?yàn)榭找彩且粋€(gè)無效等價(jià)類。

71

劃分等價(jià)類經(jīng)驗(yàn)

>如果在已確定的等價(jià)類中各元素在軟件中的

處理方式不同,則應(yīng)根據(jù)需要對等價(jià)類進(jìn)一

步進(jìn)行劃分。

>編譯程序能發(fā)現(xiàn)的語法錯(cuò)誤,無須測試。

intsum(intn)

{intm=0;

for(inti=l;i<=n;i++)

m=m+i;

72

>劃分等價(jià)類

>建立等價(jià)類表,為每一個(gè)等價(jià)類規(guī)定一個(gè)唯一

編號(hào);

輸入條件有效等價(jià)類無效等價(jià)類

等價(jià)類法步驟

>選擇測試用例:

■以盡可能少的測試用例覆蓋所有的有效

等價(jià)類;

■為每個(gè)無效等價(jià)類設(shè)計(jì)一個(gè)測試用例。

74

邊界值分析法

邊界值分析法

>思想:程序總是在邊界條件處失效,因此選

取測試用例應(yīng)該選邊界值

>使用方法:與等價(jià)劃分法聯(lián)合使用

75

測試技術(shù)例題

某工廠公開招工,規(guī)定報(bào)名者的年齡應(yīng)在16周歲

至35周歲之間(到2005年3月30日止)。即出生年月

不在上述范圍內(nèi),將拒絕接受,并顯示“年齡不合格”

等出錯(cuò)信息。假定出生年月由6位數(shù)字字符表示,前4

位代表年,后2位代表月。

(1)利用等價(jià)類法設(shè)計(jì)測試用例.

⑵利用邊界值分析法設(shè)計(jì)測試用例。

76

支術(shù)例題

等價(jià)類表如下:

輸入條件有效等價(jià)類無效等價(jià)類

②有非數(shù)字字符

出生年月①6位數(shù)字字③少于6個(gè)數(shù)字符

符④多于6個(gè)數(shù)字符

⑥<197003

對應(yīng)數(shù)值⑤在197003—-

198903之間⑦>198903

⑨等于0

月份對應(yīng)⑧在1—12之間

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論