版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
(又叫用戶體驗測試UAT)Bugzilla是Mozilla公司提供的一款開源的免費(fèi)Bug(錯誤或是缺陷)追蹤系統(tǒng),用來幫助你管理軟件開發(fā),建立完善的BUG跟蹤體系。Bugzilla是一開源BugTrackingSystem,是專門為Unix定制開發(fā)的。但是在windows平臺下依然可以成功安裝使用.Bugzilla是一個搜集缺陷的數(shù)據(jù)庫。它讓用戶報告的缺陷從而把它們轉(zhuǎn)給合適的開發(fā)者。開發(fā)者能使用保持一個要做事情的優(yōu)先表,還有時間表和跟蹤相關(guān)性。不是所有的"bugs”都是。一些數(shù)據(jù)庫中的內(nèi)容是作為增強(qiáng)的請求(RFE)。一個RFE是一個嚴(yán)重級別字段被設(shè)為"enhancement”的"Bug”.人們常說"bug”,實際上意思是Bugzilla中的記錄,所以RFEs經(jīng)常被稱作bug。黑盒測試黑盒測試也稱,它是通過測試來檢測每個功能是否都能正常使用。在測試中,把看作一個不能打開的黑盒子,在完全不考慮程序內(nèi)部結(jié)構(gòu)和內(nèi)部特性的情況下,在進(jìn)行測試,它只檢查程序功能是否按照需求規(guī)格說明書的規(guī)定正常使用,程序是否能適當(dāng)?shù)亟邮蛰斎霐?shù)據(jù)而產(chǎn)生正確的輸出信息。黑盒測試著眼于外部結(jié)構(gòu),不考慮內(nèi)部,主要針對和軟件功能進(jìn)行測試。注重于測試軟件的功能需求,主要試圖發(fā)現(xiàn)下列幾類錯誤。功能不正確或遺漏;界面錯誤;輸入和輸出錯誤;訪問錯誤;性能錯誤;和錯誤等。從理論上講,黑盒測試只有采用窮舉輸入測試,把所有可能的輸入都作為測試情況考慮,才能查出中所有的錯誤。實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但可能的輸入進(jìn)行測試。這樣看來,完全測試是不可能的,所以我們要進(jìn)行有針對性的測試,通過制定測試案例指導(dǎo)測試的實施,保證有組織、按步驟,以及有計劃地進(jìn)行。黑盒測試行為必須能夠加以量化,才能真正保證,而就是將測試行為具體量化的方法之一。具體的黑盒方法包括等價類劃分法、邊界值分析法、錯誤推測法、、判定法、正交試驗設(shè)計法、功能圖法、法等。等價類劃分的辦法是把的輸入域劃分成若干部分(子集),然后從每個部分中選取少數(shù)代表性數(shù)據(jù)作為測試。每一類的代表性數(shù)據(jù)在測試中的作用等價于這一類中的其他值。該方法是一種重要的,常用的黑盒方法。劃分等價類1) 劃分等價類:等價類是指某個輸入域的子集合。在該子集合中,各個輸入數(shù)據(jù)對于揭露中的錯誤都是等效的,并合理地假定:測試某等價類的代表值就等于對這一類其它值的測試因此,可以把全部輸入數(shù)據(jù)合理劃分為若干等價類,在每一個等價類中取一個數(shù)據(jù)作為測試的輸入條件,就可以用少量代表性的測試數(shù)據(jù).取得較好的測試結(jié)果.等價類劃分可有兩種不同的情況:有效等價類和無效等價類。有效等價類:是指對于的規(guī)格說明來說是合理的,有意義的輸入數(shù)據(jù)構(gòu)成的集合利用有效等價類可檢驗程序是否實現(xiàn)了規(guī)格說明中所規(guī)定的功能和性能。:與有效等價類的定義恰巧相反。設(shè)計時,要同時考慮這兩種等價類.因為,軟件不僅要能接收合理的數(shù)據(jù),也要能經(jīng)受意外的考驗.這樣的測試才能確保軟件具有更高的可靠性。劃分等價類準(zhǔn)則2) 劃分等價類的方法:下面給出六條確定等價類的原則。在輸入條件規(guī)定了取值范圍或值的個數(shù)的情況下,則可以確立一個有效等價類和兩個無效等價類。在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確立一個有效等價類和一個.在輸入條件是一個的情況下,可確定一個有效等價類和一個無效等價類。在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個),并且要對每一個輸入值分別處理的情況下,可確立n個有效等價類和一個無效等價類。在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確立一個有效等價類(符合規(guī)則)和若干個(從不同角度違反規(guī)則)。在確知已劃分的等價類中各元素在處理中的方式不同的情況下,則應(yīng)再將該等價類進(jìn)一步的劃分為更小的等價類。3)設(shè)計:在確立了等價類后,可建立等價類表,列出所有劃分出的等價類:輸入條件輸入條件有效等價類然后從劃分出的等價類中按以下三個原則設(shè)計:為每一個等價類規(guī)定一個唯一的編號。設(shè)計一個新的,使其盡可能多地覆蓋尚未被覆蓋地有效等價類,重復(fù)這一步直到所有的有效等價類都被覆蓋為止。設(shè)計一個新的,使其僅覆蓋一個尚未被覆蓋的,重復(fù)這一步直到所有的無效等價類都被覆蓋為止。邊界值分析法邊界值分析是通過選擇等價類邊界的。邊界值分析法不僅重視輸入條件邊界,而且也必須考慮輸出域邊界。它是對等價類劃分方法的補(bǔ)充。(1) 邊界值分析方法的考慮:長期的測試工作經(jīng)驗告訴我們,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部.因此針對各種邊界情況設(shè)計,可以查出更多的錯誤。使用邊界值分析方法設(shè)計,首先應(yīng)確定邊界情況.通常輸入和輸出等價類的邊界,就是應(yīng)著重測試的邊界情況.應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值作為測試數(shù)據(jù)。(2) 基于邊界值分析方法選擇的原則:1) 如果輸入條件規(guī)定了值的范圍,則應(yīng)取剛達(dá)到這個范圍的邊界的值,以及剛剛超越這個范圍邊界的值作為測試輸入數(shù)據(jù)。2) 如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù),最小個數(shù),比最小個數(shù)少一,比最大個數(shù)多一的數(shù)作為測試數(shù)據(jù)。3) 根據(jù)規(guī)格說明的每個輸出條件,使用前面的原則1)。4) 根據(jù)規(guī)格說明的每個輸出條件,應(yīng)用前面的原則2)。5) 如果的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個元素和最后一個元素作為。6) 如果中使用了一個內(nèi)部,則應(yīng)當(dāng)選擇這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值作為。7) 分析規(guī)格說明,找出其它可能的邊界條件。錯誤推測法錯誤推測法是基于經(jīng)驗和直覺推測中所有可能存在的各種錯誤,從而有針對性的設(shè)計的方法錯誤推測方法的基本思想:列舉出中所有可能有的錯誤和容易發(fā)生錯誤的特殊情況,根據(jù)他們選擇。例如,在時曾列出的許多在模塊中常見的錯誤以前產(chǎn)品測試中曾經(jīng)發(fā)現(xiàn)的錯誤等,這些就是經(jīng)驗的總結(jié)。還有,輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況.輸入表格為空格或輸入表格只有一行.這些都是容易發(fā)生錯誤的情況。可選擇這些情況下的例子作為測試用例。因果圖法前面介紹的等價類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系,相互組合等。考慮輸入條件之間的相互組合,可能會產(chǎn)生一些新的情況但要檢查輸入條件的組合不是一件容易的事情,即使把所有輸入條件劃分成等價類,他們之間的組合情況也相當(dāng)多因此必須考慮采用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個動作的形式來考慮設(shè)計.這就需要利用(邏輯模型)。方法最終生成的就是判定表。它適合于檢查輸入條件的各種組合情況。生成(1)分析軟件規(guī)格說明描述中,哪些是原因(即輸入條件或輸入條件的等價類),哪些是結(jié)果(即輸出條件),并給每個原因和結(jié)果賦予一個標(biāo)識符。(2) 分析軟件規(guī)格說明描述中的語義。找出原因與結(jié)果之間,原因與原因之間對應(yīng)的關(guān)系根據(jù)這些關(guān)系,畫出。(3) 由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不可能出現(xiàn)為表明這些特殊情況,在上用一些記號標(biāo)明約束或限制條件。(4) 把轉(zhuǎn)換為。(5)把的每一列拿出來作為依據(jù),設(shè)計。從生成的(局部,組合關(guān)系下的)包括了所有輸入數(shù)據(jù)的取TRUE與取FALSE的情況,構(gòu)成的測試用例數(shù)目達(dá)到最少,且測試用例數(shù)目隨輸入數(shù)據(jù)數(shù)目的增加而線性地增加。前面方法中已經(jīng)用到了。判定表(DecisionTable)是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況下的工具.在發(fā)展的初期,判定表就已被當(dāng)作編寫程序的了.由于它可以把復(fù)雜的邏輯關(guān)系和多種條件組合的情況表達(dá)得既具體又明確。判定表組成法條件樁(ConditionStub):列出了問題的所有條件.通常認(rèn)為列出的條件的次序無關(guān)緊要。動作樁(ActionStub):列出了問題規(guī)定可能采取的操作.這些操作的排列順序沒有約束。條件項(ConditionEntry):列出針對它左列條件的取值.在所有可能情況下的真假值。動作項(ActionEntry):列出在條件項的各種取值情況下應(yīng)該采取的動作。規(guī)則:任何一個條件組合的特定取值及其相應(yīng)要執(zhí)行的操作.在中貫穿條件項和動作項的一列就是一條規(guī)則.顯然,判定表中列出多少組條件取值,也就有多少條規(guī)則,既條件項和動作項有多少列。判定表的建立步驟確定規(guī)則的個數(shù)。假如有n個條件.每個條件有兩個取值(0,1),故有2n種規(guī)則。列出所有的條件樁和動作樁。填入條件項。填入動作項.等到初始判定表。簡化.合并相似規(guī)則(相同動作)。B.Beizer指出了適合使用設(shè)計的條件:規(guī)格說明以形式給出,或很容易轉(zhuǎn)換成判定表。條件的排列順序不會也不影響執(zhí)行哪些操作。規(guī)則的排列順序不會也不影響執(zhí)行哪些操作。每當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗別的規(guī)則。如果某一規(guī)則得到滿足要執(zhí)行多個操作,這些操作的執(zhí)行順序無關(guān)緊要。正交試驗設(shè)計法就是使用已經(jīng)造好了的正交來安排試驗并進(jìn)行數(shù)據(jù)分析的一種方法,目的是用最少的達(dá)到最高的測試覆蓋率。場景法現(xiàn)在的軟件幾乎都是用事件觸發(fā)來控制流程的,事件觸發(fā)時的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果就形成事件流。這種在軟件設(shè)計方面的思想也可以引入到軟件測試中,可以比較生動地描繪出事件觸發(fā)時的情景,有利于測試設(shè)計者設(shè)計測試用例,同時使測試用例更容易理解和執(zhí)行?;玖骱蛡溥x流:如下圖所示,圖中經(jīng)過用例的每條路徑都用基本流和備選流來表示,直黑線表示基本流,是經(jīng)過用例的最簡單的路徑。備選流用不同的色彩表示,一個備選流可能從基本流開始,在某個特定條件下執(zhí)行,然后重新加入基本流中(如備選流1和3);也可能起源于另一個備選流(如備選流2),或者終止用例而不再重新加入到某個流(如備選流2和4)。[2]基本流和備選流流程測試計劃首先,根據(jù)用戶需求報告中關(guān)于功能要求和性能指標(biāo)的規(guī)格說明書,定義相應(yīng)的測試需求報告,即制訂黑盒測試的最高標(biāo)準(zhǔn),以后所有的測試工作都將圍繞著測試需求來進(jìn)行,符合測試需求的即是合格的,反之即是不合格的;同時,還要適當(dāng)選擇測試內(nèi)容,合理安排測試人員、測試時間及測試資源等。測試設(shè)計將階段制訂的測試需求分解、細(xì)化為若干個可執(zhí)行的,并為每個測試過程選擇適當(dāng)?shù)模y試用例選擇的好壞將直接影響到測試結(jié)果的有效性)。測試開發(fā)建立可重復(fù)使用的自動。測試執(zhí)行執(zhí)行測試開發(fā)階段建立的自動,并對所發(fā)現(xiàn)的進(jìn)行。測試執(zhí)行一般由、組合測試、、系統(tǒng)聯(lián)調(diào)及等步驟組成,測試人員應(yīng)本著科學(xué)負(fù)責(zé)的態(tài)度,地進(jìn)行測試。測試評估結(jié)合量化的域及跟蹤報告,對于的質(zhì)量和開發(fā)團(tuán)隊的工作進(jìn)度及工作效率進(jìn)行綜合評價。缺點結(jié)果取決于的設(shè)計,測試用例的設(shè)計部分優(yōu)勢來源于經(jīng)驗,OUSPG的東西很值得借鑒沒有狀態(tài)轉(zhuǎn)換的概念,目前一些成功的例子基本上都是針對PDU來做的,還做不到針對被的狀態(tài)轉(zhuǎn)換來實現(xiàn)就沒有狀態(tài)概念的測試來說,尋找和確定造成crash的測試?yán)莻€麻煩事情,必須把周圍可能的測試?yán)龁为毚_認(rèn)一遍。而就有狀態(tài)的測試來說,就更麻煩了,尤其不是一個單獨的testcase造成的問題。這些在堆的問題中表現(xiàn)的更為突出。工具選擇如何高效地完成功能測試?選擇一款合適的功能測試工具并培訓(xùn)一支高素質(zhì)的隊伍無疑是至關(guān)重要的。盡管現(xiàn)階段存在少數(shù)不采用任何功能測試工具,從事功能測試外包項目的軟件服務(wù)企業(yè)。短期來看,這類企業(yè)盈利狀況尚可,但長久來看,它們極有可能被自動化程度較高的軟件服務(wù)企業(yè)取代。目前,用于功能測試的有很多,針對不同架構(gòu)軟件的工具也不斷推陳出新。這里重點介紹的是其中一個較為典型工具,即Mercury公司的WinRunner。WinRunner是一種用于檢驗?zāi)芊袢缙谶\(yùn)行的企業(yè)級軟件功能測試工具。通過自動捕獲、檢測和模擬用戶交互操作,WinRunner能識別出絕大多數(shù)軟件功能,從而確保那些跨越了多個功能點和的在發(fā)布時盡量不出現(xiàn)功能性故障。WinRunner的特點在于:與傳統(tǒng)的相比,它能快速、批量地完成功能點測試;能針對相同,執(zhí)行相同的動作,從而消除人工測試所帶來的理解上的誤差;此外,它還能重復(fù)執(zhí)行相同動作,測試工作中最枯燥的部分可交由機(jī)器完成;它支持風(fēng)格的測試腳本,一個高素質(zhì)的能借助它完成流程極為復(fù)雜的測試,通過使用、宏、條件語句、等,還能較好地完成測試腳本的重用;它針對于大多數(shù)和Windows技術(shù),提供了較好的集成、支持環(huán)境,這對基于Windows平臺的實施功能測試而言帶來了極大的便利。工作流程識別GUI在WinRunner中,我們可以使用GUISpy來識別各種GUI,識別后,WinRunner會將其存儲到GUIMapFile中。它提供兩種GUIMapFile模式:GlobalGUIMapFile和GUIMapFileperTest。其最大區(qū)別是后者對每個產(chǎn)生一個GUI文件,它能自動建立、、加載,推薦初學(xué)者選用這種模式。但是,這種模式不易于描述對象的改變,其效率比較低,因此對于一個有經(jīng)驗的測試人員來說前者不失為一種更好的選擇,它只產(chǎn)生一個共享的GUI文件,這使得更容易維護(hù),且效率更高。建立測試腳本在建立測試時,一般先進(jìn)行錄制,然后在錄制形成的腳本中手工加入需要的TSL(與C語言類似的測試)。錄制腳本有兩種模式:ContextSensitive和Analog,選擇依據(jù)主要在于是否對鼠標(biāo)軌跡進(jìn)行模擬,在需要回放時一般選用Analog。在錄制過程中這兩種模式可以通過F2鍵相互切換。只要看看現(xiàn)代軟件的規(guī)模和功能點數(shù)就可以明白,功能測試早已跨越了單靠手工敲敲鍵盤、點點鼠標(biāo)就可以完成的階段。而則是控制系統(tǒng)性能的有效手段,在軟件的能力驗證、能力規(guī)劃、、修復(fù)等方面都發(fā)揮著重要作用。對測試腳本除錯在WinRunner中有專門一個DebugToolbar用于除錯??梢允褂胹tep、pause、breakpoint等來控制和跟蹤和查看各種值。測試腳本當(dāng)有新版本發(fā)布時,我們會對應(yīng)用程序的各種功能包括新增功能進(jìn)行測試,這時當(dāng)然不可能再來重新錄制和編寫所有的。我們可以使用已有的腳本,批量運(yùn)行這些測試舊的功能點是否正常工作??梢允褂靡粋€call命令來加載各。還可在call命令中加各種TSL腳本來增加批量能力。分析測試結(jié)果分析測試結(jié)果在整個中最重要,通過分析可以發(fā)現(xiàn)的各種功能性。當(dāng)運(yùn)行完某個后,會產(chǎn)生一個,從這個測試報告中我們能發(fā)現(xiàn)的功能性,能看到實際結(jié)果和期望結(jié)果之間的差異,以及在中產(chǎn)生的各類對話框等?;貓笕毕菰诜治鐾旰?,按照測試流程要回報的各種,然后將這些缺陷發(fā)給指定人,以便進(jìn)行修改和維護(hù)。常用方法功能測試就是對產(chǎn)品的各功能進(jìn)行驗證,根據(jù)功能,逐項測試,檢查產(chǎn)品是否達(dá)到用戶要求的功能。常用的測試方法如下頁面鏈接檢查:每一個鏈接是否都有對應(yīng)的頁面,并且頁面之間切換正確。相關(guān)性檢查:刪除/增加一項會不會對其他項產(chǎn)生影響,如果產(chǎn)生影響,這些影響是否都正確。檢查按鈕的功能是否正確:如update,cancel,delete,save等功能是否正確。字符串長度檢查:輸入超出需求所說明的字符串長度的內(nèi)容,看系統(tǒng)是否檢查字符串長度,會不會出錯.字符類型檢查:在應(yīng)該輸入指定類型的內(nèi)容的地方輸入其他類型的內(nèi)容(如在應(yīng)該輸入整型的地方輸入其他字符類型),看系統(tǒng)是否檢查字符類型,會否報錯.標(biāo)點符號檢查:輸入內(nèi)容包括各種標(biāo)點符號,特別是空格,各種引號,.看系統(tǒng)處理是否正確.中文處理:在可以輸入中文的系統(tǒng)輸入中文,看會否出現(xiàn)或出錯.檢查帶出信息的完整性:在查看信息和update信息時,查看所填寫的信息是不是全部帶出.,帶出信息和添加的是否一致信息重復(fù):在一些需要命名,且名字應(yīng)該唯一的信息輸入重復(fù)的名字或ID,看系統(tǒng)有沒有處理,會否報錯,重名包括是否區(qū)分大小寫,以及在輸入內(nèi)容的前后輸入空格,系統(tǒng)是否作出正確處理檢查刪除功能:在一些可以一次刪除多個信息的地方,不選擇任何信息,按"delete”,看系統(tǒng)如何處理,會否出錯;然后選擇一個和多個信息,進(jìn)行刪除,看是否正確處理檢查添加和修改是否一致:檢查添加和修改信息的要求是否一致,例如添加要求必填的項,修改也應(yīng)該必填;添加規(guī)定為整型的項,修改也必須為整型.檢查修改重名:修改時把不能重名的項改為已存在的內(nèi)容,看會否處理,報錯同時,也要注意,會不會報和自己重名的錯.重復(fù)提交:一條已經(jīng)成功提交的紀(jì)錄,back后再提交,看看系統(tǒng)是否做了處理。檢查多次使用back鍵的情況:在有back的地方,back,回到原來頁面,再back,重復(fù)多次,看會否出錯.search檢查:在有search功能的地方輸入系統(tǒng)存在和不存在的內(nèi)容,看search結(jié)果是否正確.如果可以輸入多個search條件,可以同時添加合理和不合理的條件,看系統(tǒng)處理是否正確.輸入信息位置:注意在停留的地方輸入信息時,光標(biāo)和所輸入的信息會否跳到別的地方上傳下載文件檢查:上傳下載文件的功能是否實現(xiàn),上傳文件是否能打開。對上傳文件的格式有何規(guī)定,系統(tǒng)是否有解釋信息,并檢查系統(tǒng)是否能夠做到。必填項檢查:應(yīng)該填寫的項沒有填寫時系統(tǒng)是否都做了處理,對必填項是否有提示信息,如在必填項前加*檢查:是否支持常用快捷鍵,如Ctrl+CCtrl+VBackspace等,對一些不允許輸入信息的字段,如選人,選日期對是否也做了限制。檢查:在輸入結(jié)束后直接按回車鍵,看系統(tǒng)處理如何,會否報錯。什么是黑盒測試和白盒測試?任何工程產(chǎn)品(注意是任何工程產(chǎn)品)都可以使用以下兩種方法之一進(jìn)行測試。黑盒測試:已知產(chǎn)品的功能設(shè)計規(guī)格,可以進(jìn)行測試證明每個實現(xiàn)了的功能是否符合要求。白盒測試:已知產(chǎn)品的內(nèi)部工作過程,可以通過測試證明每種內(nèi)部操作是否符合設(shè)計規(guī)格要求,所有內(nèi)部成分是否以經(jīng)過檢查。軟件的黑盒測試意味著測試要在軟件的接口處進(jìn)行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數(shù)據(jù)驅(qū)動測試。黑盒測試主要是為了發(fā)現(xiàn)以下幾類錯誤:1、 是否有不正確或遺漏的功能?2、 在接口上,輸入是否能正確的接受?能否輸出正確的結(jié)果?3、 是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤?4、 性能上是否能夠滿足要求?5、 是否有初始化或終止性錯誤?軟件的白盒測試是對軟件的過程性細(xì)節(jié)做細(xì)致的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進(jìn)行測試。通過在不同點檢查程序狀態(tài),確定實際狀態(tài)是否與預(yù)期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。白盒測試主要是想對程序模塊進(jìn)行如下檢查:1、 對程序模塊的所有獨立的執(zhí)行路徑至少測試一遍。2、 對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。3、 在循環(huán)的邊界和運(yùn)行的界限內(nèi)執(zhí)行循環(huán)體。4、 測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。以上事實說明,軟件測試有一個致命的缺陷,即測試的不完全、不徹底性。由于任何程序只能進(jìn)行少量(相對于窮舉的巨大數(shù)量而言)的有限的測試,在未發(fā)現(xiàn)錯誤時,不能說明程序中沒有錯誤。因果圖法從用自然語言書寫的規(guī)格說明的描述中找出因(輸入條件)和果(輸出或程序狀態(tài)的改變),可以通過因果圖轉(zhuǎn)換為。因果圖法即因果分析圖,又叫特性要因圖、石川圖或魚翅圖,它是由日本東京大學(xué)教授石川馨提出的一種通過帶箭頭的線,將質(zhì)量問題與原因之間的關(guān)系表示出來,是分析影響產(chǎn)品質(zhì)量的諸因素之間關(guān)系的一種工具。因果圖法是一種適合于描述對于多種輸入條件組合的方法,根據(jù)輸入條件的組合、約束關(guān)系和輸出條件的因果關(guān)系,分析輸入條件的各種組合情況,從而設(shè)計的方法,它適合于檢查輸入條件涉及的各種組合情況。因果圖法一般和結(jié)合使用,通過映射同時發(fā)生相互影響的多個輸入來確定判定條件。因果圖法最終生成的就是,它適合于檢查輸入條件的各種組合情況。采用因果圖法能幫助我們按照一定的步驟選擇一組高效的,同時,還能指出規(guī)范中存在什么問題,鑒別和制作因果圖。因果圖法著重分析輸入條件的各種組合,每種組合條件就是“因”,它必然有一個輸出的結(jié)果,這就是“果”。利用因果圖導(dǎo)出測試用例一般要經(jīng)過以下幾個步驟:1) 分析軟件規(guī)格說明的描述中哪些是原因,哪些是結(jié)果。原因是輸入或輸入條件的等價類,結(jié)果是輸出條件。給每個原因和結(jié)果并賦予一個,根據(jù)這些關(guān)系,畫出因果圖。2) 因果圖上用一些記號表明約束條件或限制條件。3) 對需求加以分析并把它們表示為因果圖之間的關(guān)系圖。4) 把因果圖轉(zhuǎn)換成。5) 將的每一列作為依據(jù),設(shè)計。例題有一個處理單價為1元5角錢的盒裝飲料的自動售貨機(jī)軟件。若投入1元5角硬幣,按下“可樂”、“雪碧”、“紅茶”按鈕,相應(yīng)的飲料就送出來。若投入的是兩元硬幣,在送出飲料的同時退還5角硬幣。分析原因:①投入1元5角硬幣;②投入2元硬幣;③按“可樂”按鈕;④按“雪碧”按鈕;⑤按“紅茶”按鈕。中間狀態(tài):①已投幣;②已按鈕。結(jié)果:①退還5角硬幣;②送出“可樂”飲料③送出“雪碧”飲料;④送出“紅茶”飲料。出判定表等價類劃分等價類劃分就是解決如何選擇適當(dāng)?shù)臄?shù)據(jù)子集來代表整個數(shù)據(jù)集的問題,通過降低測試的數(shù)目去實現(xiàn)“合理的”覆蓋,覆蓋了更多的可能數(shù)據(jù),以發(fā)現(xiàn)更多的軟件缺陷。等價類劃分法是一種典型的、重要的黑盒測試方法,它將程序所有可能的輸入數(shù)據(jù)(有效的和無效的)劃分成若十個等價類。然后從每個部分中選取具有代表性的數(shù)據(jù)當(dāng)做測試用例進(jìn)行合理的分類,測試用例由有效等價類和無效等價類的代表組成,從而保證測試用例具有完整性和代表性。利用這一方法設(shè)計測試用例可以不考慮程序的內(nèi)部結(jié)構(gòu),以需求規(guī)格說明書為依據(jù),選擇適當(dāng)?shù)牡湫妥蛹?,認(rèn)真分析和推敲說明書的各項需求,特別是功能需求,盡可能多地發(fā)現(xiàn)錯誤。等價類劃分法是一種系統(tǒng)性的確定要輸入的測試條件的方法。由于等價類是在需求規(guī)格說明書的基礎(chǔ)上進(jìn)行劃分的,并且等價類劃分不僅可以用來確定測試用例中的數(shù)據(jù)的輸入輸出的精確取值范圍,也可以用來準(zhǔn)備中間值、狀態(tài)和與時間相關(guān)的數(shù)據(jù)以及接口參數(shù)等,所以等價類可以用在系統(tǒng)測試、集成測試和組件測試中,在有明確的條件和限制的情況下,利用等價類劃分技術(shù)可以設(shè)計出完備的測試用例。這種方法可以減少設(shè)計一些不必要的測試用例,因為這種測試用例一般使用相同的等價類數(shù)據(jù),從而使測試對象得到同樣的反映行為。對于等價類我們從以下幾個方面討論它的劃分方法。等價類劃分的方法分為兩個主要的步驟,劃分等價類型和設(shè)計測試用例。有效等價類劃分有效等價類指對于程序規(guī)格說明來說,是合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用有效等價類可以檢驗程序是否實現(xiàn)了規(guī)格說明預(yù)先規(guī)定的功能和性能。有效等價類可以是一個,也可以是多個,根據(jù)系統(tǒng)的輸入域劃分若干部分,然后從每個部分中選取少數(shù)有代表性數(shù)據(jù)當(dāng)做數(shù)據(jù)測試的測試用例,等價類是輸入域的集合。以下是對有效等價類數(shù)據(jù)集的一些例子。終端用戶輸入的命令與最終用戶交互的系統(tǒng)提示接受相關(guān)的用戶文件的名稱提供初始化值和邊界等提供格式化輸出數(shù)據(jù)的命令在圖形模式(比如鼠標(biāo)點擊時)提供的數(shù)據(jù)失敗時顯示的回應(yīng)消息無效等價類劃分無效等價類和有效等價類相反,無效等價類是指對于軟件規(guī)格說明而言,沒有意義的、不合理的輸入數(shù)據(jù)集合。利用無效等價類,可以找出程序異常說明情況,檢查程序的功能和性能的實現(xiàn)是否有不符合規(guī)格說明要求的地方。以下是無效等價類數(shù)據(jù)集的一些例子。在一個不正確的地方提供適當(dāng)?shù)闹怠?/p>
驗證邊界值驗證外部邊界的值用戶輸入的命令最終用戶與系統(tǒng)交互的提示驗證與邊界和外部邊界值的數(shù)值數(shù)據(jù)等價類劃分的方法按區(qū)間劃分。按數(shù)值劃分。按數(shù)值集合劃分。按限制條件或規(guī)劃劃分。按處理方式劃分。等價類劃分的原則如下:在輸入條件規(guī)定的取值范圍或值的個數(shù)的情況下,可以確定一個有效等價類和兩個無效等價類。在規(guī)定了輸入數(shù)據(jù)的一組值中(假定有n個值),并且程序要對每個輸入值分別處理的情況下,可以確定n個有效等價類和一個無效等價類。在規(guī)定輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可以確定一個有效等價類和若干個無效等價類。在輸入條件規(guī)定了輸入值的集合或規(guī)定了“必須如何”的條件下,可以確定一個有效等價類和一個無效等價類。在確定已劃分的等價類中各元素在程序處理中的方式不同的情況下,則應(yīng)將該等價類進(jìn)一步地劃分為更小的等價類。等價類表的建立等價類表的建立如表3-1所示。表3-1是等價類表的基礎(chǔ),可依據(jù)表3-1確定測試用例。測試用例可按下列步驟來確定:表3-1等價類表1) 在分析規(guī)格說明的基礎(chǔ)上劃分等價類,列出等價類表,為每一個等價類規(guī)定一個唯一的編號。2) 將程序可能的輸入數(shù)據(jù)分成若干個子集,從每個子集中選取一個有代表性的數(shù)據(jù)作為測試用例。等價類是某個輸入域的子集,在該子集中的每個輸入數(shù)據(jù)的作用都是等效的。3) 設(shè)計新的測試用例,使其盡可能多地覆蓋未覆蓋的有效等價類,按照這一步驟重復(fù)進(jìn)行,直到所有的有效等價類都被覆蓋為止。4) 設(shè)計新的測試用例,使其僅覆蓋一個尚未被覆蓋的無效等價類,按照這一步驟重復(fù)進(jìn)行,直到所有的無效等價類都被覆蓋為止。等價類表與測試用例的關(guān)系等價類表與測試用例的關(guān)系如表3-2所示。表3-2等價類表與測試用例的關(guān)系表例子有一個報表系統(tǒng),要求用戶輸入需要處理的報表胡日期,假定日期范圍為2000年1月到2020年12月。如果用戶輸入的日期不在這個范圍內(nèi),則顯示錯誤碼信息,并且此系統(tǒng)規(guī)定日期由年月六位數(shù)字組成,前四位數(shù)代表年,后二位數(shù)代表月。1) 請列出等價類表(包括有效等價類和無效等價類)2) 根據(jù)1)中的等價類表,設(shè)計出能覆蓋所有等價類的測試用例。要求:包括輸入數(shù)據(jù)和預(yù)期輸出,并指出各個測試用例所能付給的等價類編號。答:有效等價類 :<age<39 2.出生日期在1960年7月到1979年6月無效等價類: 3、age<20或age>394。出生日期早于1960年7月或出生日期晚于1979年6月等價類覆蓋接收等價類覆蓋接收拒絕拒絕1、 20<age<39,出生日期在1960年7月到1979年6月2、 20<age<39,出生日期早于1960年7月3、 20<age<39,出生日期晚于1979年6月基本方法就是這樣了,沒寫太全。在你設(shè)計等價類的時候你可以把條件再細(xì)分一下,這樣用例的覆蓋率會加大的。邊界值分析法邊界值分析法就是對輸入或輸出的邊界值進(jìn)行測試的一種黑盒測試方法。通常邊界值分析法是作為對劃分法的補(bǔ)充,這種情況下,其測試用例來自等價類的邊界。與等價劃分的區(qū)別1) 邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。2) 邊界值分析不僅考慮輸入條件,還要考慮輸出空間產(chǎn)生的測試情況。邊界值分析方法的考慮:長期的測試工作經(jīng)驗告訴我們,大量的錯誤是發(fā)生在輸入或輸出范圍的邊界上,而不是發(fā)生在輸入輸出范圍的內(nèi)部。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。使用邊界值分析方法設(shè)計測試用例,首先應(yīng)確定邊界情況。通常輸入和輸出的邊界,就是應(yīng)著重測試的邊界情況。應(yīng)當(dāng)選取正好等于,剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取中的典型值或任意值作為測試數(shù)據(jù)1)對16-bit的整數(shù)而言32767和-32768是邊界2) 屏幕上光標(biāo)在最左上、最右下位置3) 報表的第一行和最后一行4) 數(shù)組元素的第一個和最后一個5) 循環(huán)的第0次、第1次和倒數(shù)第2次、最后一次邊界值分析1) 邊界值分析使用與等價類劃分法相同的劃分,只是邊界值分析假定錯誤更多地存在于劃分的邊界上,因此在等價類的邊界上以及兩側(cè)的情況設(shè)計測試用例。例:測試計算平方根的函數(shù)—輸入:實數(shù)—輸出:實數(shù)—規(guī)格說明:當(dāng)輸入一個0或比0大的數(shù)的時候,返回其正平方根;當(dāng)輸入一個小于0的數(shù)時,顯示錯誤信息〃平方根非法-輸入值小于0"并返回0;庫函數(shù)Print-Line可以用來輸出錯誤信息。2) 等價類劃分:可以考慮作出如下劃分:2、 輸入(i)<0和(ii)>=0b、輸出(a)>=0和(b)ErrorII.測試用例有兩個:2、 輸入4,輸出2。對應(yīng)于(ii)和(a)。^輸入-10,輸出0和錯誤提示。對應(yīng)于(i)和(b)。3) 邊界值分析:劃分(ii)的邊界為0和最大正實數(shù);劃分(i)的邊界為最小負(fù)實數(shù)和0。由此得到以下測試用例:3、 輸入{最小負(fù)實數(shù)}^輸入{大于最小負(fù)實數(shù),且趨近于最小值}。、輸入0*輸入{小于最大正實數(shù),且趨近于最大值}£、輸入{最大正實數(shù)}4) 通常情況下,軟件測試所包含的邊界檢驗有幾種類型:數(shù)字、字符、位置、重量、大小、速度、方位、尺寸、空間等。5) 相應(yīng)地,以上類型的邊界值應(yīng)該在:最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最長、空/滿等情況下。邊界值分析的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值和最大值處取輸入變量值,記為:min、min+、nom、max-、max考慮到健壯性測試,還可以加一個略大于最大值max+,以及一個略小于最小值min-的值。6) 利用邊界值作為測試數(shù)據(jù)例子在軟件測試中,假定X為整數(shù),10WXW100,用邊界值分析法,那么X在測試
中應(yīng)該?。ǎ┻吔缰怠.X=9,X=10,X=100,X=101中應(yīng)該?。ǎ┻吔缰怠.X=9,X=10,X=100,X=101C.X=9,X=11,X=99,X=101B.X=10,X=100D.X=9,X=10,X=50,X=100怎么是A??9不是小于10嗎1010不是大于100嗎??答案選擇A邊界值的選擇:首先確定邊界情況。通常輸入或輸出等價類的邊界就是應(yīng)該著重測試的邊界情況。選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價類中的典型值或任意值。所以為10、100、9、101邊界是指相對于輸入等價類和輸出等價類而言,稍高于其邊界值及稍低于其邊界值的一些特定情況?;谶吔绲姆椒ㄊ歉鶕?jù)定義域來實現(xiàn)的,最終演變成邊界值分析、健壯性測試、最壞情況測試和健壯最壞情況測試四種技術(shù)。邊界值分析也是一種黑盒測試方法,是對等價類分析方法的一種補(bǔ)充由長期的測試工作經(jīng)驗得知,大量的錯誤是發(fā)生在輸入或輸出的邊界上。因此針對各種邊界情況設(shè)計測試用例,可以查出更多的錯誤。邊界值分析關(guān)注的是輸入空間邊界,用以測試用例,基本思想是在最小值(min)、略高于最小值(min+)、正常值(nom)、略低于最大值(max-)和最大值(max)等處取值。邊界值分析手段主要有兩種方式:通過變量數(shù)量和通過值域的種類進(jìn)行。如一個n變量函數(shù)f(x1,x2,……xn)按以上方式每次確定一個測試對象(基于“單缺陷假設(shè)”理論),會產(chǎn)生4n+1個測試用例。健壯性測試是擴(kuò)展邊界值分析的測試,即增加一個略大于最大值(max+)和略小于最小值(min-)的取值,則用例數(shù)將變?yōu)?n+1。當(dāng)邊界值變量不是獨立變量時,則以上測試用例就顯的不充分。對于邏輯變量而言這種用例也沒有什么用處。邊界值法示意圖最壞情況測試拒絕“單缺陷假設(shè)”理論的情況下,對所有變量的邊界值集合進(jìn)行5元素計算,用以生成測試用例,對于n變量的最壞測試基于邊界值分析會產(chǎn)生5n個測試用例,基于健壯性分析則產(chǎn)生7n個測試用例。相比而言最壞情況測試代價較高,因此其最佳運(yùn)用是物理變量具有大量交互作用,或者函數(shù)失效的代價極高的情況下?!霸谧钚≈?、和最大值處”是指的一般邊界值分析?!奥孕∮谧钚≈?、最小值、略高于最小值、正常值、略低于最大值、最大值、略大于最大值”其實是健壯性邊界值分析,也就是考慮了非法的意外值??煽啃岳碚摗皢稳毕菁僭O(shè)”:失效極少是由兩個(或多個)缺陷的同時發(fā)生引起的。一、 如果輸入條件規(guī)定了值的范圍,則應(yīng)該取剛達(dá)到這個范圍的邊界值,以及剛剛超過這個范圍邊界的值作為測試輸入數(shù)據(jù);邊界值法二、 如果輸入條件規(guī)定了值的個數(shù),則用最大個數(shù)、最小個數(shù)、比最大個數(shù)多1格、比最小個數(shù)少1個的數(shù)做為測試數(shù)據(jù);三、 根據(jù)規(guī)格說明的每一個輸出條件,使用規(guī)則一;四、 根據(jù)規(guī)格說明的每一個輸出條件,使用規(guī)則二;五、 如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合(如有序表、順序文件等),則應(yīng)選取集合的第一個和最后一個元素作為測試用例;六、 如果程序用了一個內(nèi)部結(jié)構(gòu),應(yīng)該選取這個內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界值作為測試用例;七、 分析規(guī)格說明,找出其他可能的。找零錢最佳組合假設(shè)商店貨品價格(R)皆不大於100元(且為整數(shù)),若顧客付款在100元內(nèi)(P),求找給顧客之最少貨幣個(張)數(shù)?(貨幣面值50元(N50),10元(N10),5元(N5),1元(N1)四種)一、分析輸入的情形。R>1000<R<=100
R<=0邊界值法P>100R<=P<=100P<R二、分析輸出情形。N50=1N50=05>N10>=1N10=0N5=1N5=05>N1>=1N1=0分貨00、元>三5P析規(guī)格中每一決策點之情形,以RR1,RR2,RR3表示計算要找50,10,幣數(shù)時之剩余金額。分貨00、元>三5PP<RRR1>=50RR2>=10RR3>=5四、由上述之輸入/輸出條件組合出可能的情形。R>100R<=00<R<=100,P>1000<R<=100,P<R0<R<=100,R<=P<=100,RR=500<R<=100,R<=P<=100,RR=490<R<=100,R<=P<=100,RR=100<R<=100,R<=P<=100,RR=90<R<=100,R<=P<=100,RR=50<R<=100,R<=P<=100,RR=40<R<=100,R<=P<=100,RR=10<R<=100,R<=P<=100,RR=0五、為滿足以上之各種情形,測試資料設(shè)計如下:貨品價格=101貨品價格=0貨品價格=-1貨品價格=100,付款金額=101貨品價格=100,付款金額=99貨品價格=50,付款金額=100貨品價格=51,付款金額=100貨品價格=90,付款金額=100貨品價格=91,付款金額=100貨品價格=95,付款金額=100貨品價格=96,付款金額=100貨品價格=99,付款金額=100貨品價格=100,付款金額=100空間文章日常的測試工作中都在有形無形的應(yīng)用各種測試方法進(jìn)行測試,只是沒有形成完整的體系概念。這幾天將測試用例設(shè)計方法進(jìn)行匯總,將測試思想運(yùn)用于實際工作中,從而更好的指導(dǎo)測試工作。首先匯總?cè)粘W畛S玫娜N方法:等價類劃分、邊界值分析法、錯誤推斷法。等價類劃分在軟件測試中,窮舉法雖然是最安全最保險的一種方法但成本代價高,一般是不可取的。我們可以通過等價類劃分方法花費(fèi)最小的代價來完成最高效的測試。等價類劃分是把程序輸入域劃分成若干子集,然后從子集中選取少數(shù)具有代表性的數(shù)據(jù)進(jìn)行測試。在子集集合中,各個輸入數(shù)據(jù)對于揭露程序中的錯誤是等價的。等價類分為有效等價類和無效等價類。有效等價類對于程序規(guī)格來說合理的、有意義的輸入數(shù)據(jù)
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度星巴克咖啡店員工心理健康管理與支持合同3篇
- 二零二五版公證書離婚協(xié)議書示范文本與法律咨詢熱線3篇
- 2025年度毛紗買賣合同棉紗環(huán)保認(rèn)證銷售合同4篇
- 2025年度網(wǎng)絡(luò)安全服務(wù)履約保證金協(xié)議書模板4篇
- 2025年物流車輛掛靠業(yè)務(wù)委托管理合同3篇
- 2025年度綠化工程生態(tài)保護(hù)補(bǔ)償基金管理合同4篇
- 淘寶店鋪客服專員2025年度勞動合同3篇
- 二零二五年新型肥料生產(chǎn)與推廣合作協(xié)議3篇
- 2025年度二零二五年度金融行業(yè)臨時工合規(guī)操作合同4篇
- 二零二五版孫莉與吳剛離婚協(xié)議書(共同財產(chǎn)分割)3篇
- 電工(中級工)理論知識練習(xí)題(附參考答案)
- 工業(yè)設(shè)計概論試題
- 2024-2030年中國商務(wù)服務(wù)行業(yè)市場現(xiàn)狀調(diào)查及投資前景研判報告
- 起重機(jī)的維護(hù)保養(yǎng)要求與月度、年度檢查記錄表
- 消防設(shè)施維護(hù)保養(yǎng)記錄表
- 城區(qū)生活垃圾填埋場封場項目 投標(biāo)方案(技術(shù)方案)
- 垃圾分類巡檢督導(dǎo)方案
- 大一護(hù)理生涯發(fā)展展示
- 五年級上冊數(shù)學(xué)應(yīng)用題100題及答案
- 新生兒急救與復(fù)蘇培訓(xùn)
- 外貿(mào)跟單員工作總結(jié)PPT
評論
0/150
提交評論