軟件測試基本方法_第1頁
軟件測試基本方法_第2頁
軟件測試基本方法_第3頁
軟件測試基本方法_第4頁
軟件測試基本方法_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、動態(tài)黑盒測試 不深入代碼細節(jié)的軟件測試方法。常被稱為行為測試,因為測試的是軟件在使用過程中的實際行為。 首先,從產(chǎn)品說明書獲知測試對象的軟件的輸入和應(yīng)該得到的輸出。 接下來,開始定義測試案例。 測試案例:指進行實驗用的輸入,以及測試軟件用的程序。 選擇測試案例是軟件測試員最重要的任務(wù)。不正確的選擇可能導(dǎo)致測試量過大或者過小,甚至測試目標(biāo)不對。準(zhǔn)確評估風(fēng)險,把不可窮近的可能性減少到可以控制的范圍是成功的訣竅。 測試基本方法:通過測試 vs 失敗測試 通過測試:確認軟件至少能做什么,而不考驗其能力。 失敗測試:純粹為了破壞軟件而設(shè)計和執(zhí)行的測試案例,也稱為迫使出錯測試。蓄意攻擊軟件的薄弱環(huán)節(jié)。 在

2、設(shè)計和執(zhí)行測試案例時,總是首先進行通過測試。在破壞性試驗之前看看軟件基本功能是否實現(xiàn)是很重要的,否則在正常使用軟件時就會奇怪為什么有那么多的軟件缺陷。 常見的測試案例就是設(shè)法迫使軟件出現(xiàn)錯誤提示信息。產(chǎn)品說明書可能會給出這樣的功能要求,針對這個問題的測試可能是通過測試也可能是失敗測試??赡軆烧叨际?。不用去刻意區(qū)分,重要的是找到軟件缺陷! 選擇測試案例:等價分配 等價分配:是指分步驟地把過多(無限)的測試案例減小到同樣有效的小范圍的過程。也稱等價劃分。 等價分配技術(shù)提供了一個選擇哪些數(shù)值、舍棄哪些數(shù)值的系統(tǒng)方法。 等價類別或者等價區(qū)間是指測試相同目標(biāo)或者暴露相同軟件缺陷的一組測試案例。在尋找等價

3、區(qū)間時,想辦法把軟件的相似輸入、輸出、操作分成組。這些組就是等價區(qū)間。 等價分配的目的是把可能的測試案例組合縮減到仍然足以測試軟件的控制范圍。因為選擇了不完全測試,就要冒一定的風(fēng)險。如果為了減少測試案例的數(shù)量過度進行等價分配,測試的風(fēng)險就會增加。另外,等價區(qū)間的劃分沒有一定的標(biāo)準(zhǔn),只要足以覆蓋測試對象就行了。 數(shù)據(jù)測試 軟件由數(shù)據(jù)(包括鍵盤輸入、鼠標(biāo)單擊、磁盤文件、打印輸出等等)和程序(可執(zhí)行的流程、轉(zhuǎn)換、邏輯和運算)兩個最基本的要素組成。 對數(shù)據(jù)進行軟件測試,就是在檢查用戶輸入的信息、返回結(jié)果以及中間計算結(jié)果是否正確。主要根據(jù)下列原則來進行等價分配,以合理減少測試案例:邊界條件、次邊界條件和

4、無效數(shù)據(jù)。 1. 邊界條件測試 程序在處理大量中間數(shù)值時都是對的,但是可能在邊界處出現(xiàn)錯誤 。比如數(shù)組的0元素的處理。想要在Basic中定義一個10個元素的數(shù)組,如果使用 Dim data(10 As Integer ,則定義的是一個11個元素的數(shù)組,在賦初值時再使用 For i =1 to 10 .來賦值,就會產(chǎn)生權(quán)限,因為程序忘記了處理i0的0號元素。 邊界條件是指軟件計劃的操作界限所在的邊緣條件。 數(shù)據(jù)類型:數(shù)值、字符、位置、數(shù)量、速度、地址、尺寸等,都會包含確定的邊界。 應(yīng)考慮的特征:第一個/最后一個、開始/完成、空/滿、最慢/最快、相鄰/最遠、最小值/最大值、超過/在內(nèi)、最短/最長、

5、最早/最遲、最高/最低。這些都是可能出現(xiàn)的邊界條件。 根據(jù)邊界來選擇等價分配中包含的數(shù)據(jù)。然而,僅僅測試邊界線上的數(shù)據(jù)點往往不夠充分。提出邊界條件時,一定要測試臨近邊界的合法數(shù)據(jù),即測試最后一個可能合法的數(shù)據(jù),以及剛超過邊界的非法數(shù)據(jù)。以下例子說明一下如何考慮所有可能的邊界: - 如果文本輸入域允許輸入1255個字符。 嘗試:輸入1個字符和255個字符(合法區(qū)間),也可以加入254個字符作為合法測試。 輸入0個字符和256個字符作為非法區(qū)間。 - 如果程序讀寫軟盤 嘗試:保存一個尺寸極小,甚至只有一項的文件。 然后保存一個很大的剛好在軟盤容量限制之內(nèi)的文件。 保存空文件。 保存尺寸大于軟盤容量

6、的文件。 - 如果程序允許在一張紙上打印多個頁面 嘗試:只打印一頁 打印允許的最多頁面 打印0頁 多于所允許的頁面(如果可能的話) - - 2. 次邊界條件測試 上面所講的是普通的邊界條件,在產(chǎn)品說明書中有定義,或者在軟件的過程中確定。但有些邊界在軟件內(nèi)部,最終用戶幾乎看不到,但是軟件測試仍有必要檢查,這樣的邊界條件成為次邊界條件或者內(nèi)部邊界條件。尋找這樣的邊界條件,不要求軟件測試員成為程序員或者具有閱讀源代碼的能力,但是確實要求大體了解軟件的工作方式。2的乘方和ASCII表是這樣的兩個例子: - - 2的乘方 術(shù)語 范圍或值 位bit 0或1 雙位doublebit 015 字節(jié)Byte 0

7、255 字word 065,535或者04,294,967,295 千K 1,024 兆M 1,048,576 億 1,073,741,824 萬億 1,099,511,627,776 計算機和軟件的基礎(chǔ)是二進制數(shù)。因此二的乘方是作為邊界條件的重要數(shù)據(jù)。如:在通訊軟件中,帶寬或者傳輸信息的能力總是受限制,因此軟件工程師會盡一切努力在通訊字符串中壓縮更多數(shù)據(jù)。其中一個方法就是把信息壓縮到盡可能小的單元中,發(fā)送這些小單元中最常用的信息,在必要時再擴展為大一些的單元。假設(shè)某種通訊協(xié)議支持256條命令。軟件將發(fā)送編碼為一個雙位數(shù)據(jù)的最常用的15條命令;如果用到第16到256之間的命令,軟件就轉(zhuǎn)而發(fā)送編

8、碼為更長字節(jié)的命令。這樣,軟件就會根據(jù)雙位/字節(jié)邊界執(zhí)行專門的計算和不同的操作。 在建立等價區(qū)間的時候,要考慮是否需要包含2的乘方邊界條件。例如:軟件接受11000范圍內(nèi)的數(shù)字,那么合法區(qū)間除了1和1000,也許還有2和999之外,還應(yīng)該有臨近2的乘方次邊界:14,15,16以及254,255和256。 - ASCII表 ASCII碼表并不是結(jié)構(gòu)良好的連續(xù)表。數(shù)字09對應(yīng)4857;斜杠字符(/在0的前面,冒號(在9的后面;大寫字母AZ對應(yīng)6590;小寫字母對應(yīng)97122。這些情況都代表次邊界條件。 如果測試進行文本輸入或文本轉(zhuǎn)換的軟件,在定義數(shù)據(jù)區(qū)間包含哪些值時,參考一下ASCII表是相當(dāng)明智

9、的。例如:測試的文本框只接受用戶輸入字符AZ和az,就應(yīng)該在非法區(qū)間中包含ASCII表中這些字符前后的值,。 - - 3. 默認值測試(默認、空白、空值、零值和無) 好的軟件會處理這種情況,常用的方法:一是將輸入內(nèi)容默認為合法邊界內(nèi)的最小值,或者合法區(qū)間內(nèi)某個合理值;二是返回錯誤提示信息。 這些值在軟件中通常需要進行特殊處理。因此應(yīng)當(dāng)建立單獨的等價區(qū)間。在這種默認下,如果用戶輸入0或1作為非法值,就可以執(zhí)行不同的軟件處理過程。 - 4. 破壞測試(非法、錯誤、不正確和垃圾數(shù)據(jù)) 數(shù)據(jù)測試的這一類型是失敗測試的對象。這類 測試沒有實際規(guī)則,只是設(shè)法破壞軟件。不按軟件的要求行事,發(fā)揮創(chuàng)造力吧! -

10、 狀態(tài)測試 狀態(tài)測試是通過不同的狀態(tài)驗證程序的邏輯流程。軟件測試員必須測試軟件的狀態(tài)及其轉(zhuǎn)換。軟件狀態(tài)是指軟件當(dāng)前所處的情況或者模式。軟件通過代碼進入某一個流程分支,觸發(fā)一些數(shù)據(jù)位,設(shè)置某些變量,讀取某些變量,從而轉(zhuǎn)入一個新的狀態(tài)。 同數(shù)據(jù)測試一樣,狀態(tài)測試運用等價分配技術(shù)選擇狀態(tài)和分支。因為選擇不完全測試,所以要承擔(dān)一定的風(fēng)險,但是通過合理選擇減少危險。 1. 建立狀態(tài)轉(zhuǎn)移圖 使用:方框和箭頭;圓圈(泡泡)和箭頭。 應(yīng)包含的項目: 軟件可能進入的每一種獨立狀態(tài)。 如果不能斷定是否獨立,先認為是;以后一旦發(fā)現(xiàn)不是,隨時剔除。 從一種狀態(tài)轉(zhuǎn)入另一種狀態(tài)所需的輸入和條件。 狀態(tài)變化和存在的原因,就

11、是我們要尋找的對象。 進入或退出某種狀態(tài)時的設(shè)置條件及輸出結(jié)果。 包括顯示的菜單和按鈕、設(shè)置的標(biāo)志位、產(chǎn)生的打印輸出、執(zhí)行的運算等等。 由于是黑盒測試,因而只需從用戶的角度建立狀態(tài)圖即可。 2. 減少要測試的狀態(tài)及轉(zhuǎn)換的數(shù)量 測試每一種路線的組合,走遍所有分支是不可能的事情。大量的可能性也需要減少到可以操作的測試案例集合。方法有以下5種: 每種狀態(tài)至少訪問一次。 無論用什么方法,每種狀態(tài)都必須測試。 測試看起來最常見最普遍的狀態(tài)轉(zhuǎn)換 測試狀態(tài)之間最不常用的分支。 這些分支是最容易被產(chǎn)品設(shè)計者和程序員忽視的。 測試所有錯誤狀態(tài)機器返回值。 錯誤是否得到正確的處理、錯誤提示信息是否正確、修復(fù)錯誤時

12、是否正確恢復(fù)軟件等 測試隨機狀態(tài)轉(zhuǎn)換。 3. 進行具體的測試定義測試案例 測試狀態(tài)及其轉(zhuǎn)換包括檢查所有的狀態(tài)變量與進入和退出狀態(tài)相關(guān)的靜態(tài)條件、信息、值、功能等等。如:窗口外觀、窗口尺寸定義(固定/上次使用時的尺寸)、顯示的菜單、默認設(shè)定值、文檔的名稱等。狀態(tài)無論是否可見,都必須進行狀態(tài)確定。 狀態(tài)變量也許不可見,但是很重要,一個常見的例子時文檔涂改標(biāo)志(以此判斷退出時是否詢問保存)。 失敗狀態(tài)測試 狀態(tài)測試的失敗測試的案例,主 要是競爭條件、重復(fù)、壓迫和重負。 1. 競爭條件和時序錯亂 設(shè)計多任務(wù)操作系統(tǒng)不是很難,設(shè)計充分利用多任務(wù)能力的軟件才是艱巨的任務(wù)。在真正的多任務(wù)環(huán)境中軟件設(shè)計絕對不

13、能想當(dāng)然,必須處理隨時被中斷的情況,能夠與其他任何軟件在系統(tǒng)中同時運行,并且共享內(nèi)存、磁盤、通信設(shè)備以及其他硬件資源。 這樣的結(jié)果,就是導(dǎo)致競爭條件問題;軟件未預(yù)料到的中斷發(fā)生,時序就會發(fā)生錯亂。 競爭條件測試難以設(shè)計,最好是首先仔細查看狀態(tài)轉(zhuǎn)換圖中的每一個狀態(tài),以找出哪些外部影響會中斷該狀態(tài)。考慮要使用數(shù)據(jù)如果沒有準(zhǔn)備好,或者在用到時發(fā)生了變化,狀態(tài)會怎樣。數(shù)條弧線或者直線同時相連的情形如何。 一下是要面臨競爭條件的典型情形: 兩個不同的程序同時保存或打開同一個文檔。 共享同一臺打印機、通信端口或者其他外圍設(shè)備。 當(dāng)軟件處于讀取或者修改狀態(tài)時按鍵或者單擊鼠標(biāo)。 同時關(guān)閉或者啟動軟件的多個實例

14、。 同時使用不同的程序方位一個共同數(shù)據(jù)庫。 2. 重復(fù)、壓迫和重負 這三個測試的目標(biāo)是處理那些連程序員都沒有想到的惡劣條件下產(chǎn)生的問題的能力。 重復(fù)測試 重復(fù)測試是不斷執(zhí)行同樣的操作。最簡單的是不停地啟動和關(guān)閉程序,或者反復(fù)讀寫數(shù)據(jù)或者選擇同一個操作。這種測試的主要目的是看內(nèi)存是否不足。如果內(nèi)存被分配進行某項操作,但操作完成時沒有完全釋放,就會產(chǎn)生一個常見的軟件問題。 壓迫測試 壓迫測試是使軟件在不夠理想的條件下運行內(nèi)存小、磁盤空間少、CPU速度慢、調(diào)制解調(diào)器速率低等等。觀察軟件對外部資源的要求和依賴程度。壓迫測試就是將支持降到最低限度,目的在于盡可能的限制軟件的必要條件。 重負測試 重負測試

15、和壓迫測試相反。壓迫測試是盡量限制軟件,而重負測試是盡量提供條件任其發(fā)揮。讓軟件處理盡可能大的數(shù)據(jù)文件。最大限度的發(fā)掘軟件的能力,讓它不堪重負。比如:軟件對打印機或通信端口進行操作,就把能連的都連上;服務(wù)器可以處理幾千個模擬連接,就按他說的做。 不要忘了,時間也是一種重負測試。 重復(fù)、壓迫和重負測試應(yīng)聯(lián)合使用,同時進行。 需要注意的是: 一,項目管理員和小組程序員可能不完全接受軟件測試員這樣打破軟件的做法。但是軟件測試員的任務(wù)就是確保軟件在這樣惡劣的條件下正常工作,否則就報告軟件 缺陷。如何以最佳方式報告軟件缺陷,使其得到嚴(yán)肅對待和修復(fù),也是一門學(xué)問。 二,無數(shù)次重復(fù)和上千次的連接對于手工操作是不可能的。因而需要借助自動化測試工具來實現(xiàn)。 其他黑盒測試方法 1. 像無經(jīng)驗的用戶那樣做 輸入意想不到的數(shù)據(jù);中途變卦而退回去執(zhí)行其他操作;單擊不應(yīng)該單擊的東西 2. 在已經(jīng)找到軟件缺陷的地方再找找 原因有二:一是軟件缺陷的集中性。如果發(fā)現(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論