軟件測試技術(shù)第3章

上傳人:zhu****ng 文檔編號:253335410 上傳時間:2024-12-11 格式:PPT 頁數(shù):48 大?。?87KB
收藏 版權(quán)申訴 舉報 下載
軟件測試技術(shù)第3章_第1頁
第1頁 / 共48頁
軟件測試技術(shù)第3章_第2頁
第2頁 / 共48頁
軟件測試技術(shù)第3章_第3頁
第3頁 / 共48頁

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

9.9 積分

下載資源

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

資源描述:

《軟件測試技術(shù)第3章》由會員分享,可在線閱讀,更多相關(guān)《軟件測試技術(shù)第3章(48頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 ,*,單擊此處編輯母版標題樣式,*,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,第三章 單元測試,由安博測試空間技術(shù)中心http:/ Down Unit Testing,)的單元測試策略、自底向上的單元測試策略(,Bottom up Unit Testing,)和孤立的單元測試策略。,自頂向下的單元測試策略,一)步驟:,1.,從最頂層開始,把頂層調(diào)用的單元做成樁模塊。,2.,對第二層測試,使用上面已測試的單元做驅(qū)動模塊。,3.,依次類推,直到全部單元測試結(jié)束。,二)優(yōu)點:可以在集成測試之前為系統(tǒng)提供早期的集成途徑。,三)缺點:單元測試被樁模塊控制,隨著單元測試的不斷進行,測試過

2、程也會變得越來越復(fù)雜,測試難度以及開發(fā)和維護的成本都不斷增加;,要求的低層次的結(jié)構(gòu)覆蓋率也難以得到保證;由于需求變更或其他原因而必須更改任何一個單元時,就必須重新測試該單元下層調(diào)用的所有單元;低層單元測試依賴頂層測試,無法進行并行測試,使測試進度受到不同程度的影響,延長測試周期。,四)總結(jié):從上述分析中,不難看出該測試策略的成本要高于孤立的單元測試成本,因此從測試成本方面來考慮,并不是最佳的單元測試策略。,自底向上的單元測試,一)步驟:,1、先對模塊調(diào)用圖上的最底層模塊開始測試,模擬調(diào)用該模塊的模塊為驅(qū)動模塊。,2、其次,對上一層模塊進行單元測試,用已經(jīng)被測試過的模塊做樁模塊,。,3、依次類推

3、,直到全部單元測試結(jié)束。,二)優(yōu)點:不需要單獨設(shè)計樁模塊。,三)缺點:隨著單元測試的不斷進行,測試過程會變得越來越復(fù)雜,測試周期延長,測試和維護的成本增加;隨著各個基本單元逐步加入,系統(tǒng)會變得異常龐大,因此測試人員不容易控制;越接近頂層的模塊的測試其結(jié)構(gòu)覆蓋率就越難以保證;,另外,頂層測試易受底層模塊變更的影響,任何一個模塊修改之后,直接或間接調(diào)用該模塊的所有單元都要重新測試。,由于只有在底層單元測試完畢之后才能夠進行頂層單元的測試,所以并行性不好。另外,自底向上的單元測試也不能和詳細設(shè)計、編碼同步進行。,四)總結(jié):相對其它測試策略而言,該測試策略比較合理,尤其是需要考慮對象或復(fù)用時。它屬于面

4、向功能的測試,而非面向結(jié)構(gòu)的測試。對那些以高覆蓋率為目標或者軟件開發(fā)時間緊張的軟件項目來說,這種測試方法不適用。,孤立測試,一)步驟:無需考慮每個模塊與其他模塊之間的關(guān)系,分別為每個模塊單獨設(shè)計樁模塊和驅(qū)動模塊,逐一完成所有單元模塊的測試。,二)優(yōu)點:該方法簡單、容易操作,因此所需測試時間短,能夠達到高覆蓋率。,三)缺點:不能為集成測試提供早期的集成途徑。依賴結(jié)構(gòu)設(shè)計信息,需要設(shè)計多個樁模塊和驅(qū)動模塊,增加了額外的測試成本。,四)總結(jié):該方法是比較理想的單元測試方法。如輔助適當?shù)募蓽y試策略,有利于縮短項目的開發(fā)時間。,綜合測試,在單元測試中,為了有效地減少開發(fā)樁模塊的工作量,可以考慮綜合自底

5、向上測試策略和孤立測試策略。,3.4,單元測試分析,一般可以從如下幾個方面進行分析和測試,即:,1、,判斷得到的結(jié)果是否正確?,因為,對于測試而言,首要的任務(wù)就是察看一下所期望的結(jié)果是否正確,即對結(jié)果進行驗證。,2、,判斷是否滿足所有的邊界條件?,邊界條件是指軟件計劃的操作界限所在的邊緣條件。邊界條件測試是單元測試中最后也是最重要的一項任務(wù)。在使用邊界值測試的方法時,不妨結(jié)合實際項目參考以下測試技巧:輸入了完全偽造或者和要求不一致的數(shù)據(jù)。,1)輸入一個格式錯誤的數(shù)據(jù)。,2)提供一個空值或者不完整的值。,3)與意料之中的值相差很遠的值。,4)假如一個列表中不允許有重復(fù)的數(shù)值存在,就可以給它傳入一

6、組存在重復(fù)數(shù)值的列表;如果某個字段的值要求唯一,那么可以輸入兩個或多個相同的數(shù)值來進行測試。,5)假如一個列表中不允許有重復(fù)的數(shù)值存在,就可以給它傳入一組存在重復(fù)數(shù)值的列表;如果某個字段的值 要求唯一,那么可以輸入兩個或多個相同的數(shù)值來進行測試。,6)如果要求按照一定的順序來存儲一些數(shù)據(jù),那么可以輸入一些順序打亂的數(shù)據(jù)來做測試。,7)對于一些做了安全限制的部分,盡量通過各種途徑嘗試能否繞過安全限制的測試。,8)如果功能的啟用有一定的順序限制,就用和期望不一致的順序來進行測試。,3、分析能否使用反向關(guān)聯(lián)檢查?,在實際程序中,有一些方法可以使用反向的邏輯關(guān)系來驗證它們。,4、,分析是否能使用其他手

7、段來交叉檢查一下結(jié)果?,一般而言,對某個值進行計算會有一種以上的算法,但我們會因考慮到運行效率或其他方面的原因而選擇其中的一種。,5、分析是否可以強制一些錯誤發(fā)生?,在實際使用過程當中,總會有意想不到各種各樣的情況和錯誤發(fā)生。,6、,分析模塊接口,數(shù)據(jù)在接口處出錯就好像丟掉了進入大門的鑰匙,無法進行下一步的工作,只有在數(shù)據(jù)能正確流入、流出模塊的前提下,其他測試才有意義。,7、,分析局部數(shù)據(jù)結(jié)構(gòu),局部數(shù)據(jù)結(jié)構(gòu)往往是錯誤的根源,對其檢查主要是為了保證臨時存儲在模塊內(nèi)的數(shù)據(jù)在程序執(zhí)行過程中完整、正確,因此應(yīng)仔細設(shè)計測試用例。,8、,分析獨立路徑,在模塊中應(yīng)對每一條獨立執(zhí)行路徑進行測試,單元測試的基本

8、任務(wù)是保證模塊中每條語句至少執(zhí)行一次。,9、,分析出錯處理是否正確,一個好的設(shè)計應(yīng)能預(yù)見各種出錯條件,并進行適當?shù)某鲥e處理,即預(yù)設(shè)各種出錯處理通路。,3.5,單元測試用例設(shè)計,單元測試用例的設(shè)計既可以使用白盒測試也可以使用黑盒測試,但以白盒測試為主。,白盒測試進入的前提條件是測試人員已經(jīng)對被測試對象有了一定的了解,基本上明確了被測試軟件的邏輯結(jié)構(gòu)。,黑盒測試是要首先了解軟件產(chǎn)品具備的功能和性能等需求,再根據(jù)需求設(shè)計一批測試用例以驗證程序內(nèi)部活動是否符合設(shè)計要求的活動。,測試人員在實際工作中至少應(yīng)該設(shè)計能夠覆蓋如下需求的基于功能的單元測試用例:,測試程序單元的功能是否實現(xiàn);,測試程序單元性能是否

9、滿足要求(可選);,是否有可選的其它測試特性,如邊界、余量、安全性、可靠性、強度測試、人機交互界面測試等。,無論是白盒測試還是黑盒測試,每個測試用例都應(yīng)該包含下面,4,個關(guān)鍵元素:,(1),被測單元模塊初始狀態(tài)聲明,即測試用例的開始狀態(tài)(僅適用于被測單元維持了調(diào)用中間狀態(tài)的情況,),;,(2)被測單元的輸入,包含由被測單元讀入的任何外部數(shù)據(jù)值;,(3)該測試用例實際測試的代碼,用被測單元的功能和測試用例設(shè)計中使用的分析來說明,如:單元中哪一個決策條件被測試;,(4),測試用例的期望輸出結(jié)果(在測試進行之前的測試說明中定義)。,一、測試用例設(shè)計步驟,以下描述進行測試用例設(shè)計的,6,步通用過程。,

10、步驟,1,:首先使被測單元運行;,這個階段適合的技術(shù)有:,模塊設(shè)計說明導(dǎo)出的測試,對等區(qū)間劃分,步驟,2,:正面測試,(Positive Testing),這個階段適合的技術(shù):,設(shè)計說明導(dǎo)出的測試,對等區(qū)間劃分,狀態(tài)轉(zhuǎn)換測試,步驟,3,:負面測試,(Negative Testing),適合的技術(shù)有:,錯誤猜測,邊界值分析,內(nèi)部邊界值測試,狀態(tài)轉(zhuǎn)換測試,步驟,4:,模塊設(shè)計需求中其它測試特性用例設(shè)計,適合的技術(shù):設(shè)計說明導(dǎo)出的測試,步驟,5,:覆蓋率測試用例設(shè)計,適合的技術(shù):,分支測試,條件測試,數(shù)據(jù)定義使用測試,狀態(tài)轉(zhuǎn)換測試,步驟,6,:測試執(zhí)行,步驟,7,:完善代碼覆蓋,適合的技術(shù):,分支測

11、試,條件測試,設(shè)計定義,試驗測試,狀態(tài)轉(zhuǎn)換測試,二、面向?qū)ο髴?yīng)用程序的單元測試用例設(shè)計,類測試一般也采用傳統(tǒng)的兩種測試方式:功能性測試和結(jié)構(gòu)性測試,即黑盒測試和白盒測試。,1,、功能性測試,功能性測試包括兩個層次:,類的規(guī)格說明和方法的規(guī)格說明。,2,、結(jié)構(gòu)性測試,結(jié)構(gòu)性測試對類中的方法進行測試,它把類作為一個單元來進行測試。測試分為兩層:第一層考慮類中各獨立方法的代碼;第二層考慮方法之間的相互作用,每個方法的測試要求能針對其所有的輸入情況。,(1),方法的單獨測試:,(2),方法的綜合測試,:,3,、基于對象,狀態(tài)轉(zhuǎn)移圖的面向?qū)ο筌浖y試,面向?qū)ο笤O(shè)計方法通常采用狀態(tài)轉(zhuǎn)移圖建立對象的動態(tài)行為

12、模型。狀態(tài)轉(zhuǎn)移圖用于刻畫對象,響應(yīng)各種事件時狀態(tài)發(fā)生轉(zhuǎn)移的情況,結(jié)點表示對象的某個可能狀態(tài),結(jié)點之間的有向邊通常用“事件動作”標出。,如圖,3-3,的示例中,表示當對象處于狀態(tài),A,時,若接收到事件,e,則執(zhí)行相應(yīng)的操作,a,且轉(zhuǎn)移到狀態(tài),B,。因此,對象的狀態(tài)隨各種外來事件發(fā)生怎樣的變化,是考察對象行為的一個重要方面。,圖,3-3,對象,-,狀態(tài)轉(zhuǎn)換圖,下面給出基于狀態(tài)測試的主要步驟:,依據(jù)設(shè)計文檔,或者通過分析對象數(shù)據(jù)成員的取值情況空間,得到被測試類的狀態(tài)轉(zhuǎn)移圖;,給被測試的類加入用于設(shè)置和檢查對象狀態(tài)的新方法,導(dǎo)出對象的邏輯狀態(tài);,對于狀態(tài)轉(zhuǎn)移圖中的每個狀態(tài),確定該狀態(tài)是哪些方法的合法起

13、始狀態(tài),即在該狀態(tài)時,對象允許執(zhí)行哪些操作;,在每個狀態(tài),從類中方法的調(diào)用關(guān)系圖最下層開始,逐一測試類中的方法;,測試每個方法時,根據(jù)對象當前狀態(tài)確定出對方法的執(zhí)行路徑有特殊影響的參數(shù)值,將各種可能組合作為參數(shù)進行測試。,4,、類的數(shù)據(jù)流測試,數(shù)據(jù)流測試是一種白盒測試方法,它利用程序的數(shù)據(jù)流之間的關(guān)系來指導(dǎo)測試的選擇。,數(shù)據(jù)流分析,當數(shù)據(jù)流測試用于單個過程的單元測試時,定義,-,引用對可利用傳統(tǒng)的迭代的數(shù)據(jù)流分析方法來計算,這種方法利用一個控制流圖,(control flow graph),來表示程序,其中的節(jié)點表示程序語句,邊表示不同語句的控制流,且每一個控制流圖都加上了一個入口和一個出口。

14、,類及類測試,類是個獨立的程序單位,它應(yīng)該有一個類名并包括屬性說明和服務(wù)說明兩個主要部分,對象是類的一個實例。不失一般性,我們這里構(gòu)造一個類的模型。,我們對類進行三級測試,定義如下:,A.,方法內(nèi)部測試:測試單個方法,這級測試相當,于單元測試;,B.,方法間測試:在類中與其它方法一起測試一個,直接或間接調(diào)用的公開方法,這級測試相當于,集成測試;,C.,類內(nèi)部測試:測試公開方法在各種調(diào)用順序時的,相互作用關(guān)系,由于類的調(diào)用能夠激發(fā)一系列不,同順序的方法,我們可以用類內(nèi)部測試來確定類,的相互作用關(guān)系順序,但由于公開方法的調(diào)用順,序是無限的,我們只能測試其中一個子集。,數(shù)據(jù)流測試,為了支持現(xiàn)有的類內(nèi)

15、部測試(,Intra-class testing,)技術(shù),我們需要一個基于代碼的測試技術(shù)來識別需要測試的類的部件,這種技術(shù)就是數(shù)據(jù)流測試,它考慮所有的類變量及程序點說明的定義,-,引用對(,def,use pairs,)。,計算類的數(shù)據(jù)流信息,為了支持類的數(shù)據(jù)流測試,我們必須計算類的各種定義-引用對。,為了計算類的三種定義-引用對,我們可以構(gòu)造一個類控制流圖(class control flow graphCCFG),其算法如下:,為類構(gòu)造類調(diào)用圖,作為類控制流圖的初值;,把框架(frame)加入到類調(diào)用圖中;,根據(jù)相應(yīng)的控制流圖替換類調(diào)用圖中的每一,個調(diào)用節(jié)點,具體實現(xiàn)方法:對于類C 中的每

16、一,個方法M,在類調(diào)用圖中用方法M 的控制流圖,替代方法M 的調(diào)用結(jié)點,并更新相應(yīng)的邊;,用調(diào)用節(jié)點和返回節(jié)點替換調(diào)用點,具體實現(xiàn)方法:對于類調(diào)用圖中的每一個表示類C 中調(diào)用方法M 的調(diào)用點S,用一個調(diào)用節(jié)點和返回節(jié)點代替調(diào)用點S;,把單個的控制流圖連接起來,具體實現(xiàn)方法:對于類控制流圖中的每一個方法M,加上一條從框架調(diào)用節(jié)點到輸入節(jié)點的邊和一條從輸出節(jié)點到框架返回節(jié)點的邊,其中輸入節(jié)點和輸出節(jié)點都在方法M 的控制流圖中;,返回完整的類控制流圖。,3.6單元測試過程,圖3-7從宏觀的角度概括了單元測試的工作過程圖。,一、單元測試進入和退出準則,如表3-1和表3-2所示:,表,3-1,進入準則,表,3-2,退出準則,二、單元測試過程,圖,3-7,單元測試工作過程,(,1,)準備階段,(,2,)編制階段,(,3,)代碼審查階段,(,4,)單元測試階段,(,5,)評審、提交階段,3.7,單元測試舉例,一、單元測試計劃,1.,簡介,這份文檔的目標是詳細描述對兩票系統(tǒng)的可以實現(xiàn)在二次系統(tǒng)圖上進行圖形開票模塊的功能驗證的測試過程。,2.,本測試的總目標:,是否實現(xiàn)了需求文檔中定義的所有功能。,3.

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

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

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


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