黑盒測試技術(shù)_第1頁
黑盒測試技術(shù)_第2頁
黑盒測試技術(shù)_第3頁
黑盒測試技術(shù)_第4頁
黑盒測試技術(shù)_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第五章黑盒測試案例設(shè)計(jì)技術(shù)5.1概述本章介紹黑盒測試的概念和進(jìn)行黑盒測試的目的與意義,以及關(guān)于等價(jià)類劃分、邊界值分析、因果圖法、判定表法、正交試驗(yàn)法、功能圖法等測試用例設(shè)計(jì)方法的原理與實(shí)現(xiàn),并從測試設(shè)計(jì)說明、測試用例說明、測試程序說明三個(gè)方面介紹如何編寫測試用例,最后總結(jié)一個(gè)ATM的例子表達(dá)如何設(shè)計(jì)測試用例。5.2測試用例設(shè)計(jì)方法初涉軟件測試者可能認(rèn)為拿到軟件后就可以立即進(jìn)行測試,并希望馬上找出軟件所有缺陷,這種想法就如同沒有受過工程訓(xùn)練的開發(fā)工程師急于去編寫代碼一樣。軟件測試也是一個(gè)工程,也相應(yīng)安裝工程的角度去認(rèn)識軟件測試,在具體的測試實(shí)施之前,我們需要明白我們測試什么,怎么測試等,也就是說通過制定測試用例指導(dǎo)測試的實(shí)施。5.2.1什么是測試用例所謂測試用例設(shè)計(jì)就是將軟件測試的行為活動,作一個(gè)科學(xué)化的組織歸納。軟件測試是有組織性、不周詳和方案性的,而設(shè)計(jì)軟件測試用例的目的,就是為了能將軟件測試的行為轉(zhuǎn)換為可管理的模式。軟件測試時(shí)軟件質(zhì)量管理中最實(shí)際的行動,同時(shí)也是耗時(shí)最多的一項(xiàng)。基于時(shí)間因素的考慮,軟件測試行為必須能夠加以量化,才能進(jìn)一步讓管理階層掌握所需要的測試過程,而測試用例就是將測試行為具體量化的方法之一。簡單的說,測試用例就是設(shè)計(jì)一個(gè)情況,軟件程序在這種情況下,必須能夠正常運(yùn)行并且到達(dá)程序所設(shè)計(jì)的執(zhí)行結(jié)果。如果程序在這種情況下不能正常運(yùn)行,而且這種問題會重復(fù)發(fā)生,那就表示軟件程序人員已經(jīng)測出軟件有缺陷,這時(shí)候就必須將這個(gè)問題標(biāo)示出來,并且輸入到問題跟蹤系統(tǒng)內(nèi),通知軟件開發(fā)人員。軟件開發(fā)人員接獲通知后,將這個(gè)問題修改完成于下一個(gè)測試版本內(nèi),軟件測試工程師取得新的測試版本后,必須利用同一個(gè)用例來測試這個(gè)問題,確保該問題已修改完成。因?yàn)槲覀儾豢赡苓M(jìn)行窮舉測試,為了節(jié)省時(shí)間和資源、提高測試效率,必須要從數(shù)量極大的可用測試數(shù)據(jù)中精心挑選出具有代表性或特殊性的測試數(shù)據(jù)來測試。使用測試用例的好處主要表達(dá)在以下幾個(gè)方面。在開始實(shí)施測試之前設(shè)計(jì)好測試用例,可以防止盲目測試并提高測試效率。測試用例的使用領(lǐng)軟件測試的實(shí)施重點(diǎn)突出、目的明確。在軟件版本更新后只需修正少局部的測試用例便可開展測試工作,降低工作強(qiáng)度,縮短工程周期。功能模塊的通用化和復(fù)用化使軟件測試易于開展,并隨著測試用例的不斷精化其效率也不斷攀升。具體的黑盒測試用例設(shè)計(jì)方法包括等價(jià)類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅(qū)動法、正交試驗(yàn)設(shè)計(jì)法、功能圖法等。應(yīng)該說,這些方法是比擬實(shí)用的,但采用什么方法,在使用時(shí)自然要針對開發(fā)工程的特點(diǎn)對方法加以適當(dāng)?shù)倪x擇。下面我們討論集中常用的方法。5.2.2等價(jià)類劃分法等價(jià)類劃分是一種典型的黑盒測試方法,用這一方法設(shè)計(jì)測試用例完全不考慮程序的內(nèi)部結(jié)構(gòu),只根據(jù)對程序的要求和說明,即需求規(guī)格說明書。我們必須仔細(xì)分析和推敲說明書的各項(xiàng)需求,特別是功能需求。把說明書中對輸入的要求和輸出的要求區(qū)別開來并加以分解。由于窮舉測試工作量太大,以至于無法實(shí)際完成,促使我們在大量的可能數(shù)據(jù)中選取其中的一局部作為測試用例。例如,在不了解等價(jià)分配技術(shù)的前提下,我們做計(jì)算器程序的加法測試時(shí),測試了1+1,1+2,1+3,1+4之后,還有必要測試1+5,1+6嗎,能否放心地認(rèn)為他們是正確的?我們感覺1+5,1+6,與前面的1+1,1+2都是很類似的簡單加法。等價(jià)類劃分的方法是把程序的輸入域劃分成假設(shè)干局部,然后從每個(gè)局部中選取少數(shù)代表性數(shù)據(jù)作為測試用例。每一類的代表性數(shù)據(jù)在測試中的作用等價(jià)于這一類中的其他值,也就是說,如果某一類中的一個(gè)例子發(fā)生了錯誤,這一等價(jià)類中的其他例子也能發(fā)生同樣的錯誤;反之,如果某一類中的一個(gè)例子沒有發(fā)現(xiàn)錯誤,那么這一類中的其他例子也不會查出錯誤〔除非等價(jià)類中的某些例子屬于另一等價(jià)類,因?yàn)閹讉€(gè)等價(jià)類是可能相交的〕。使用這一方法設(shè)計(jì)測試用例,首先必須在分析需求規(guī)格說明的根底上劃分等價(jià)類,列出等價(jià)類表。劃分等價(jià)類和列出等價(jià)類表等價(jià)類是指某個(gè)輸入域的子集合。在該子集合中,各個(gè)輸入數(shù)據(jù)揭露程序中的錯誤都是等效的。并合理地假定:測試某等價(jià)類的代表值就等于對這一類其他值的測試。因此,可以把全部輸入數(shù)據(jù)合理的劃分為假設(shè)干等價(jià)類,在每一個(gè)等價(jià)類中取一個(gè)數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù)取得較好的測試結(jié)果。等價(jià)類劃分有兩種不同的情況:有效等價(jià)類和無效等價(jià)類。有效等價(jià)類:指對于程序的規(guī)格說明來說是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價(jià)類可檢驗(yàn)程序是否實(shí)現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。無效等價(jià)類:與有效等價(jià)類的定義恰巧相反。設(shè)計(jì)測試用例時(shí),要同時(shí)考慮這兩種等價(jià)類。因?yàn)檐浖粌H要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗(yàn)。這樣的測試才能確保軟件具有更高的可靠性。下面給出6條確定等價(jià)類的原那么:在輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)情況下,可以確立一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何〞的條件的情況下,可以確立一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。在規(guī)定了輸入數(shù)據(jù)的一組值〔假定n個(gè)〕,并且程序要對每一個(gè)輸入值分別處理的情況下,可確定n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)那么的情況下,可確立一個(gè)有效等價(jià)類〔符合規(guī)那么〕和假設(shè)干個(gè)無效等價(jià)類〔從不同角度違反規(guī)那么〕。在確定已劃分的等價(jià)類中,各元素在程序處理中的方式不同的情況下,那么應(yīng)再將該等價(jià)類進(jìn)一步地劃分為更小的等價(jià)類。在確立了等價(jià)類之后,建立等價(jià)類表,列出所有劃分出的等價(jià)類如表所示。表5-1等價(jià)類表例如輸入條件有效等價(jià)類無效等價(jià)類輸入條件有效等價(jià)類無效等價(jià)類………………確定測試用例根據(jù)已列出的等價(jià)類表,按以下步驟確定測試用例:為每個(gè)等價(jià)類規(guī)定一個(gè)唯一的編號。設(shè)計(jì)一個(gè)新的測試用例,使其盡可能多的覆蓋尚未覆蓋的有效等價(jià)類。重復(fù)這一步,最后使得所有有效等價(jià)類均被測試用例所覆蓋。設(shè)計(jì)一個(gè)新的測試用例,使其只覆蓋一個(gè)無效等價(jià)類。重復(fù)這一步使所有無效等價(jià)類均被覆蓋。在尋找等價(jià)區(qū)間時(shí),想方法把軟件的相似輸入、輸出、操作分成組。這些組就是等價(jià)區(qū)間。例題:根據(jù)下面給出的規(guī)格說明,利用等價(jià)類劃分的方法,給出足夠的測試用例?!耙粋€(gè)程序讀入3個(gè)整數(shù),把這三個(gè)數(shù)值看作一個(gè)三角形的三條邊的長度值。這個(gè)程序要打印出信息,說明這個(gè)三角形是不等邊的、是等腰的、還是等邊的〞。我們可以設(shè)三角形的三條邊為A,B,C。如果他們能夠構(gòu)成三角形的3條邊,必須滿足:A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B。如果是等腰的,還要判斷A=B,或B=C,或A=C。如果是等邊的,那么需判斷是否A=B,且B=C,且A=C。列出等價(jià)類表,如表5-2所示。設(shè)計(jì)測試用例:輸入順序是【A,B,C】,如表5-3所示。請記住,等價(jià)分配的目標(biāo)是把可能的測試用例組合縮減到仍然足以滿足軟件測試需求為止。因?yàn)?,選擇了不完全測試,就要冒一定的風(fēng)險(xiǎn),所以必須仔細(xì)選擇分類。關(guān)于等價(jià)分配最后要講的一點(diǎn)是,這樣做有可能不客觀??茖W(xué)有時(shí)也是一門藝術(shù)。測試同一個(gè)復(fù)雜程序的兩個(gè)軟件測試員,可能會制定出兩種不同的等價(jià)區(qū)間。只要審查等價(jià)區(qū)間的人都認(rèn)為他們足以覆蓋測試對象就可以了。5.2.3邊界值分析法人們從長期的測試工作經(jīng)驗(yàn)得知,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上的,而不是在輸入范圍的內(nèi)部。因此針對各種邊界情況設(shè)計(jì)測試用例,可以查出更多的錯誤。例如,在做三角形計(jì)算時(shí),要輸入三角形的3個(gè)邊長A、B、C。這三個(gè)數(shù)值應(yīng)當(dāng)滿足A>0,B>0,C>0,A+B>C,A+C>B,B+C>A,才能構(gòu)成三角形。但如果把6個(gè)不等式中的任何一個(gè)大于號“>〞錯寫成大于等于號“≥〞,那就不能構(gòu)成三角形。問題恰恰出現(xiàn)在容易被疏忽的邊界附近。這里所說的邊界是指相當(dāng)于輸入等價(jià)類和輸出等價(jià)類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況。邊界條件我們可以想象一下,如果在懸崖峭壁邊可以自信地平安行走,平地就不在話下了。如果軟件在能力到達(dá)極限時(shí)能夠運(yùn)行,那么在正常情況下一般也就不會有什么問題。邊界條件是特殊情況,因?yàn)榫幊虖母旧险f不疑心邊界有問題。下面的一段源代碼說明了在一個(gè)極簡單的程序中是如何產(chǎn)生邊界條件問題的。remcreatea10elementintegerarrayreminitializeeachelementto-1dimdata(10)asintegerdimIasintegerfori==1to10data(i)=-1nextiend這段代碼的意圖是創(chuàng)立包含10個(gè)元素的數(shù)組,并為數(shù)組中的每一個(gè)元素賦初值-1.看起來相當(dāng)簡單。它建立了包含10

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論