版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 幼兒捉迷藏課程設(shè)計(jì)
- 英雄之旅課程設(shè)計(jì)理念
- 酒店行業(yè)銷售工作總結(jié)
- 2025年高考?xì)v史一輪復(fù)習(xí)之世界多極化
- 如何將愿景轉(zhuǎn)化為年度工作計(jì)劃
- 2023-2024學(xué)年福建省福州市福清市高一(下)期中語文試卷
- 漢字偏旁部首名稱大全表
- 文化行業(yè)市場拓展總結(jié)
- 鏡子銷售工作總結(jié)
- 2024年美術(shù)教案(集錦篇)
- 全球變暖視野下中國與墨西哥的能源現(xiàn)狀分析
- 建筑結(jié)構(gòu)荷載統(tǒng)計(jì)計(jì)算表格(自動(dòng)版)
- 學(xué)前教育學(xué)課程思政建設(shè)
- 事故隱患報(bào)告和舉報(bào)獎(jiǎng)勵(lì)制度
- 腹部外傷門診病歷
- 品質(zhì)異常處理及要求培訓(xùn)
- 模具部年終總結(jié)--ppt課件
- 立式熱虹吸再沸器機(jī)械設(shè)計(jì)說明書
- 國家開放大學(xué)電大《生產(chǎn)與運(yùn)作管理》2025-2026期末試題及答案
- 質(zhì)量保證大綱(共14頁)
- 木材材積表0.1-10米.xls
評論
0/150
提交評論