軟件測試基礎(chǔ) 完整版本_第1頁
軟件測試基礎(chǔ) 完整版本_第2頁
軟件測試基礎(chǔ) 完整版本_第3頁
軟件測試基礎(chǔ) 完整版本_第4頁
軟件測試基礎(chǔ) 完整版本_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、編輯課件1軟件測試技術(shù)基礎(chǔ)軟件測試技術(shù)基礎(chǔ)PartPart 軟件測試方法軟件測試方法華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件2第第5 5章章 面向?qū)ο筌浖臏y試面向?qū)ο筌浖臏y試l本章重點(diǎn)本章重點(diǎn)面向?qū)ο筌浖奶攸c(diǎn)面向?qū)ο筌浖奶攸c(diǎn)什么是面向?qū)ο蟮膯卧??什么是面向?qū)ο蟮膯卧咳绾卫萌绾卫肑Unit進(jìn)行單元測試?進(jìn)行單元測試?華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件5.1 5.1 概述概述l 對象對象定義定義對象是一個可操作的實(shí)體,它既包含了對象是一個可操作的實(shí)體,它既包含了特定特定的數(shù)據(jù)的數(shù)據(jù),又包含了操作這些數(shù)據(jù)的代碼,即,又包含了操作這些數(shù)據(jù)的代碼,即方法方法。針對對象

2、的測試針對對象的測試l對象的封裝對象的封裝信息隱藏對測試的影響信息隱藏對測試的影響l對象的狀態(tài)對象的狀態(tài)對象狀態(tài)的轉(zhuǎn)化對象狀態(tài)的轉(zhuǎn)化l對象的生命周期對象的生命周期狀態(tài)與生命期是否相符狀態(tài)與生命期是否相符l對象的交互對象的交互消息的發(fā)送和接受消息的發(fā)送和接受華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件45.1 5.1 概述概述l 類類定義定義是通過抽象數(shù)據(jù)類型的方法實(shí)現(xiàn)的一種數(shù)據(jù)是通過抽象數(shù)據(jù)類型的方法實(shí)現(xiàn)的一種數(shù)據(jù)類型,是具有共性的對象集合。類型,是具有共性的對象集合。對類的測試對類的測試l構(gòu)造函數(shù)構(gòu)造函數(shù)不同的構(gòu)造函數(shù)以及是否調(diào)用其他對象不同的構(gòu)造函數(shù)以及是否調(diào)用其他對象l析構(gòu)函數(shù)(可選

3、)析構(gòu)函數(shù)(可選)數(shù)據(jù)空間及時釋放數(shù)據(jù)空間及時釋放l方法方法關(guān)注前置條件和后置條件關(guān)注前置條件和后置條件l符合設(shè)計符合設(shè)計華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件55.1 5.1 概述概述l封裝封裝定義:定義:是將數(shù)據(jù)以及操作數(shù)據(jù)的方法關(guān)聯(lián)起來,是將數(shù)據(jù)以及操作數(shù)據(jù)的方法關(guān)聯(lián)起來,構(gòu)成的一個具有類類型的對象的描述。構(gòu)成的一個具有類類型的對象的描述。 封裝要求類高度內(nèi)聚,且耦合很松。封裝要求類高度內(nèi)聚,且耦合很松。測試的難點(diǎn)測試的難點(diǎn)l封裝使得內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)隱藏起來,外界無法訪問封裝使得內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)隱藏起來,外界無法訪問l封裝后對象的獨(dú)立性加重集成測試的負(fù)擔(dān)封裝后對象的獨(dú)立性加重集成測

4、試的負(fù)擔(dān)華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件65.1 5.1 概述概述l 繼承繼承定義定義是類之間的一種聯(lián)系,通過從某個類(稱父是類之間的一種聯(lián)系,通過從某個類(稱父類)派生可以得到一個新的類(稱子類或派生類),類)派生可以得到一個新的類(稱子類或派生類),該類具有父類的特點(diǎn)和功能,同時還具有新的特點(diǎn)和該類具有父類的特點(diǎn)和功能,同時還具有新的特點(diǎn)和功能。功能。給測試帶來的挑戰(zhàn)給測試帶來的挑戰(zhàn)l缺陷傳播缺陷傳播l重復(fù)測試重復(fù)測試華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件75.1 5.1 概述概述l多態(tài)多態(tài)定義:定義:一個對外接口,多個內(nèi)在實(shí)現(xiàn)方一個對外接口,多個內(nèi)在實(shí)現(xiàn)方法。法

5、。分為參數(shù)多態(tài)和包含多態(tài)。分為參數(shù)多態(tài)和包含多態(tài)。一般通過動態(tài)測試來檢查。一般通過動態(tài)測試來檢查。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件85.1 5.1 概述概述l消息消息對象之間通過消息的傳遞產(chǎn)生相互作用,通對象之間通過消息的傳遞產(chǎn)生相互作用,通過消息來請求執(zhí)行某個操作。過消息來請求執(zhí)行某個操作。 測試時應(yīng)考慮測試時應(yīng)考慮l消息的發(fā)送者消息的發(fā)送者l消息的接收者消息的接收者l消息所包含的參數(shù)消息所包含的參數(shù) 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件95.1 5.1 概述概述l接口接口用于描述一系列規(guī)范的行為用于描述一系列規(guī)范的行為對接口的測試應(yīng)注意對接口的測試應(yīng)注意l接口包

6、含的行為應(yīng)與對應(yīng)類的行為相符;接口包含的行為應(yīng)與對應(yīng)類的行為相符;l接口往往與其他接口或類具有關(guān)系,應(yīng)測試到所有接口往往與其他接口或類具有關(guān)系,應(yīng)測試到所有可能的作用方式??赡艿淖饔梅绞?。 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件l 面向?qū)ο蠹夹g(shù)面向?qū)ο蠹夹g(shù)的特點(diǎn)給測試帶來的新問題具體表現(xiàn)為:的特點(diǎn)給測試帶來的新問題具體表現(xiàn)為:(1)封裝把數(shù)據(jù)及對數(shù)據(jù)的操作封裝在一起封裝把數(shù)據(jù)及對數(shù)據(jù)的操作封裝在一起,限制了對象屬性,限制了對象屬性對外的透明性和外界對它的操作權(quán)限,在某種程度上避免了對外的透明性和外界對它的操作權(quán)限,在某種程度上避免了對數(shù)據(jù)的非法操作,有效防止了故障的擴(kuò)散。但同時,封裝

7、對數(shù)據(jù)的非法操作,有效防止了故障的擴(kuò)散。但同時,封裝機(jī)制也給測試數(shù)據(jù)的生成、測試路徑的選取以及測試結(jié)構(gòu)的機(jī)制也給測試數(shù)據(jù)的生成、測試路徑的選取以及測試結(jié)構(gòu)的分析帶來了困難。分析帶來了困難。(2)繼承實(shí)現(xiàn)了共享父類中定義的數(shù)據(jù)和操作,繼承實(shí)現(xiàn)了共享父類中定義的數(shù)據(jù)和操作,同時也可定義同時也可定義新的特征。子類是在新的環(huán)境中存在,所以父類的正確性不新的特征。子類是在新的環(huán)境中存在,所以父類的正確性不能保證子類的正確性。繼承使代碼的重用率得到了提高,但能保證子類的正確性。繼承使代碼的重用率得到了提高,但同時也使故障的傳播幾率增加。同時也使故障的傳播幾率增加。(3)多態(tài)和動態(tài)綁定增加了系統(tǒng)運(yùn)行中可能的

8、執(zhí)行路徑,)多態(tài)和動態(tài)綁定增加了系統(tǒng)運(yùn)行中可能的執(zhí)行路徑,而且而且給面向?qū)ο筌浖砹藝?yán)重的不確定性,給測試覆蓋率的活給面向?qū)ο筌浖砹藝?yán)重的不確定性,給測試覆蓋率的活動帶來新的困難。動帶來新的困難。 面向?qū)ο蟮能浖y試與傳統(tǒng)軟件測試面向?qū)ο蟮能浖y試與傳統(tǒng)軟件測試華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件l 1 數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求 數(shù)據(jù)封裝是數(shù)據(jù)封裝是數(shù)據(jù)和數(shù)據(jù)有關(guān)的操作數(shù)據(jù)和數(shù)據(jù)有關(guān)的操作的集合。的集合。 檢查數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求,基本原則是數(shù)據(jù)成員是檢查數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求,基本原則是數(shù)據(jù)成員是否被外界(數(shù)據(jù)成員所屬的

9、類或子類以外的調(diào)用)直接調(diào)用。否被外界(數(shù)據(jù)成員所屬的類或子類以外的調(diào)用)直接調(diào)用。 當(dāng)改變數(shù)據(jù)成員的結(jié)構(gòu)時,是否影響了類的對外接口,是否會導(dǎo)當(dāng)改變數(shù)據(jù)成員的結(jié)構(gòu)時,是否影響了類的對外接口,是否會導(dǎo)致相應(yīng)外界必須改動。致相應(yīng)外界必須改動。 值得注意值得注意,有時強(qiáng)制的類型轉(zhuǎn)換會破壞數(shù)據(jù)的封裝特性。,有時強(qiáng)制的類型轉(zhuǎn)換會破壞數(shù)據(jù)的封裝特性。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件8.2 類測試類測試 l 例如:例如:class Hidenprivate:int a=1;char *p= hiden;class Visiblepublic:int b=2;char *s= visible;

10、.Hiden pp;Visible *qq=(Visible *)&pp;在上面的程序段中,在上面的程序段中,pp的數(shù)據(jù)成員可以通過的數(shù)據(jù)成員可以通過qq被隨意訪問。被隨意訪問。 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件l 1. 繼承的成員函數(shù)是否都不需要測試?繼承的成員函數(shù)是否都不需要測試? 對父類中已經(jīng)測試過的成員函數(shù),兩種情況需要在子類中重對父類中已經(jīng)測試過的成員函數(shù),兩種情況需要在子類中重新測試:新測試:a)繼承的成員函數(shù)在子類中做了改動;)繼承的成員函數(shù)在子類中做了改動;b)成員函)成員函數(shù)調(diào)用了改動過的成員函數(shù)的部分。數(shù)調(diào)用了改動過的成員函數(shù)的部分。 Derived

11、:Redefined()顯然需要重新測試。對于顯然需要重新測試。對于Derived:Inherited(),如果它有調(diào)用,如果它有調(diào)用Redefined()的語句的語句(x=x/Redefined(),就需要重新測試,反之,無此必要。就需要重新測試,反之,無此必要。 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件l 2. 對父類的測試是否能照搬到子類?對父類的測試是否能照搬到子類? 延用上面的假設(shè),延用上面的假設(shè),Base:Redefined()和和Derived:Redefined()已經(jīng)已經(jīng)是不同的成員函數(shù),它們有不同的服務(wù)說明和執(zhí)行。是不同的成員函數(shù),它們有不同的服務(wù)說明和執(zhí)行。 應(yīng)該

12、對應(yīng)該對 Derived:Redefined()重新測試分析,設(shè)計測試用例。但由重新測試分析,設(shè)計測試用例。但由于面向?qū)ο蟮睦^承使得兩個函數(shù)有相似,故只需在于面向?qū)ο蟮睦^承使得兩個函數(shù)有相似,故只需在 Base:Redefined()的測試要求和測試用例上添加對的測試要求和測試用例上添加對Derived:Redfined()新的測試要求和增補(bǔ)相應(yīng)的測試用例。新的測試要求和增補(bǔ)相應(yīng)的測試用例。 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件l 例如:例如:Base:Redefined()含有如下語句含有如下語句if (value0) message (less);else if (value=

13、0) message (equal);else message (more);Derived:Redfined()中定義為中定義為if (value0) message (less);else if (value=0) message (It is equal);elsemessage (more);if (value=88)message(luck);在原有的測試上,對在原有的測試上,對Derived:Redfined()的測試只需做如下改動:的測試只需做如下改動:將將value=0的測試結(jié)果期望改動;增加的測試結(jié)果期望改動;增加value=88的測試。的測試。 華東交通大學(xué)軟件學(xué)院華東交通

14、大學(xué)軟件學(xué)院編輯課件165.2 5.2 面向?qū)ο蟮能浖y試模型面向?qū)ο蟮能浖y試模型l面向?qū)ο蟮能浖_發(fā)面向?qū)ο蟮能浖_發(fā)面向?qū)ο蟮姆治觯嫦驅(qū)ο蟮姆治觯∣OA)面向?qū)ο蟮脑O(shè)計(面向?qū)ο蟮脑O(shè)計(OOD)面向?qū)ο蟮木幊蹋嫦驅(qū)ο蟮木幊蹋∣OP)華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件175.2 5.2 面向?qū)ο蟮能浖y試模型面向?qū)ο蟮能浖y試模型l面向?qū)ο蟮能浖y試面向?qū)ο蟮能浖y試面向?qū)ο蠓治龅臏y試面向?qū)ο蠓治龅臏y試面向?qū)ο笤O(shè)計的測試面向?qū)ο笤O(shè)計的測試面向?qū)ο缶幊痰臏y試面向?qū)ο缶幊痰臏y試l面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l面向?qū)ο蟮募蓽y試面向?qū)ο蟮募蓽y試l面向?qū)ο蟮南到y(tǒng)測試面向

15、對象的系統(tǒng)測試對分析和設(shè)計得到的文檔對分析和設(shè)計得到的文檔進(jìn)行測試進(jìn)行測試對編程風(fēng)格和代碼進(jìn)行測對編程風(fēng)格和代碼進(jìn)行測試試華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件面向?qū)ο筌浖y試模型面向?qū)ο筌浖y試模型OO System TestOO Integrate TestOOAOODOOPOOA TestOOD TestOOP TestOO Unit Test面向?qū)ο竺嫦驅(qū)ο?分析的測試分析的測試面向?qū)ο竺嫦驅(qū)ο?設(shè)計的測試設(shè)計的測試面向?qū)ο竺嫦驅(qū)ο?編程的測試編程的測試面向?qū)ο竺嫦驅(qū)ο笙到y(tǒng)測試系統(tǒng)測試面向?qū)ο竺嫦驅(qū)ο髥卧獪y試單元測試面向?qū)ο竺嫦驅(qū)ο蠹蓽y試集成測試華東交通大學(xué)軟件學(xué)院華東交通

16、大學(xué)軟件學(xué)院編輯課件面向?qū)ο鬁y試的模型面向?qū)ο鬁y試的模型l 面向?qū)ο蠓治雒嫦驅(qū)ο蠓治鯫OA的的 測試測試 OOA直接映射問題空間,全面的將問題空間中實(shí)現(xiàn)功能的現(xiàn)直接映射問題空間,全面的將問題空間中實(shí)現(xiàn)功能的現(xiàn)實(shí)抽象化。實(shí)抽象化。 將問題空間中的實(shí)例抽象為對象,用對象的結(jié)構(gòu)反映問題空將問題空間中的實(shí)例抽象為對象,用對象的結(jié)構(gòu)反映問題空間的復(fù)雜實(shí)例和復(fù)雜關(guān)系,用屬性和服務(wù)表示實(shí)例的特性和間的復(fù)雜實(shí)例和復(fù)雜關(guān)系,用屬性和服務(wù)表示實(shí)例的特性和行為。行為。 OOA對問題空間分析抽象的不完整,最終會影響軟件的功能對問題空間分析抽象的不完整,最終會影響軟件的功能實(shí)現(xiàn),導(dǎo)致軟件開發(fā)后期產(chǎn)生大量原本可避免的修補(bǔ)

17、工作;實(shí)現(xiàn),導(dǎo)致軟件開發(fā)后期產(chǎn)生大量原本可避免的修補(bǔ)工作; 冗余的對象或結(jié)構(gòu)會影響類的選定、程序的整體結(jié)構(gòu)或增加冗余的對象或結(jié)構(gòu)會影響類的選定、程序的整體結(jié)構(gòu)或增加程序員不必要的工作量。程序員不必要的工作量。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件l 面向?qū)ο笤O(shè)計面向?qū)ο笤O(shè)計OOD的測試的測試OOD確定類和類的結(jié)構(gòu)不僅滿足滿足當(dāng)前需求分析的需求,確定類和類的結(jié)構(gòu)不僅滿足滿足當(dāng)前需求分析的需求,更重要的是通過重新組合或加以適當(dāng)?shù)难a(bǔ)充,能方便實(shí)現(xiàn)功更重要的是通過重新組合或加以適當(dāng)?shù)难a(bǔ)充,能方便實(shí)現(xiàn)功能的重用和擴(kuò)增。能的重用和擴(kuò)增。對對OOD的測試針對功能的實(shí)現(xiàn)和重用以及對的測試針對功能的實(shí)

18、現(xiàn)和重用以及對OOA結(jié)果的拓展結(jié)果的拓展。對認(rèn)定的類測試對認(rèn)定的類測試(是否涵蓋了OOA中所有認(rèn)定的對象;是否能體現(xiàn)OOA中定義的屬性;是否能實(shí)現(xiàn)OOA中定義的服務(wù);是否對應(yīng)著一個含義明確的數(shù)據(jù)抽象;是否盡可能少的依賴其他類;類中的方法是否單用途)對構(gòu)造的類層次結(jié)構(gòu)的測試對構(gòu)造的類層次結(jié)構(gòu)的測試(類層次結(jié)構(gòu)是否涵蓋了所有定義的類;是否能體現(xiàn)OOA中定義的實(shí)例關(guān)聯(lián);是否能實(shí)現(xiàn)OOA中定義的消息關(guān)聯(lián);子類是否具有父類沒有的新特性;子類間的共同特性是否完全在父類中得以體現(xiàn))對類庫的支持的測試對類庫的支持的測試面向?qū)ο鬁y試的模型面向?qū)ο鬁y試的模型華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件面向?qū)ο?/p>

19、測試的模型面向?qū)ο鬁y試的模型l 面向?qū)ο蟪绦蚴前压δ艿膶?shí)現(xiàn)分布在類中。面向?qū)ο蟪绦蚴前压δ艿膶?shí)現(xiàn)分布在類中。能正確實(shí)現(xiàn)功能的類,通能正確實(shí)現(xiàn)功能的類,通過消息傳遞來協(xié)同實(shí)現(xiàn)設(shè)計要求的功能。這種程序架構(gòu)能將出現(xiàn)的錯過消息傳遞來協(xié)同實(shí)現(xiàn)設(shè)計要求的功能。這種程序架構(gòu)能將出現(xiàn)的錯誤精確的確定在某一具體的類。誤精確的確定在某一具體的類。 l 對對OOP的測試重點(diǎn)集中在類功能的實(shí)現(xiàn)和相應(yīng)的面向?qū)ο蟪绦蚣軜?gòu),的測試重點(diǎn)集中在類功能的實(shí)現(xiàn)和相應(yīng)的面向?qū)ο蟪绦蚣軜?gòu),主要體現(xiàn)為以下兩個方面:主要體現(xiàn)為以下兩個方面:(1)數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求)數(shù)據(jù)成員是否滿足數(shù)據(jù)封裝的要求基本原則是數(shù)據(jù)成員是否被基本原則

20、是數(shù)據(jù)成員是否被外界(數(shù)據(jù)成員所屬的類或子類以外的調(diào)用)直接調(diào)用。外界(數(shù)據(jù)成員所屬的類或子類以外的調(diào)用)直接調(diào)用。(2)類是否實(shí)現(xiàn)了要求的功能)類是否實(shí)現(xiàn)了要求的功能測試類的功能,不能僅滿足于代碼能測試類的功能,不能僅滿足于代碼能無錯運(yùn)行或被測試的類能提供的功能正確,應(yīng)以所做的無錯運(yùn)行或被測試的類能提供的功能正確,應(yīng)以所做的OOD結(jié)果為依結(jié)果為依據(jù),檢測類提供的功能是否滿足了設(shè)計的要求,是否有缺陷。據(jù),檢測類提供的功能是否滿足了設(shè)計的要求,是否有缺陷。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件225.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l與傳統(tǒng)單元測試的區(qū)別與傳統(tǒng)單元測試的

21、區(qū)別從單元的劃分看從單元的劃分看從測試方法看從測試方法看從測試對象看從測試對象看華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件235.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l從單元劃分看從單元劃分看面向過程:以面向過程:以過程或功能過程或功能作為單元劃分作為單元劃分的依據(jù)。的依據(jù)。面向?qū)ο螅阂悦嫦驅(qū)ο螅阂灶愵愖鳛閱卧鳛閱卧猯是否需要測試所有的類是否需要測試所有的類l無法實(shí)例化的類如何測試無法實(shí)例化的類如何測試l繼承的類如何測試?yán)^承的類如何測試華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件245.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l與傳統(tǒng)單元測試的區(qū)別與傳統(tǒng)單元測試

22、的區(qū)別從單元的劃分看從單元的劃分看從測試方法看從測試方法看從測試對象看從測試對象看華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件255.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l從測試方法看從測試方法看傳統(tǒng)的單元測試:傳統(tǒng)的單元測試:靜態(tài)測試靜態(tài)測試+動態(tài)測試動態(tài)測試面向?qū)ο蟮膯卧獪y試:更強(qiáng)調(diào)面向?qū)ο蟮膯卧獪y試:更強(qiáng)調(diào)自動化自動化,不強(qiáng)調(diào)代碼檢查不強(qiáng)調(diào)代碼檢查l如何設(shè)計測試用例如何設(shè)計測試用例l如何構(gòu)造測試驅(qū)動程序,并避免巨大的工如何構(gòu)造測試驅(qū)動程序,并避免巨大的工作量作量l如何最大可能實(shí)現(xiàn)自動化的單元測試如何最大可能實(shí)現(xiàn)自動化的單元測試華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課

23、件265.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l與傳統(tǒng)單元測試的區(qū)別與傳統(tǒng)單元測試的區(qū)別從單元的劃分看從單元的劃分看從測試方法看從測試方法看從測試對象看從測試對象看華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件275.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l從測試對象看從測試對象看傳統(tǒng)的單元測試主要關(guān)注傳統(tǒng)的單元測試主要關(guān)注l函數(shù)實(shí)現(xiàn)的功能函數(shù)實(shí)現(xiàn)的功能l如何通過接口傳遞數(shù)據(jù)或消息如何通過接口傳遞數(shù)據(jù)或消息l函數(shù)內(nèi)部的邏輯和效率函數(shù)內(nèi)部的邏輯和效率面向?qū)ο蟮膯卧獪y試主要關(guān)注面向?qū)ο蟮膯卧獪y試主要關(guān)注l類的方法類的方法l類的狀態(tài)類的狀態(tài)華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件

24、學(xué)院編輯課件285.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l從測試對象看從測試對象看面向?qū)ο蟮膯卧獪y試應(yīng)解決面向?qū)ο蟮膯卧獪y試應(yīng)解決l如何測試私有方法或受到保護(hù)的方法如何測試私有方法或受到保護(hù)的方法l是否需要測試類中的所有方法是否需要測試類中的所有方法華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件295.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l實(shí)施的基本步驟實(shí)施的基本步驟劃分類的優(yōu)先級劃分類的優(yōu)先級根據(jù)優(yōu)先級的大小確定需根據(jù)優(yōu)先級的大小確定需要執(zhí)行單元測試的類。要執(zhí)行單元測試的類。靜態(tài)測試靜態(tài)測試去除低級錯誤,評估類的質(zhì)量去除低級錯誤,評估類的質(zhì)量對需要執(zhí)行單元測試的類設(shè)

25、計測試用例對需要執(zhí)行單元測試的類設(shè)計測試用例開發(fā)測試驅(qū)動開發(fā)測試驅(qū)動 自動化的腳本組織測試用例自動化的腳本組織測試用例執(zhí)行測試,對測試結(jié)果進(jìn)行總結(jié)執(zhí)行測試,對測試結(jié)果進(jìn)行總結(jié) 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件305.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l測試用例的設(shè)計測試用例的設(shè)計案例說明案例說明根據(jù)代碼設(shè)計測試用例根據(jù)代碼設(shè)計測試用例根據(jù)前置條件和后置條件設(shè)計測試用例根據(jù)前置條件和后置條件設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根據(jù)方法特性設(shè)計測試用例根據(jù)方法特性設(shè)計測試用例華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件315.3 5.3 面

26、向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l案例說明案例說明MyPointMyShapeMyLineMyTriangleScaleneIsosceles華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件325.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l測試用例的設(shè)計測試用例的設(shè)計案例說明案例說明根據(jù)代碼設(shè)計測試用例根據(jù)代碼設(shè)計測試用例根據(jù)前置條件和后置條件設(shè)計測試用例根據(jù)前置條件和后置條件設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根據(jù)方法特性設(shè)計測試用例根據(jù)方法特性設(shè)計測試用例華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件335.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y

27、試l根據(jù)代碼設(shè)計測試用例根據(jù)代碼設(shè)計測試用例公有方法公有方法保護(hù)方法保護(hù)方法私有方法私有方法l直接修改被測代碼直接修改被測代碼l在被測類中加入公有方法在被測類中加入公有方法l利用內(nèi)類機(jī)制利用內(nèi)類機(jī)制華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件345.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l測試用例的設(shè)計測試用例的設(shè)計案例說明案例說明根據(jù)代碼設(shè)計測試用例根據(jù)代碼設(shè)計測試用例根據(jù)前置條件和后置條件設(shè)計測試用例根據(jù)前置條件和后置條件設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根據(jù)方法特性設(shè)計測試用例根據(jù)方法特性設(shè)計測試用例華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件

28、355.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l根據(jù)前置和后置條件設(shè)計測試用例根據(jù)前置和后置條件設(shè)計測試用例l定義定義前置條件前置條件是方法被執(zhí)行之前應(yīng)該滿足的是方法被執(zhí)行之前應(yīng)該滿足的條件;條件;后置條件后置條件是當(dāng)方法執(zhí)行結(jié)束之后應(yīng)滿足是當(dāng)方法執(zhí)行結(jié)束之后應(yīng)滿足的條件。的條件。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件365.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l測試用例的設(shè)計測試用例的設(shè)計案例說明案例說明根據(jù)代碼設(shè)計測試用例根據(jù)代碼設(shè)計測試用例根據(jù)前置條件和后置條件設(shè)計測試用例根據(jù)前置條件和后置條件設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根

29、據(jù)方法特性設(shè)計測試用例根據(jù)方法特性設(shè)計測試用例華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件375.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例l狀態(tài)轉(zhuǎn)換圖中清晰地列出了類可能處于的狀態(tài)轉(zhuǎn)換圖中清晰地列出了類可能處于的所有狀態(tài),每一對狀態(tài)轉(zhuǎn)換都涉及一個觸所有狀態(tài),每一對狀態(tài)轉(zhuǎn)換都涉及一個觸發(fā)事件。發(fā)事件。 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件385.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l測試用例的設(shè)計測試用例的設(shè)計案例說明案例說明根據(jù)代碼設(shè)計測試用例根據(jù)代碼設(shè)計測試用例根據(jù)前置條件和后置條件設(shè)計測試用例根據(jù)前置條件

30、和后置條件設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例根據(jù)方法特性設(shè)計測試用例根據(jù)方法特性設(shè)計測試用例華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件395.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l根據(jù)方法特性設(shè)計測試用例根據(jù)方法特性設(shè)計測試用例構(gòu)造函數(shù)構(gòu)造函數(shù)檢測被測類在各種情況下檢測被測類在各種情況下所創(chuàng)建的對象能否正常初始化所創(chuàng)建的對象能否正常初始化功能函數(shù)功能函數(shù)結(jié)合邊界值、等價類檢驗(yàn)結(jié)合邊界值、等價類檢驗(yàn)每種功能是否能正確完成每種功能是否能正確完成接口函數(shù)接口函數(shù)檢驗(yàn)類能否在各種狀態(tài)之檢驗(yàn)類能否在各種狀態(tài)之間成功轉(zhuǎn)化間成功轉(zhuǎn)化華東交通大學(xué)軟件學(xué)院華東交通大學(xué)

31、軟件學(xué)院編輯課件405.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l 綜合策略綜合策略根據(jù)方法特性劃分:根據(jù)方法特性劃分:構(gòu)造函數(shù)、功能函數(shù)和接口函數(shù)。構(gòu)造函數(shù)、功能函數(shù)和接口函數(shù)。針對構(gòu)造函數(shù),針對構(gòu)造函數(shù),根據(jù)前置和后置條件設(shè)計用例。根據(jù)前置和后置條件設(shè)計用例。針對功能函數(shù)針對功能函數(shù)l 公有方法:基于前置條件和后置條件設(shè)計測試用例。公有方法:基于前置條件和后置條件設(shè)計測試用例。l 受保護(hù)的方法:嚴(yán)格區(qū)分有訪問權(quán)限和無訪問權(quán)限的前置條件和后置受保護(hù)的方法:嚴(yán)格區(qū)分有訪問權(quán)限和無訪問權(quán)限的前置條件和后置條件,設(shè)計測試用例。條件,設(shè)計測試用例。l 私有方法:根據(jù)實(shí)際情況選用適當(dāng)?shù)牟呗赃M(jìn)行

32、測試。私有方法:根據(jù)實(shí)際情況選用適當(dāng)?shù)牟呗赃M(jìn)行測試。針對接口函數(shù),針對接口函數(shù),根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例。根據(jù)狀態(tài)轉(zhuǎn)換設(shè)計測試用例。對于以上每種情況,都應(yīng)結(jié)合邊界值、等價類等測試方法來對于以上每種情況,都應(yīng)結(jié)合邊界值、等價類等測試方法來選擇測試數(shù)據(jù)。選擇測試數(shù)據(jù)。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件415.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l測試驅(qū)動的實(shí)現(xiàn)方式測試驅(qū)動的實(shí)現(xiàn)方式利用利用main方法方法嵌入靜態(tài)方法嵌入靜態(tài)方法獨(dú)立的測試類獨(dú)立的測試類華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件425.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l測試代碼的組織測

33、試代碼的組織與產(chǎn)品代碼放在一起與產(chǎn)品代碼放在一起在產(chǎn)品代碼目錄下在產(chǎn)品代碼目錄下與產(chǎn)品代碼并行與產(chǎn)品代碼并行與產(chǎn)品代碼的副本放在一起與產(chǎn)品代碼的副本放在一起華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件435.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l測試驅(qū)動框架測試驅(qū)動框架設(shè)計目標(biāo)設(shè)計目標(biāo)l自動自動l簡單簡單l靈活靈活設(shè)計思想設(shè)計思想lTestCaselTestResult華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件445.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l測試驅(qū)動框架:測試驅(qū)動框架:TestCasel4類操作類操作構(gòu)建和執(zhí)行測試用例構(gòu)建和執(zhí)行測試用例 創(chuàng)建和操

34、作被測類的創(chuàng)建和操作被測類的Object實(shí)例實(shí)例 分析測試用例結(jié)果分析測試用例結(jié)果 將測試過程記錄到日志文件將測試過程記錄到日志文件 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件455.3 5.3 面向?qū)ο蟮膯卧獪y試面向?qū)ο蟮膯卧獪y試l案例實(shí)踐一:案例實(shí)踐一:類類MyPoint的第一次測試嘗的第一次測試嘗試試 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件465.4 JUnit5.4 JUnit測試測試l面臨的問題面臨的問題提高軟件的質(zhì)量需要撰寫測試程序;提高軟件的質(zhì)量需要撰寫測試程序;經(jīng)良好設(shè)計和規(guī)劃的測試類的代碼不需經(jīng)良好設(shè)計和規(guī)劃的測試類的代碼不需要那么繁瑣和冗長;要那么繁瑣和冗長

35、;通過借助于測試類的編寫規(guī)范可以得到通過借助于測試類的編寫規(guī)范可以得到易于操作的測試,且不隨時間變化。易于操作的測試,且不隨時間變化。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件475.4 JUnit5.4 JUnit測試測試l JUnit的概念的概念用于編寫和運(yùn)行可重復(fù)的測試,專門針對用于編寫和運(yùn)行可重復(fù)的測試,專門針對Java代碼的代碼的單元測試,主要用于白盒測試盒回歸測試。單元測試,主要用于白盒測試盒回歸測試。l 3個設(shè)計目標(biāo)個設(shè)計目標(biāo)自動化測試框架自動化測試框架確保代碼持久有效確保代碼持久有效支持測試代碼的重用支持測試代碼的重用華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件485

36、.4 JUnit5.4 JUnit測試測試l JUnit特性及優(yōu)點(diǎn)特性及優(yōu)點(diǎn)l 特性特性利用利用斷言斷言assert*來測試實(shí)際執(zhí)行結(jié)果是否符合預(yù)期結(jié)來測試實(shí)際執(zhí)行結(jié)果是否符合預(yù)期結(jié)果;果;利用利用測試用例測試用例TestCase和和測試包測試包TestSuite方便地組織方便地組織和運(yùn)行測試;和運(yùn)行測試;通過通過文本運(yùn)行器文本運(yùn)行器textui、圖形運(yùn)行器、圖形運(yùn)行器awtui和和swingui提供靈活的交互模式。提供靈活的交互模式。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件495.4 JUnit5.4 JUnit測試測試lJUnit特性及優(yōu)點(diǎn)特性及優(yōu)點(diǎn)l 在支持測試方面,在支持測試方

37、面,JUnit的優(yōu)點(diǎn)的優(yōu)點(diǎn)將測試代碼與產(chǎn)品代碼分開,提高了軟件的將測試代碼與產(chǎn)品代碼分開,提高了軟件的可維護(hù)性可維護(hù)性;針對某個類的測試代碼經(jīng)少量改動之后即可應(yīng)用于另一針對某個類的測試代碼經(jīng)少量改動之后即可應(yīng)用于另一個類的測試,簡化了測試代碼的撰寫,提高了測試代碼個類的測試,簡化了測試代碼的撰寫,提高了測試代碼的的復(fù)用程度復(fù)用程度;公開源代碼,便于進(jìn)行公開源代碼,便于進(jìn)行二次開發(fā)二次開發(fā),且,且便于擴(kuò)展便于擴(kuò)展。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件505.4 JUnit5.4 JUnit測試測試lJUnit特性及優(yōu)點(diǎn)特性及優(yōu)點(diǎn)l就對軟件開發(fā)與過程的支持而言,就對軟件開發(fā)與過程的支持

38、而言,JUnit有有助于助于加快開發(fā)速度;加快開發(fā)速度;提高軟件代碼質(zhì)量;提高軟件代碼質(zhì)量;提升系統(tǒng)的可信賴度。提升系統(tǒng)的可信賴度。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件515.4 JUnit5.4 JUnit測試測試lJUnit下載與安裝下載與安裝華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件525.4 JUnit5.4 JUnit測試測試lJUnit3.8.x測試思想測試思想華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件5.4 JUnit5.4 JUnit測試測試l Test類類接口類,建立接口類,建立TestCase與與TestSuite類之間的類之間的關(guān)聯(lián)關(guān)聯(lián)l Test

39、Case類類由由TestCase類派生測試驅(qū)動類,包含若類派生測試驅(qū)動類,包含若干測試用例干測試用例l TestSuite類類將多個測試組合成一個測試包,在一個將多個測試組合成一個測試包,在一個測試過程完成對被測類的所有測試測試過程完成對被測類的所有測試l TestResult類類搜集所有測試用例的執(zhí)行結(jié)果。搜集所有測試用例的執(zhí)行結(jié)果。l Assert類類將實(shí)際值與預(yù)期值進(jìn)行比較。將實(shí)際值與預(yù)期值進(jìn)行比較。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件545.4 JUnit5.4 JUnit測試測試l 基于類的單元測試的基本步驟基于類的單元測試的基本步驟創(chuàng)建測試驅(qū)動類;創(chuàng)建測試驅(qū)動類;創(chuàng)建被

40、測類的對象;創(chuàng)建被測類的對象;設(shè)計測試用例和對應(yīng)的測試程序,從方法、狀態(tài)等方面展開測設(shè)計測試用例和對應(yīng)的測試程序,從方法、狀態(tài)等方面展開測試;試;測試完畢釋放已經(jīng)分配的永久性資源;測試完畢釋放已經(jīng)分配的永久性資源;將多個測試用例組織成測試包,必要時需設(shè)定測試用例執(zhí)行的將多個測試用例組織成測試包,必要時需設(shè)定測試用例執(zhí)行的順序;順序;執(zhí)行測試;執(zhí)行測試;檢驗(yàn)并統(tǒng)計測試結(jié)果。檢驗(yàn)并統(tǒng)計測試結(jié)果。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件555.4 JUnit5.4 JUnit測試測試l案例實(shí)踐二:類案例實(shí)踐二:類MyPoint的第二次測的第二次測試嘗試試嘗試華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟

41、件學(xué)院編輯課件565.4 JUnit5.4 JUnit測試測試l JUnit使用經(jīng)驗(yàn)使用經(jīng)驗(yàn)l 基本步驟基本步驟繼承繼承junit.framework.TestCase類;類;填寫填寫setUp()和和tearDown()方法;方法;撰寫撰寫test*測試方法,并用測試方法,并用assert*驗(yàn)證用例的執(zhí)行情驗(yàn)證用例的執(zhí)行情況;況;重寫重寫suite()方法,利用方法,利用addTest加入自己的加入自己的test*測試測試方法;方法;以圖形或文本方式執(zhí)行測試。以圖形或文本方式執(zhí)行測試。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件575.4 JUnit5.4 JUnit測試測試l特殊類的測

42、試特殊類的測試接口類接口類對實(shí)現(xiàn)的類展開測試而進(jìn)而對實(shí)現(xiàn)的類展開測試而進(jìn)而測試到接口類。測試到接口類。抽象類抽象類利用內(nèi)類實(shí)現(xiàn)(利用內(nèi)類實(shí)現(xiàn)(JUnit3.x)。)。繼承類繼承類分別設(shè)計測試驅(qū)動類,用一分別設(shè)計測試驅(qū)動類,用一個組合測試類來將父類和子類的測試加個組合測試類來將父類和子類的測試加入一個包中。入一個包中。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件585.4 JUnit5.4 JUnit測試測試l案例實(shí)踐三:案例實(shí)踐三:MyPoint系列的測試系列的測試華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件595.4 JUnit5.4 JUnit測試測試lJUnit4功能增強(qiáng)功能增強(qiáng)

43、TestBefore, AfterBeforeClass, AfterClass華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件5.5 5.5 面向?qū)ο蟮募蓽y試和系統(tǒng)測試面向?qū)ο蟮募蓽y試和系統(tǒng)測試l 面向?qū)ο笤O(shè)計(面向?qū)ο笤O(shè)計(OOD)采用)采用“造型的觀點(diǎn)造型的觀點(diǎn)”,以,以O(shè)OA為基礎(chǔ)歸納出為基礎(chǔ)歸納出類,并建立類結(jié)構(gòu)或進(jìn)一步構(gòu)造成類庫,實(shí)現(xiàn)分析結(jié)果對問題空間的類,并建立類結(jié)構(gòu)或進(jìn)一步構(gòu)造成類庫,實(shí)現(xiàn)分析結(jié)果對問題空間的抽象。抽象。l OOD 歸納的類,可以是對象簡單的延續(xù),可以是不同對象的相同或歸納的類,可以是對象簡單的延續(xù),可以是不同對象的相同或相似的服務(wù)。相似的服務(wù)。l OOD不

44、是在不是在OOA上的另一思維方式的大動干戈,而是上的另一思維方式的大動干戈,而是OOA的進(jìn)一步的進(jìn)一步細(xì)化和更高層的抽象。細(xì)化和更高層的抽象。 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件5.5 5.5 面向?qū)ο蟮募蓽y試和系統(tǒng)測試面向?qū)ο蟮募蓽y試和系統(tǒng)測試l 與傳統(tǒng)的集成測試的區(qū)別與傳統(tǒng)的集成測試的區(qū)別傳統(tǒng)的集成測試是由底向上通過集成完成的功能模塊進(jìn)行測試,傳統(tǒng)的集成測試是由底向上通過集成完成的功能模塊進(jìn)行測試,一般可以一般可以在部分程序編譯完成的情況下進(jìn)行在部分程序編譯完成的情況下進(jìn)行。面向?qū)ο蟪绦?,相互調(diào)用的功能是散布在程序的不同類中,類通面向?qū)ο蟪绦?,相互調(diào)用的功能是散布在程序的

45、不同類中,類通過消息相互作用申請和提供服務(wù)。類的行為與它的狀態(tài)密切相關(guān),過消息相互作用申請和提供服務(wù)。類的行為與它的狀態(tài)密切相關(guān),狀態(tài)不僅僅是體現(xiàn)在類數(shù)據(jù)成員的值,也許還包括其他類中的狀狀態(tài)不僅僅是體現(xiàn)在類數(shù)據(jù)成員的值,也許還包括其他類中的狀態(tài)信息。態(tài)信息。類相互依賴極其緊密,根本無法在編譯不完全的程序上對類進(jìn)行類相互依賴極其緊密,根本無法在編譯不完全的程序上對類進(jìn)行測試。測試。面向?qū)ο蟮募蓽y試通常需要在整個程序編譯完成后進(jìn)行。面向?qū)ο蟮募蓽y試通常需要在整個程序編譯完成后進(jìn)行。華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件5.5 5.5 面向?qū)ο蟮募蓽y試和系統(tǒng)測試面向?qū)ο蟮募蓽y試和系

46、統(tǒng)測試l 面向?qū)ο蟮募蓽y試,能夠檢測出相對獨(dú)立的、單元測試無法檢測出面向?qū)ο蟮募蓽y試,能夠檢測出相對獨(dú)立的、單元測試無法檢測出的、類相互作用時才會產(chǎn)生的錯誤。的、類相互作用時才會產(chǎn)生的錯誤。l 基于單元測試對成員函數(shù)行為正確性的保證,集成測試只關(guān)注于基于單元測試對成員函數(shù)行為正確性的保證,集成測試只關(guān)注于系統(tǒng)系統(tǒng)的結(jié)構(gòu)和內(nèi)部的相互作用的結(jié)構(gòu)和內(nèi)部的相互作用。l 面向?qū)ο蟮募蓽y試可以分成兩步進(jìn)行:面向?qū)ο蟮募蓽y試可以分成兩步進(jìn)行:先進(jìn)行靜態(tài)測試,再進(jìn)行動先進(jìn)行靜態(tài)測試,再進(jìn)行動態(tài)測試態(tài)測試。 華東交通大學(xué)軟件學(xué)院華東交通大學(xué)軟件學(xué)院編輯課件5.5 5.5 面向?qū)ο蟮募蓽y試和系統(tǒng)測試面向?qū)ο蟮募蓽y試和系統(tǒng)測試l 靜態(tài)測試靜態(tài)測試 主要針對主要針對程序的結(jié)構(gòu)程序的結(jié)構(gòu)進(jìn)行,檢測程序結(jié)構(gòu)是否符合設(shè)計要求。進(jìn)行,檢測程序結(jié)構(gòu)是否符合設(shè)計要求?,F(xiàn)在流行的一些測試軟件都能提供一種稱為現(xiàn)在流行的一些測試軟件都能提供一種

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論