系統(tǒng)測試的方法會審-_第1頁
系統(tǒng)測試的方法會審-_第2頁
系統(tǒng)測試的方法會審-_第3頁
系統(tǒng)測試的方法會審-_第4頁
系統(tǒng)測試的方法會審-_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機系濟南職業(yè)學院精品課程第27講

系統(tǒng)測試的方法和策略27系統(tǒng)測試的方法和策略管理信息系統(tǒng)》本節(jié)內(nèi)容提要:系統(tǒng)測試的方法系統(tǒng)測試的策略27.1

系統(tǒng)測試的方法(1)管理信息系統(tǒng)》圖軟件測試主要方法軟件測試人工測試機器測試白盒測試黑盒測試會審走查個人復查27.1

系統(tǒng)測試的方法(2)管理信息系統(tǒng)》27.1.1人工測試人工測試又稱代碼復審,主要有下列三種方法:(1)個人復查:指源程序編完以后,直接由程序員自己進行檢查。由于心理上對自己程序的偏愛,因此有些習慣性的錯誤自己不易發(fā)現(xiàn),如果對功能理解有誤,自己也不易糾正。所以這是針對小規(guī)模程序常用的方法,效率不很高。27.1

系統(tǒng)測試的方法(3)管理信息系統(tǒng)》(2)走查:一般由3~5人組成測試小組,測試小組成員應是從未介入過該軟件的設計工作的有經(jīng)驗的程序設計人員。測試在預先閱讀過該軟件資料和源程序的前提下,由測試人員扮演計算機的角色,用人工方法將測試數(shù)據(jù)輸入被測程序,并在紙上跟蹤監(jiān)視程序的執(zhí)行情況,讓人代替機器沿著程序的邏輯走一遍,以發(fā)現(xiàn)程序中的錯誤。由于人工運行很慢,因此走查只能使用少量簡單的測試用例,實際上走查只是個手段,隨著“走”的進程中不斷從程序中發(fā)現(xiàn)錯誤。27.1

系統(tǒng)測試的方法(4)管理信息系統(tǒng)》(3)會審:測試小組的成員與走查相似,要求測試成員在會審前仔細閱讀軟件有關資料,根據(jù)錯誤類型清單(從以往經(jīng)驗看一般容易發(fā)生的錯誤),填寫檢測表,列出根據(jù)錯誤類型要提問的問題。會審時,由程序作者直接逐個閱讀和講解程序,測試人員逐個審查、提問,討論可能產(chǎn)生的錯誤。會審對程序的功能、結(jié)構(gòu)及風格等都要進行審定。27.1

系統(tǒng)測試的方法(5)管理信息系統(tǒng)》27.1.2機器測試通過在計算機上直接運行被測程序來發(fā)現(xiàn)程序中的錯誤。機器測試有黑盒測試和白盒測試兩種方法。黑盒測試:也稱功能測試,將軟件看作黑盒子,在完全不考慮程序的內(nèi)部結(jié)構(gòu)和特性的情況下,測試軟件的外部特性。根據(jù)軟件的需求規(guī)格說明書設計測試用例,從程序的輸入和輸出特性上測試是否滿足設定的功能。白盒測試:也稱結(jié)構(gòu)測試,將軟件看作一個透明的白盒子,按照程序的內(nèi)部結(jié)構(gòu)和處理邏輯來選定測試用例,對軟件的邏輯路徑及過程進行測試,檢查它與設計是否相符。27.2

系統(tǒng)測試的策略(1)管理信息系統(tǒng)》軟件測試工作分模塊測試(單調(diào)),子系統(tǒng)測試(分調(diào)),系統(tǒng)測試(聯(lián)調(diào)),如圖所示。軟件測試成功后,還有用戶的驗收測試。到目前為此,人們還無法證明一個大型復雜軟件的正確性,只能依靠一定的測試手段來說明該軟件在某些特定條件下沒有發(fā)現(xiàn)錯誤。27.2

系統(tǒng)測試的策略(2)圖系統(tǒng)測試過程NYNYN模塊測試通過否?子系統(tǒng)測試Y修改通過否?系統(tǒng)測試通過否?修改管理信息系統(tǒng)》修改27.2

系統(tǒng)測試的策略(3)管理信息系統(tǒng)》1.模塊測試(單調(diào))模塊測試是獨立地對單個模塊進行測試,是整個系統(tǒng)測試的基礎。模塊測試比系統(tǒng)測試更容易發(fā)現(xiàn)錯誤之所在,也能更有效地進行排錯處理。模塊測試前必須先通過編譯檢查并改正所有語法錯誤。模塊測試主要從下述五個方面去檢驗模塊:模塊接口:測試信息能否正確無誤地流入、流出模塊。模塊內(nèi)部之數(shù)據(jù)結(jié)構(gòu):測試內(nèi)部數(shù)據(jù)的完整性,包括內(nèi)容、形式及相互關系。邏輯路徑:測試應覆蓋模塊中關鍵的邏輯路徑。27.2

系統(tǒng)測試的策略(4)管理信息系統(tǒng)》出錯處理:測試模塊對錯誤及產(chǎn)生錯誤的條件的預見能力,并且檢測其出錯處理是否適當。邊界條件:軟件往往容易在邊界條件上發(fā)生問題,如循環(huán)的第一次和最后一次執(zhí)行,判斷選擇的邊界值等。模塊測試方法還是分人工態(tài)測試和機器測試兩種。對于機器測試的黑盒法和白盒法有以下幾個具體典型方法。27.2

系統(tǒng)測試的策略(5)管理信息系統(tǒng)》(1)等價分類法根據(jù)選擇測試思想,在所有可能的輸入數(shù)據(jù)中取一個有限的子集,作為測試用數(shù)據(jù)。通常在黑盒測試中將模塊的輸入域劃分成有效等價類(模塊中符合規(guī)范的輸入)和無效等價類(模塊中非法的輸入)兩種。例如,某模塊的合理輸入是0一100,則大于等于0且小于等于100的數(shù)據(jù)屬于有效等價數(shù)據(jù);小于0或大于100的數(shù)據(jù)為無效等價類,測試數(shù)據(jù)可以從這兩個等價類中抽取。27.2

系統(tǒng)測試的策略(6)管理信息系統(tǒng)》邊緣分析法這也是一個黑盒測試法。在編寫程序時,人們往往只注意正常

情況,忽視了邊界條件下的程序運行狀態(tài)。因此,在測試過程中邊緣值常被用來作為測試數(shù)據(jù)。如模塊的有效值是0一100,則可以取-0.1,0.1,99.9,100.1作為測試數(shù)據(jù)。邏輯覆蓋法用白箱法測試模塊時,要執(zhí)行程序中的每一條路徑,當程序中有循環(huán)存在時,要測試程序中的每一條路徑是不可能的。而用邏輯覆蓋法測試模塊,只要模塊中的每一個分支方向都至少測試一次即可。對模塊中的循環(huán)語句,只需測試循環(huán)語句是否執(zhí)行,而不必去測試每次循環(huán)情況。27.2系統(tǒng)測試的策略(7)管理信息系統(tǒng)》邏輯覆蓋測試常用的方法有:l)判斷覆蓋 即讓程序中每個判斷語句至少獲得一次“真”值和“假”值。以圖為例,如果一次兩組測試數(shù)據(jù),使它們能夠通過路徑ace和abd,或者通過路徑acd和abe,就可以達到“判斷覆蓋”的標準。為2)條件覆蓋

通常一個判斷語句中往往含多個條件,能使這些條件的各種可能取值出現(xiàn)的測試方法稱之為條件覆蓋,它比判斷覆蓋在測錯能力上強些。27.2

系統(tǒng)測試的策略(8)如圖所示,它共有四個條件: 圖

測試用例設計的參考例子YA>1

And

B=0cX=X/Ab

NA=2

OR

X>1eX=X+1管理信息系統(tǒng)》NdYa27.2

系統(tǒng)測試的策略(9)管理信息系統(tǒng)》A>1,B=0,A=2,X>1所以要選擇測試數(shù)據(jù)能使在a點有:A>1,A<=1,B=0,B<>0四種情況出現(xiàn),可選擇以下兩組測試用例:①A=1,B=0,X=3(沿路徑abe)②A=2,B=1,X=1(沿路徑abe)3)判斷/條件覆蓋 一般講,條件覆蓋比判斷覆蓋所取得的測試結(jié)果要好些。但有時并非如此,即條件覆蓋的測試用例未能使判斷語句中的“真”、“假”情況都出現(xiàn)。對此,可采用判斷/條件覆蓋方法。它所采用的測試數(shù)據(jù)使每個條件都取得各種可能值,并使每個判斷也取得“真”和“假”。例如,下面的兩個測試用例就能滿足圖6-8的判斷/條件覆蓋。①A=2,B=0,X=4(沿路徑ace)②A=l,B=1,X=1(沿路徑abd)27.2

系統(tǒng)測試的策略(10)管理信息系統(tǒng)》4)條件組合覆蓋

上面的判斷/條件覆蓋看起來似乎能使每個條件

取得所有可能的結(jié)果,但實際上并不一定能做到這一步。因為在多條件判斷中,邏輯運算符AND或OR在某些條件下會屏蔽其它條件。例如在(A.OR.B)的邏輯表達式中,若A為真,則程序通常不會去檢查B,B中可能隱含的錯誤也發(fā)現(xiàn)不了。采用條件組合覆蓋可解決這一問題。條件組合覆蓋使每個判斷中的各種條件組合至少出現(xiàn)一次。顯然滿足條件組合覆蓋的測試用例是一定能滿足判斷覆蓋,條件覆蓋及判斷/條件覆蓋的。27.2

系統(tǒng)測試的策略(11)管理信息系統(tǒng)》對于圖6-8的程序來說,可以選擇這樣的四個測試用例,使它的八種條件組合都至少出現(xiàn)一次:①A=2,B=0,X=4使A>1,B=0和A=2,X>1兩種情況出現(xiàn)(沿路徑ace);②A=2,B=l,X=1使A>l,B<>0和A=2,X<=1兩種情況出現(xiàn)(沿路徑abe);③A=l,B=0,X=2使A<=1,B=0和A<>2,X>l兩種情況出現(xiàn)(沿路徑abe);④A=l,B=1,X=1使A<=1,B<>0和A<>2,X<=1兩種情況出現(xiàn)(路徑abd);盡管條件組合覆蓋要求很嚴格,但它還沒有將程序中的每一條路徑都覆蓋到,例如路徑acd就沒有執(zhí)行到。由此可見,在模塊測試中,單獨依靠某一種測試方法,并不是很理想的。通常是將兩種方法結(jié)合起來使用。27.2

系統(tǒng)測試的策略(12)管理信息系統(tǒng)》2.子系統(tǒng)測試(分調(diào))子系統(tǒng)測試是在模塊測試的基礎上,解決模塊間相互調(diào)用的問題。子系統(tǒng)測試,通??梢圆捎米皂斚蛳聹y試和自底向上測試兩種方法。(1)自頂向下測試:先用主控模塊作為測試驅(qū)動模塊,然后將其所有下屬模塊用樁模塊代替。樁模塊中只保留所代替模塊的名字,輸入輸出參數(shù),而沒有具體的處理功能。在子系統(tǒng)測試過程中再逐步將樁模塊用實際模塊替換。在替換時,可以按數(shù)據(jù)流動的方向:輸入模塊,處理模塊,輸出模塊的順序逐步替換。在替換樁模塊時,通常是在完成一組測試后,用一個實際模塊替換一個樁模塊,然后再進行下一組測試,這樣依次結(jié)合構(gòu)成一個完整的子系統(tǒng)。為保證模塊替換后沒有引入新的錯誤,可以在模塊替換后先進行回歸測試即重復以前已進行過的部分或全部測試,然后再進行新的測試。27.2

系統(tǒng)測試的策略(13)管理信息系統(tǒng)》(2)自底向上測試:從系統(tǒng)結(jié)構(gòu)的最低一層模塊開始,進行組裝和測試。這種測試方法需要設計一些測試驅(qū)動模塊而不是樁模塊。測試驅(qū)動模塊主要是用來接受不同測試用例的數(shù)據(jù),并把這些數(shù)據(jù)傳遞給被測試模塊,最后打印測試結(jié)果。采用自底向上方法測試子系統(tǒng)時,要先將一些低層模塊組合成實現(xiàn)某一特定功能的模塊群。然后為這些模塊設計一個驅(qū)動模塊,作為測試的控制模塊,以協(xié)調(diào)測試用例的輸入輸出。在完成這一模塊群的測試后,按照系統(tǒng)的層次結(jié)構(gòu)從底向上用實際模塊替換

溫馨提示

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

評論

0/150

提交評論