軟件測試-5模擬對象課件

上傳人:20****08 文檔編號(hào):252611750 上傳時(shí)間:2024-11-18 格式:PPTX 頁數(shù):44 大?。?77.20KB
收藏 版權(quán)申訴 舉報(bào) 下載
軟件測試-5模擬對象課件_第1頁
第1頁 / 共44頁
軟件測試-5模擬對象課件_第2頁
第2頁 / 共44頁
軟件測試-5模擬對象課件_第3頁
第3頁 / 共44頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《軟件測試-5模擬對象課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《軟件測試-5模擬對象課件(44頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,模擬,對象,模擬對象,1,議程,基于狀態(tài)的測試和交互,測試,模擬,對象與樁對象的,區(qū)別,模擬對象的例子,同時(shí)使用模擬對象和樁對象,樁鏈,手寫,模擬對象與樁對象的問題,議程基于狀態(tài)的測試和交互測試,場景,被測代碼的復(fù)雜邏輯需要基于對其他對象的調(diào)用,被調(diào)用對象,可能,不返回結(jié)果,不保存狀態(tài),如何,測試對象間的,調(diào)用,模擬對象,場景被測代碼的復(fù)雜邏輯需要基于對其他對象的調(diào)用,什么是交互測試,交互測試用來測試一個(gè)對象如何向另一個(gè)對象傳遞消息,或者如何從其他對象接收消息,即測試對象如何與其他對象進(jìn)行

2、交互,什么是交互測試交互測試用來測試一個(gè)對象如何向另一個(gè)對象傳遞消,兩種測試的區(qū)分,交互測試,=,動(dòng)作驅(qū)動(dòng)測試,測試對象的某個(gè)特定動(dòng)作,基于狀態(tài)的測試,=,結(jié)果驅(qū)動(dòng)測試,測試某些最終結(jié)果是否,成立,通常,傾向于測試對象的最終結(jié)果,有時(shí),對象間的交互就是最終結(jié)果,此時(shí)需要測試交互本身,如:調(diào)用一個(gè),web,服務(wù),兩種測試的區(qū)分交互測試=動(dòng)作驅(qū)動(dòng)測試,示例比較,假設(shè):一個(gè)灌溉系統(tǒng),事先設(shè)定好時(shí)間讓它給院子里的樹木澆水,一天澆幾次,每次多少水,基于狀態(tài)的測試,在指定的一段時(shí)間內(nèi)(如:,24,小時(shí))讓系統(tǒng)持續(xù)運(yùn)行,結(jié)束后檢查樹木狀態(tài),土地的濕度夠不夠?樹的狀態(tài)好不好?,葉子夠不夠綠?等等,測試很難操作

3、,示例比較假設(shè):一個(gè)灌溉系統(tǒng),事先設(shè)定好時(shí)間讓它給院子里的樹木,交互測試,在水龍頭末端安裝一個(gè)設(shè)備,記錄灌溉的開始時(shí)間與結(jié)束時(shí)間,以及每次灌溉的用水量,系統(tǒng)運(yùn)行結(jié)束后,不必檢查樹木,只需檢查該設(shè)備調(diào)用次數(shù)是否正確,每次用水量是否正確,交互測試,實(shí)際上,無需真正的樹木以測試系統(tǒng),可改變灌溉單元的時(shí)鐘,讓它認(rèn)為澆水時(shí)間到了,這樣它就會(huì)在你指定的任何時(shí)間澆水,而不必等很長時(shí)間才能確定系統(tǒng)是否正常工作,實(shí)際上,無需真正的樹木以測試系統(tǒng),模擬對象,用來記錄灌溉信息的是什么設(shè)備?,可以說它是一個(gè)偽水龍頭,或樁對象,比樁對象更智能,記錄其每次調(diào)用的樁對象,模擬對象的職責(zé),模擬對象,系統(tǒng)中的一個(gè)偽對象,用來決

4、定一個(gè)單元測試是通過還是失敗,通過驗(yàn)證被測對象和偽對象之間是否進(jìn)行預(yù)期的交互來判斷,模擬對象用來記錄灌溉信息的是什么設(shè)備?,模擬對象的用法與樁對象很相似,模擬對象比樁對象做的事情更多,保存通信歷史信息,驗(yàn)證這些記錄,模擬對象的用法與樁對象很相似,區(qū)別,基本區(qū)別,樁對象不會(huì)使測試失敗,模擬對象可以導(dǎo)致測試失敗,樁,對象用來替換依賴項(xiàng),確保測試順利運(yùn)行,斷言是針對被測類的,測試?yán)媚M對象來驗(yàn)證測試是否失敗,斷言是針對模擬對象的,區(qū)別基本區(qū)別,使用樁對象的交互圖,使用樁對象的交互圖,使用模擬對象的交互圖,使用模擬對象的交互圖,業(yè)務(wù)背景,增加,LogAnalyzer,需求,當(dāng)接收到一個(gè)長度太短的文件

5、名,就發(fā)送一條錯(cuò)誤信息給某個(gè)外部的,web,服務(wù),測試遇到的問題,Web,服務(wù)未實(shí)現(xiàn),直接調(diào)用該服務(wù)會(huì)導(dǎo)致測試時(shí)間過長,業(yè)務(wù)背景增加LogAnalyzer需求,重構(gòu)設(shè)計(jì),新建接口,包含調(diào)用,web,服務(wù)所需的方法,便于新建模擬對象,測試中使用該接口而不是直接調(diào)用,web,服務(wù),重構(gòu)設(shè)計(jì)新建接口,接口,接口,模擬對象,模擬對象,被測類,被測類,測試代碼,測試代碼,測試策略,沒有在模擬對象代碼內(nèi)部編寫測試,原因,希望重用該模擬對象,以便于對消息做不同的斷言,若在模擬對象內(nèi)部放置斷言,那么閱讀的人無法理解在斷言什么,隱藏測試代碼的重要信息,會(huì)導(dǎo)致測試的可讀性和可維護(hù)性下降,測試策略沒有在模擬對象代碼

6、內(nèi)部編寫測試,原因,業(yè)務(wù)背景,LogAnalyzer,調(diào)用,web,服務(wù),如果,Web,服務(wù)拋出錯(cuò)誤,,LogAnalyzer,必須記錄該錯(cuò)誤,發(fā)送郵件給管理員,業(yè)務(wù)背景LogAnalyzer調(diào)用web服務(wù),兩個(gè)外部依賴的交互圖,兩個(gè)外部依賴的交互圖,被測類,被測類,面對的問題,如何測試,LogAnalyzer,在,web,服務(wù)拋出異常時(shí)正確調(diào)用電子郵件服務(wù)?,如何替換,web,服務(wù)?,如何模擬,web,服務(wù)拋出的異常?,如何知道電子郵件是否正確調(diào)用?,面對的問題如何測試LogAnalyzer在web服務(wù)拋出異常,解決思路,使用樁對象,替換,web,服務(wù),模擬,web,服務(wù)拋出異常,使用模擬對

7、象,替換郵件服務(wù),解決思路使用樁對象,分析,樁對象,模擬,web,服務(wù)拋出異常,用來保證測試正確運(yùn)行,模擬對象,驗(yàn)證是否向電子郵件服務(wù)傳入正確的參數(shù),針對它做斷言,驗(yàn)證它是否被正確調(diào)用,分析樁對象,測試交互圖,測試交互圖,接口,接口,樁對象,web,服務(wù),樁對象web服務(wù),模擬對象,模擬對象,被測類,被測類,測試代碼,測試代碼,問題,為什么要在一個(gè)測試中做多次斷言?,將測試拆分為,3,個(gè)測試,每個(gè)測試一個(gè)斷言,會(huì)更簡單?可以把,3,個(gè)斷言組合成一個(gè)邏輯測試嗎?,為每個(gè)測試或測試類手工新建模擬對象和樁對象很枯燥乏味,如何克服?,更,重要的是:在一個(gè)測試中可以使用多少個(gè)樁對象和模擬對象?,問題為什

8、么要在一個(gè)測試中做多次斷言?,原則,一個(gè)測試只測一件事,每個(gè)測試只能有一個(gè)模擬對象,每個(gè)測試可以有多個(gè)樁對象,一,個(gè)測試中存在多個(gè)模擬對象意味著正在測試多件事,這會(huì)導(dǎo)致測試變得復(fù)雜或脆弱,在遇到更復(fù)雜的測試時(shí),首先找到模擬對象,其他的就是樁對象,前者影響斷言,原則一個(gè)測試只測一件事,樁鏈,有時(shí),我們希望從一個(gè)偽組件中返回另外一個(gè)偽組件,從而在測試中形成了一個(gè)小小的樁鏈,示例代碼,IServiceFactory factory=GetServiceFactory(),Iservice service=factory.GetService(),String conn=GlobalUtil.Conf

9、iguration.DBConfiguration.ConnectionString,樁鏈有時(shí),我們希望從一個(gè)偽組件中返回另外一個(gè)偽組件,從而在測,弊端,假設(shè)你想在測試時(shí)替換連接字符串,你可以將,Configuration,屬性設(shè)計(jì)為一個(gè)樁對象,然后測試時(shí)替換它,這個(gè)技術(shù)很強(qiáng)大,但是否不利于重構(gòu)?,弊端假設(shè)你想在測試時(shí)替換連接字符串,你可以將Configur,虛方法,String,conn=GetConnString(),Proteced virtual string GetConnString(),return GlobalUtil.Configuration.DBConfiguration

10、.ConnectionString,虛方法String conn=GetConnString,測試時(shí),重寫該方法,這種方式,能增強(qiáng)代碼的可讀性和可維護(hù)性,不用為插樁,新增接口,測試時(shí),重寫該方法,手寫模擬對象和樁對象的問題,編寫模擬對象和樁對象很費(fèi)時(shí),如果類和接口有很多方法、屬性和事件,將很難為它們編寫模擬對象和樁對象,如果模擬的方法被多次調(diào)用,一旦涉及狀態(tài)保存問題,就需要寫很多代碼(方法內(nèi)部),手寫模擬對象和樁對象的問題編寫模擬對象和樁對象很費(fèi)時(shí),如果要驗(yàn)證一個(gè)方法的所有參數(shù),就需要寫多個(gè)斷言,第一,個(gè)斷言失敗時(shí),程序拋出異常,從而導(dǎo)致后續(xù)斷言無法執(zhí)行,很難在其他測試中重用模擬對象和樁對象,如果要驗(yàn)證一個(gè)方法的所有參數(shù),就需要寫多個(gè)斷言,解決方案,采用隔離框架,下,一講介紹,隔離框架,Rhino Mock,解決方案采用隔離框架,小結(jié),基于狀態(tài)的測試和交互測試,前者,=,結(jié)果驅(qū)動(dòng)測試,后者,=,動(dòng)作驅(qū)動(dòng)測試,模擬對象與樁對象的區(qū)別,模擬對象測試依賴項(xiàng)的交互,樁對象返回狀態(tài),模擬對象會(huì)導(dǎo)致斷言失敗,樁對象則不會(huì),小結(jié)基于狀態(tài)的測試和交互測試,測試交互圖,測試交互圖,使用,同時(shí)使用樁對象與模擬對象,每個(gè)測試最多只能有一個(gè)模擬對象,每個(gè)測試可有多個(gè)樁對象,采用樁鏈時(shí),優(yōu)先考慮采用虛方法注入樁對象,提高代碼可讀性與可維護(hù)性,避免過度使用模擬對象,使用同時(shí)使用樁對象與模擬對象,

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲