軟件測(cè)試課件2_第1頁
軟件測(cè)試課件2_第2頁
軟件測(cè)試課件2_第3頁
軟件測(cè)試課件2_第4頁
軟件測(cè)試課件2_第5頁
已閱讀5頁,還剩167頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第七章軟件測(cè)試

4軟件測(cè)試的目的和原則

4軟件測(cè)試用例設(shè)計(jì)

4軟件測(cè)試策略

4軟件測(cè)試種類

4程序調(diào)試

軟件測(cè)試的目的和原則

■軟件測(cè)試的目的

■軟件測(cè)試的原則

-軟件測(cè)試的對(duì)象

?測(cè)試信息流

■測(cè)試與軟件開發(fā)各階段的關(guān)系

軟件測(cè)試的目的

■基于不同的立場(chǎng),存在著兩種完全

不同的測(cè)試目的。

-從用戶的角度出發(fā),普遍希望通過

軟件測(cè)試暴露軟件中隱藏的錯(cuò)誤和

缺陷,以考慮是否可接受該產(chǎn)品。

-從軟件開發(fā)者的角度出發(fā),則希望

測(cè)試成為表明軟件產(chǎn)品中不存在錯(cuò)

誤的過程,驗(yàn)證該軟件已正確地實(shí)

現(xiàn)了用戶的要求,確立人們對(duì)軟件

質(zhì)量的信心。

Afyers軟件測(cè)試目的

(1)測(cè)試是程序的執(zhí)行過程,目的在

于發(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è)試的目的是

x?想以最少的時(shí)間和人力,系統(tǒng)地找

出軟件中潛在的各種錯(cuò)誤和缺陷。如

果我們成功地實(shí)施了測(cè)試,我們就能

夠發(fā)現(xiàn)軟件中的錯(cuò)誤。

?測(cè)試的附帶收獲是,它能夠證明軟

件的功能和性能與需求說明相符合。

?實(shí)施測(cè)試收集到的測(cè)試結(jié)果數(shù)據(jù)為

可靠性分析提供了依據(jù)。

?測(cè)試不能表明軟件中不存在錯(cuò)誤,

它只能說明軟件中存在錯(cuò)誤。

軟件測(cè)試的原則

1.應(yīng)當(dāng)把“盡早地和不斷地進(jìn)行軟

件測(cè)試”作為軟件開發(fā)者的座右

銘。

2.測(cè)試用例應(yīng)由測(cè)試輸入數(shù)據(jù)和對(duì)

應(yīng)的預(yù)期輸出結(jié)果這兩部分組成。

3.程序員應(yīng)避免檢查自己的程序。

4.在設(shè)計(jì)測(cè)試用例時(shí),應(yīng)包括合理

的皤入條件和不合理的輸入條件。

淄卷意測(cè)送

明測(cè)后

娜,

里與該

野一

正生物

神讖計(jì)6

舞蛀

忸結(jié)果做全面檢查

每7測(cè)試

當(dāng)對(duì)一測(cè)用例出

c出劃讖,

普海保弟測(cè)o,維護(hù)提

分析報(bào)腎為

窕計(jì)和最,

供方便

-

軟件測(cè)試的對(duì)象

-軟件測(cè)試并不等于程序測(cè)試。軟件

測(cè)試應(yīng)貫穿于軟件定義與開發(fā)的整

個(gè)期間。

需求分謳、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)以

及程序編碼等各階段所得到的文檔,

包括需求規(guī)格說明、概要設(shè)計(jì)規(guī)格

說明、詳細(xì)設(shè)計(jì)規(guī)格說明以及源程

序,都應(yīng)成為軟件測(cè)試的對(duì)象。

-為把握軟件開發(fā)各個(gè)環(huán)節(jié)的正確性,

需要進(jìn)行各種確認(rèn)和驗(yàn)證工作。

■確認(rèn)(Validation),是一系列的活動(dòng)

和過程,目的是想證實(shí)在一個(gè)給定

的外部環(huán)境中軟件的邏輯正確性。

?需求規(guī)格說明確認(rèn)

?程序確認(rèn)(靜態(tài)確認(rèn)、動(dòng)態(tài)確認(rèn))

■驗(yàn)證(相/浜恒"0〃),試圖證明在軟

件生存期各個(gè)階段,以及階段間的

邏輯協(xié)調(diào)性、完備性和正確性。

[用戶要求:⑤廠運(yùn)行結(jié)果、

、用戶:<--------->計(jì)算機(jī):

我要什么?相符嗎?程序運(yùn)行得

1到的結(jié)果J

理解止確性/_彳\運(yùn)行止確性

表達(dá)止確性/①④\輸入止確性

,需求說明技)「源程序:

分析員:程序員:

我可以提供我要讓計(jì)算

1機(jī)怎么做」

②③/

理解止確性G計(jì)說明書:理解止確性

設(shè)計(jì)止確性、一汨了三一/編碼止確性

表達(dá)止確性我繇贏牛

1做什么?J,

測(cè)試信息流

澗試工具

測(cè)試信息流

溜量

規(guī)

計(jì)

測(cè)

測(cè)

測(cè)

測(cè)

測(cè)

測(cè)

數(shù)

據(jù)

動(dòng)

態(tài)

動(dòng)

態(tài)

測(cè)

結(jié)

驅(qū)

測(cè)

數(shù)

據(jù)

?測(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è)試:直到通過

測(cè)試為止。

-通過收集和分析測(cè)試結(jié)果數(shù)據(jù),對(duì)

軟件建立可靠性模型

■利用可靠性分析,評(píng)價(jià)軟件質(zhì)量:

?軟件的質(zhì)量和可靠性達(dá)到可以接

受的程度;

?所做的測(cè)試不足以發(fā)現(xiàn)嚴(yán)重的錯(cuò)

誤;

?如果測(cè)試發(fā)現(xiàn)不了錯(cuò)誤,可以肯定,

測(cè)試配置考慮得不夠細(xì)致充分,錯(cuò)

誤仍然潛伏在軟件中。

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

■軟件開發(fā)過程是一個(gè)自頂向下,逐

步細(xì)化的過程

■軟件計(jì)劃階段定義軟件作用域

-軟件需求分析建立軟件信息域、功

能和性能需求、約束等

■軟件設(shè)計(jì)

-把設(shè)計(jì)用某種程序設(shè)計(jì)語言轉(zhuǎn)換成

程序代碼

-測(cè)試過程是依相反順序安排的自底

向上,逐步集成的過程。

■兩種常用的測(cè)試方法

?黑盒測(cè)試

?白盒測(cè)試

黑盒測(cè)試

.這種方法是把測(cè)試對(duì)象看做一個(gè)

黑盒子,測(cè)試人員完全不考慮程

序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,

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

檢查程序的功能是否符合它的功

能說明。

-黑盒測(cè)試又叫做功能測(cè)試或數(shù)據(jù)

驅(qū)動(dòng)測(cè)試。

-黑盒測(cè)試方法是在程序接口上進(jìn)行

測(cè)試,主要是為了發(fā)現(xiàn)以下錯(cuò)誤:

?是否有不正確或遺漏了的功能?

?在接口上,輸入能否正確地接受?

能否輸出正確的結(jié)果?

?是否有數(shù)據(jù)結(jié)構(gòu)錯(cuò)誤或外部信息■r

(例如數(shù)據(jù)文件)訪問錯(cuò)誤?

?性能上是否能夠滿足要求?

?是否有初始化或終止性錯(cuò)誤?

■用黑盒測(cè)試發(fā)現(xiàn)程序中的錯(cuò)誤,必

須在所有可能的輸入條件和輸出條

件中確定測(cè)試數(shù)據(jù),來檢查程序是

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

■但這是不可能的。

-假設(shè)一個(gè)程序尸有輸入量X和飯輸

出量Z。在字長(zhǎng)為32位的計(jì)算機(jī)上

運(yùn)行。若X、V取整數(shù),按黑盒方法

進(jìn)行窮舉測(cè)試:

-可能采用的

測(cè)試數(shù)據(jù)組:X

232X232Y

=264

-如果測(cè)試一組數(shù)據(jù)需要1毫秒,

年工作365x24小時(shí),完成所有測(cè)

試需5億年。

白盒測(cè)試

-此方法把測(cè)試對(duì)象看做一個(gè)透明的

盒子,它允許測(cè)試人員利用程序內(nèi)

部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或

選擇測(cè)試用例,對(duì)程序所有邏輯路

徑進(jìn)行測(cè)試。

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

定實(shí)際的狀態(tài)是否與預(yù)期的狀態(tài)一

致。因此白盒測(cè)試又稱為結(jié)構(gòu)測(cè)試

或邏輯驅(qū)動(dòng)測(cè)試。

■善紇△縣售用白盒測(cè)試方法,主要

想對(duì)程方寢唳進(jìn)行如下而檢查:

?y"程序模塊的所有獨(dú)立的執(zhí)行路

徑至少測(cè)試一次;

?對(duì)所有的邏輯判定,取“真”與

里“假”的兩種情況都至少測(cè)試一

次;

循軍的邊界和運(yùn)行界限內(nèi)執(zhí)行

循環(huán)體;

?測(cè)試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等。

對(duì)一個(gè)具有多重選擇和循環(huán)嵌套的

程序,不同的路徑數(shù)目可能是天文

數(shù)字。給出一個(gè)小程序的流程圖,

它包括了一個(gè)執(zhí)行2。次的循環(huán)。

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

對(duì)每一條路徑進(jìn)行測(cè)試需要1毫秒,

假定一年工作365x24小時(shí),要想

把所有路徑測(cè)試完,需3170年。

邏輯覆蓋

邏輯覆蓋是以程序內(nèi)部的邏輯結(jié)構(gòu)為

基礎(chǔ)的設(shè)計(jì)測(cè)試用例的技術(shù)。它屬白

盒測(cè)試。

.語句覆蓋?判定-條件覆蓋

?判定覆蓋?條件組合覆蓋

?條件覆蓋?路徑覆蓋。

(TV)

(IAWX)puv(oua)puv

(ou)u

PUK(zqv)

(TV)

(IAV/X)puv(0=a)puv

u

』0(zuv)PUK(OHg)PUK(IAV)

{(IAV、X)xo(zuv)}

{(ou)u

PUKPUK(IAV)}

個(gè)

(。個(gè)jn

((

I

AI

XA

)X

3

J

O0

P{UU

U(p

liP

NelU

P{xlK

)

S{(((

(OJZZ

{IOHH

HUVV

(A)

oXeP)

u)Js

qlU-

=oKOO

)0uUu

(P(1

p(sZp

S2Hu

個(gè)(Vu

()l)(

Ia

}AJI

qAVA

V~OH

個(gè)orUV

)u)a

K}o}

JJJ

)OuOO

nU}UU

uHH

(IAX)1(OHa一Ou

』0(ZHV)1(OHalou

=0I(lev)-Ou

』0(ZHV)pill(IAV)JOUH

((IAX)=OCUV)}

puu{(OHeJOUs(IAV)JOU}H

KIAX)=0CUV)}

I{(0由)I(IAV)}OUu

個(gè)

6個(gè)qSO)my

(IAWX)JOU

1CHV)JOUpillaHepuu(lev)H

{(Tv/X)=0CUV)}JOU

puv{(0由)puv(IAV)}u

個(gè)

(p個(gè)jK)n

語句覆蓋

-語句覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,

運(yùn)行被測(cè)程序,使得每一可執(zhí)行語

句至少執(zhí)行一次。

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

都在路徑L1上,所以選擇路徑L1設(shè)

計(jì)測(cè)試用例,就可以覆蓋所有的可

執(zhí)行語句。

■測(cè)試用例的設(shè)計(jì)格式如下

【輸入的(A,B,X),輸出的(A,B,X)】

■為圖例設(shè)計(jì)滿足語句覆蓋的測(cè)試用例

是:

[(2,0,4),(2,0,3)]

覆蓋ace[L1]

(A=2)and(B=0)or

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

判定覆蓋

.判定覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用

例,運(yùn)行被測(cè)程序,使得程序中

每個(gè)判斷的取真分支和取假分支

至少經(jīng)歷一次。

-判定覆蓋又稱為分支覆蓋。

.對(duì)于圖例,如果選擇路徑L1和L2,

就可得滿足要求的測(cè)試用例:

■1(2,0,4),(2,0,3)】覆蓋ace【LI】

【(1,1,1),(1,1,1)]覆蓋abd[L2]

(A=2)and(B=0)or

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

not(A>1)andnot(A=2)andnot(X>1)

or

not(B=0)andnot(A=2)andnot(X>1)

.如果選擇路徑L3和L4,還可得另一

組可用的測(cè)試用例:

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

[(3,0,3),(3,1,1)1覆蓋acd[L4]

not(A>1)and(X>1)ornot(B=0)and

(A=2)ornot(B=0)ard(X>1)

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

not(X/A>1)

條件覆蓋

-條件覆蓋就是設(shè)計(jì)若干個(gè)測(cè)試用例,

運(yùn)行被測(cè)程序,使得程序中每個(gè)判

斷的每個(gè)條件的可能取值至少執(zhí)行

一次。

■在圖例中,我們事先可對(duì)所有條件

的取值加以標(biāo)記。例如,

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

?條件A>1取真為Ti,取假為五

條件B=0取其為12,取假為T2

-對(duì)于第二個(gè)判斷:_

?條件A=2取真為T3,取假為工

條件X>1取真為1寸,取假為T4

測(cè)試用例覆蓋分支條件取值

【(2,0,4),(2,0,3)1Ll(c,e)T1T2T3T4

[(1,0,1),(1,0,1)L2(b,d)TIT2TZ1\

【(2,1,1),(2,1,2)】L3(b,e)1而3后

測(cè)試用例覆蓋分支條件取值

[0,0,3),(1,0,4)1L3(b,e)E豈辿

【(2,1,1),(2,1,2)】L3(b,e)TITZTST^

判定-條件覆蓋

-判定-條件覆蓋就是設(shè)計(jì)足夠的測(cè)試

用例,使得判斷中每個(gè)條件的所有可

能取值至少執(zhí)行一次,每個(gè)判斷中的

每個(gè)條件的可能取值至少執(zhí)行一次。

測(cè)試用例覆蓋分支條件取值

【(2,0,4),(2,0,3)1Ll(c,e)T1T2T3T4

L(l,1,1),(1,1,1)1L2(b,d)

(A=2)and(B=0)or

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

not(A>1)andnot(A=2)andnot(X>1)

or

not(B=0)andnot(A=2)andnot(X>1)

A>1B=oT

and4X=X/A

>X=X+1

條件組合覆蓋

■條件組合覆蓋就是設(shè)計(jì)足夠的測(cè)

試用例,運(yùn)行被測(cè)程序,使得每

個(gè)判斷的所有可能的條件取值組

合至少嬴行一次。

記①A>1,B=O作Ti8

②A>1,BrO作TifZ

③A才1,B=O作弓二

④A才1,BrO作flfZ

⑤A=2,X>1作T3g

⑥A=2,X》1作聲

⑦AW2,X>1作亙

⑧AW2,X》1作不后

測(cè)試用例覆蓋條件覆蓋組合

【(2,0,4),(2,0,3)】區(qū)1)「目32①,⑤

1(2,1,1),(2,1,2)1(L3)TITZTST^②,⑥

【(1,0,3),(1,0,4)】③,⑦

[(1,1,1

溫馨提示

  • 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)論