test case 測(cè)試用例_第1頁
test case 測(cè)試用例_第2頁
test case 測(cè)試用例_第3頁
test case 測(cè)試用例_第4頁
test case 測(cè)試用例_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、測(cè)試用例測(cè)試用例(TestCase)是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,以便測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。測(cè)試用例(TestCase)目前沒有經(jīng)典的定義。比較通常的說法是:指對(duì)一項(xiàng)特定的軟件產(chǎn)品進(jìn)行測(cè)試任務(wù)的描述,體現(xiàn)測(cè)試方案、方法、技術(shù)和策略。內(nèi)容包括測(cè)試目標(biāo)、測(cè)試坯境、輸入數(shù)據(jù)、測(cè)試步驟、預(yù)期結(jié)果、測(cè)試腳本等,并形成文檔。測(cè)試用例(TestCase)是將軟件測(cè)試的行為活動(dòng)做一個(gè)科學(xué)化的組織歸納.目的是能夠?qū)④浖y(cè)試的行為轉(zhuǎn)化成可管理的模式;同時(shí)測(cè)試用例也是將測(cè)試具體量化的方法之一不同類別的軟件,測(cè)試用例是不同的。不同于諸如系統(tǒng)、工具、控制、游戲軟件,管

2、理軟件的用戶需求更加不統(tǒng)一,變化更大、更快。筆者主要從事企業(yè)管理軟件的測(cè)試。因此我們的做法是把測(cè)試數(shù)據(jù)和測(cè)試腳本從測(cè)試用例中劃分出來。測(cè)試用例更趨于是針對(duì)軟件產(chǎn)品的功能、業(yè)務(wù)規(guī)則和業(yè)務(wù)處理所設(shè)計(jì)的測(cè)試方案。對(duì)軟件的每個(gè)特定功能或運(yùn)行操作路徑的測(cè)試構(gòu)成了一個(gè)個(gè)測(cè)試用例。隨著中國軟件業(yè)的日益壯大和逐步走向成熟,軟件測(cè)試也在不斷發(fā)展。從最初的由軟件編程人員兼職測(cè)試到軟件公司組建獨(dú)立專職測(cè)試部門。測(cè)試工作也從簡單測(cè)試演變?yōu)榘ǎ壕幹茰y(cè)試計(jì)劃、編寫測(cè)試用例、準(zhǔn)備測(cè)試數(shù)據(jù)、編寫測(cè)試腳本、實(shí)施測(cè)試、測(cè)試評(píng)估等多項(xiàng)內(nèi)容的正規(guī)測(cè)試。測(cè)試方式則由單純手工測(cè)試發(fā)展為手工、自動(dòng)兼之,并有向第三方專業(yè)測(cè)試公司發(fā)展的趨勢(shì)

3、。要使最終用戶對(duì)軟件感到滿意,最有力的舉措就是對(duì)最終用戶的期望加以明確闡述,以便對(duì)這些期望進(jìn)行核實(shí)并確認(rèn)其有效性。測(cè)試用例反映了要核實(shí)的需求。然而核實(shí)這些需求可能通過不同的方式并由不同的測(cè)試員來實(shí)施。例如,執(zhí)行軟件以便驗(yàn)證它的功能和性能,這項(xiàng)操作可能由某個(gè)測(cè)試員采用自動(dòng)測(cè)試技術(shù)來實(shí)現(xiàn);計(jì)算機(jī)系統(tǒng)的關(guān)機(jī)步驟可通過手工測(cè)試和觀察來完成;不過,市場(chǎng)占有率和銷售數(shù)據(jù)(以及產(chǎn)品需求),只能通過評(píng)測(cè)產(chǎn)品和競(jìng)爭銷售數(shù)據(jù)來完成。既然可能無法(或不必負(fù)責(zé))核實(shí)所有的需求,那么是否能為測(cè)試挑選最適合或最關(guān)鍵的需求則關(guān)系到項(xiàng)目的成敗。選中要核實(shí)的需求將是對(duì)成本、風(fēng)險(xiǎn)和對(duì)該需求進(jìn)行核實(shí)的必要性這三者權(quán)衡考慮的結(jié)果。確

4、定測(cè)試用例之所以很重要,原因有以下幾方面。測(cè)試用例構(gòu)成了設(shè)計(jì)和制定測(cè)試過程的基礎(chǔ)。測(cè)試的“深度”與測(cè)試用例的數(shù)量成比例。由于每個(gè)測(cè)試用例反映不同的場(chǎng)景、條件或經(jīng)由產(chǎn)品的事件流,因而,隨著測(cè)試用例數(shù)量的增加,您對(duì)產(chǎn)品質(zhì)量和測(cè)試流程也就越有信心。判斷測(cè)試是否完全的一個(gè)主要評(píng)測(cè)方法是基于需求的覆蓋,而這又是以確定、實(shí)施和/或執(zhí)行的測(cè)試用例的數(shù)量為依據(jù)的。類似下面這樣的說明:“95%的關(guān)鍵測(cè)試用例已得以執(zhí)行和驗(yàn)證”,遠(yuǎn)比“我們已完成95%的測(cè)試”更有意義。測(cè)試工作量與測(cè)試用例的數(shù)量成比例。根據(jù)全面且細(xì)化的測(cè)試用例,可以更準(zhǔn)確地估計(jì)測(cè)試周期各連續(xù)階段的時(shí)間安排。測(cè)試設(shè)計(jì)和開發(fā)的類型以及所需的資源主要都受

5、控于測(cè)試用例。測(cè)試用例通常根據(jù)它們所關(guān)聯(lián)關(guān)系的測(cè)試類型或測(cè)試需求來分類,而且將隨類型和需求進(jìn)行相應(yīng)地改變。最佳方案是為每個(gè)測(cè)試需求至少編制兩個(gè)測(cè)試用例:一個(gè)測(cè)試用例用于證明該需求已經(jīng)滿足,通常稱作正面測(cè)試用例;另一個(gè)測(cè)試用例反映某個(gè)無法接受、反?;蛞馔獾臈l件或數(shù)據(jù),用于論證只有在所需條件下才能夠滿足該需求,這個(gè)測(cè)試用例稱作負(fù)面測(cè)試用例。一、測(cè)試用例是軟件測(cè)試的核心軟件測(cè)試的重要性是毋庸置疑的。但如何以最少的人力、資源投入,在最短的時(shí)間內(nèi)完成測(cè)試,發(fā)現(xiàn)軟件系統(tǒng)的缺陷,保證軟件的優(yōu)良品質(zhì),則是軟件公司探索和追求的目標(biāo)。每個(gè)軟件產(chǎn)品或軟件開發(fā)項(xiàng)目都需要有一套優(yōu)秀的測(cè)試方案和測(cè)試方法。影響軟件測(cè)試的因

6、素很多,例如軟件本身的復(fù)雜程度、開發(fā)人員(包括分析、設(shè)計(jì)、編程和測(cè)試的人員)的素質(zhì)、測(cè)試方法和技術(shù)的運(yùn)用等等。因?yàn)橛行┮蛩厥强陀^存在的,無法避免。有些因素則是波動(dòng)的、不穩(wěn)定的,例如開發(fā)隊(duì)伍是流動(dòng)的,有經(jīng)驗(yàn)的走了,新人不斷補(bǔ)充進(jìn)來;一個(gè)具體的人工作也受情緒等影響,等等。如何保障軟件測(cè)試質(zhì)量的穩(wěn)定?有了測(cè)試用例,無論是誰來測(cè)試,參照測(cè)試用例實(shí)施,都能保障測(cè)試的質(zhì)量??梢园讶藶橐蛩氐挠绊憸p少到最小。即便最初的測(cè)試用例考慮不周全,隨著測(cè)試的進(jìn)行和軟件版本更新,也將日趨完善。因此測(cè)試用例的設(shè)計(jì)和編制是軟件測(cè)試活動(dòng)中最重要的。測(cè)試用例是測(cè)試工作的指導(dǎo),是軟件測(cè)試的必須遵守的準(zhǔn)則。更是軟件測(cè)試質(zhì)量穩(wěn)定的根本

7、保障。二、編制測(cè)試用例著重介紹一些編制測(cè)試用例的具體做法。1、測(cè)試用例文檔編寫測(cè)試用例文檔應(yīng)有文檔模板,須符合內(nèi)部的規(guī)范要求。測(cè)試用例文檔將受制于測(cè)試用例管理軟件的約束。軟件產(chǎn)品或軟件開發(fā)項(xiàng)目的測(cè)試用例一般以該產(chǎn)品的軟件模塊或子系統(tǒng)為單位,形成一個(gè)測(cè)試用例文檔,但并不是絕對(duì)的。測(cè)試用例文檔由簡介和測(cè)試用例兩部分組成。簡介部分編制了測(cè)試目的、測(cè)試范圍、定義術(shù)語、參考文檔、概述等。測(cè)試用例部分逐一列示各測(cè)試用例。每個(gè)具體測(cè)試用例都將包括下列詳細(xì)信息:用例編號(hào)、用例名稱、測(cè)試等級(jí)、入口準(zhǔn)則、驗(yàn)證步驟、期望結(jié)果(含判斷標(biāo)準(zhǔn))、出口準(zhǔn)則、注釋等。以上內(nèi)容涵蓋了測(cè)試用例的基本元素:測(cè)試索引,測(cè)試環(huán)境,測(cè)試

8、輸入,測(cè)試操作,預(yù)期結(jié)果,評(píng)價(jià)標(biāo)準(zhǔn)。2、測(cè)試用例的設(shè)置我們?cè)缙诘臏y(cè)試用例是按功能設(shè)置用例。后來引進(jìn)了路徑分析法,按路徑設(shè)置用例。目前演變?yōu)榘垂δ堋⒙窂交旌夏J皆O(shè)置用例。按功能測(cè)試是最簡捷的,按用例規(guī)約遍歷測(cè)試每一功能。對(duì)于復(fù)雜操作的程序模塊,其各功能的實(shí)施是相互影響、緊密相關(guān)、環(huán)環(huán)相扣的,可以演變出數(shù)量繁多的變化。沒有嚴(yán)密的邏輯分析,產(chǎn)生遺漏是在所難免。路徑分析是一個(gè)很好的方法,其最大的優(yōu)點(diǎn)是在于可以避免漏測(cè)試。但路徑分析法也有局限性。在一個(gè)非常簡單字典維護(hù)模塊就存在十余條路徑。一個(gè)復(fù)雜的模塊會(huì)有幾十到上百條路徑是不足為奇的。筆者以為這是路徑分析比較合適的使用規(guī)模。若一個(gè)子系統(tǒng)有十余個(gè)或更多的

9、模塊,這些模塊相互有關(guān)聯(lián)。再采用路徑分析法,其路徑數(shù)量成幾何級(jí)增長,達(dá)5位數(shù)或更多,就無法使用了。那么子系統(tǒng)模塊間的測(cè)試路徑或測(cè)試用例還是要靠傳統(tǒng)方法來解決。這是按功能、路徑混合模式設(shè)置用例的由來。3、設(shè)計(jì)測(cè)試用例測(cè)試用例可以分為基本事件、備選事件和異常事件。設(shè)計(jì)基本事件的用例,應(yīng)該參照用例規(guī)約(或設(shè)計(jì)規(guī)格說明書),根據(jù)關(guān)聯(lián)的功能、操作按路徑分析法設(shè)計(jì)測(cè)試用例。而對(duì)孤立的功能則直接按功能設(shè)計(jì)測(cè)試用例?;臼录臏y(cè)試用例應(yīng)包含所有需要實(shí)現(xiàn)的需求功能,覆蓋率達(dá)100%。設(shè)計(jì)備選事件和異常事件的用例,則要復(fù)雜和困難得多。例如,字典的代碼是唯一的,不允許重復(fù)。測(cè)試需要驗(yàn)證:字典新增程序中已存在有關(guān)字典

10、代碼的約束,若出現(xiàn)代碼重復(fù)必須報(bào)錯(cuò),并且報(bào)錯(cuò)文字正確。往往在設(shè)計(jì)編碼階段形成的文檔對(duì)備選事件和異常事件分析描述不夠詳盡。而測(cè)試本身則要求驗(yàn)證全部非基本事件,并同時(shí)盡量發(fā)現(xiàn)其中的軟件缺陷??梢圆捎密浖y(cè)試常用的基本方法:等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測(cè)法因果圖法、邏輯覆蓋法等設(shè)計(jì)測(cè)試用例。視軟件的不同性質(zhì)采用不同的方法。如何靈活運(yùn)用各種基本方法來設(shè)計(jì)完整的測(cè)試用例,并最終實(shí)現(xiàn)暴露隱藏的缺陷,全憑測(cè)試設(shè)計(jì)人員的豐富經(jīng)驗(yàn)和精心設(shè)計(jì)。三、測(cè)試用例在軟件測(cè)試中的作用1、指導(dǎo)測(cè)試的實(shí)施測(cè)試用例主要適用于集成測(cè)試、系統(tǒng)測(cè)試和回歸測(cè)試。在實(shí)施測(cè)試時(shí)測(cè)試用例作為測(cè)試的標(biāo)準(zhǔn),測(cè)試人員一定要按照測(cè)試用例嚴(yán)格按用

11、例項(xiàng)目和測(cè)試步驟逐一實(shí)施測(cè)試。并對(duì)測(cè)試情況記錄在測(cè)試用例管理軟件中,以便自動(dòng)生成測(cè)試結(jié)果文檔。根據(jù)測(cè)試用例的測(cè)試等級(jí),集成測(cè)試應(yīng)測(cè)試那些用例,系統(tǒng)測(cè)試和回歸測(cè)試又該測(cè)試那些用例,在設(shè)計(jì)測(cè)試用例時(shí)都已作明確規(guī)定,實(shí)施測(cè)試時(shí)測(cè)試人員不能隨意作變動(dòng)。2、規(guī)劃測(cè)試數(shù)據(jù)的準(zhǔn)備在我們的實(shí)踐中測(cè)試數(shù)據(jù)是與測(cè)試用例分離的。按照測(cè)試用例配套準(zhǔn)備一組或若干組測(cè)試原始數(shù)據(jù),以及標(biāo)準(zhǔn)測(cè)試結(jié)果。尤其象測(cè)試報(bào)表之類數(shù)據(jù)集的正確性,按照測(cè)試用例規(guī)劃準(zhǔn)備測(cè)試數(shù)據(jù)是十分必須的。除正常數(shù)據(jù)之外,還必須根據(jù)測(cè)試用例設(shè)計(jì)大量邊緣數(shù)據(jù)和錯(cuò)誤數(shù)據(jù)。3、編寫測(cè)試腳本的設(shè)計(jì)規(guī)格說明書”為提高測(cè)試效率,軟件測(cè)試已大力發(fā)展自動(dòng)測(cè)試。自動(dòng)測(cè)試的中

12、心任務(wù)是編寫測(cè)試腳本。如果說軟件工程中軟件編程必須有設(shè)計(jì)規(guī)格說明書,那么測(cè)試腳本的設(shè)計(jì)規(guī)格說明書就是測(cè)試用例。4、評(píng)估測(cè)試結(jié)果的度量基準(zhǔn)完成測(cè)試實(shí)施后需要對(duì)測(cè)試結(jié)果進(jìn)行評(píng)估,并且編制測(cè)試報(bào)告。判斷軟件測(cè)試是否完成、衡量測(cè)試質(zhì)量需要一些量化的結(jié)果。例:測(cè)試覆蓋率是多少、測(cè)試合格率是多少、重要測(cè)試合格率是多少,等等。以前統(tǒng)計(jì)基準(zhǔn)是軟件模塊或功能點(diǎn),顯得過于粗糙。采用測(cè)試用例作度量基準(zhǔn)更加準(zhǔn)確、有效。5、分析缺陷的標(biāo)準(zhǔn)通過收集缺陷,對(duì)比測(cè)試用例和缺陷數(shù)據(jù)庫,分析確證是漏測(cè)還是缺陷復(fù)現(xiàn)。漏測(cè)反映了測(cè)試用例的不完善,應(yīng)立即補(bǔ)充相應(yīng)測(cè)試用例,最終達(dá)到逐步完善軟件質(zhì)量。而已有相應(yīng)測(cè)試用例,則反映實(shí)施測(cè)試或變

13、更處理存在問題。四、相關(guān)問題1、測(cè)試用例的評(píng)審測(cè)試用例是軟件測(cè)試的準(zhǔn)則,但它并不是一經(jīng)編制完成就成為準(zhǔn)則。測(cè)試用例在設(shè)計(jì)編制過程中要組織同級(jí)互查。完成編制后應(yīng)組織專家評(píng)審,需獲得通過才可以使用。評(píng)審委員會(huì)可由項(xiàng)目負(fù)責(zé)人、測(cè)試、編程、分析設(shè)計(jì)等有關(guān)人員組成,也可邀請(qǐng)客戶代表參加。2、測(cè)試用例的修改更新測(cè)試用例在形成文檔后也還需要不斷完善。主要來自三方面的緣故:第一、在測(cè)試過程中發(fā)現(xiàn)設(shè)計(jì)測(cè)試用例時(shí)考慮不周,需要完善;第二、在軟件交付使用后反饋的軟件缺陷,而缺陷又是因測(cè)試用例存在漏洞造成;第三、軟件自身的新增功能以及軟件版本的更新,測(cè)試用例也必須配套修改更新。一般小的修改完善可在原測(cè)試用例文檔上修改

14、,但文檔要有更改記錄。軟件的版本升級(jí)更新,測(cè)試用例一般也應(yīng)隨之編制升級(jí)更新版本。3、測(cè)試用例的管理軟件運(yùn)用測(cè)試用例還需配備測(cè)試用例管理軟件。它的主要功能有三個(gè):第一、能將測(cè)試用例文檔的關(guān)鍵內(nèi)容,如編號(hào)、名稱等等自動(dòng)導(dǎo)入管理數(shù)據(jù)庫,形成與測(cè)試用例文檔完全對(duì)應(yīng)的記錄;第二、可供測(cè)試實(shí)施時(shí)及時(shí)輸入測(cè)試情況;第三、最終實(shí)現(xiàn)自動(dòng)生成測(cè)試結(jié)果文檔,包含各測(cè)試度量值,測(cè)試覆蓋表和測(cè)試通過或不通過的測(cè)試用例清單列表。有了管理軟件,測(cè)試人員無論是編寫每日的測(cè)試工作日志、還是出軟件測(cè)試報(bào)告,都會(huì)變得輕而易舉。五、測(cè)試用例的設(shè)計(jì)(一)白盒技術(shù)白盒測(cè)試是結(jié)構(gòu)測(cè)試,所以被測(cè)對(duì)象基本上是源程序,以程序的內(nèi)部邏輯為基礎(chǔ)設(shè)計(jì)

15、測(cè)試用例。1、邏輯覆蓋程序內(nèi)部的邏輯覆蓋程度,當(dāng)程序中有循環(huán)時(shí),覆蓋每條路徑是不可能的,要設(shè)計(jì)使覆蓋程度較高的或覆蓋最有代表性的路徑的測(cè)試用例。下面根據(jù)圖7-1所示的程序,分別討論幾種常用的覆蓋技術(shù)。語句覆蓋為了個(gè)提高發(fā)現(xiàn)錯(cuò)誤的可能性,在測(cè)試時(shí)應(yīng)該執(zhí)行到程序中的每一個(gè)語句。語句覆蓋是指設(shè)計(jì)足夠的測(cè)試用例,使被測(cè)試程序中每個(gè)語句至少執(zhí)行一次。如圖7-1是一個(gè)被測(cè)試程序流程圖:判定覆蓋判定覆蓋指設(shè)計(jì)足夠的測(cè)試用例,使得被測(cè)程序中每個(gè)判定表達(dá)式至少獲得一次“真”值和“假”值,從而使程序的每一個(gè)分支至少都通過一次,因此判定覆蓋也稱分支覆蓋。條件覆蓋條件覆蓋是指設(shè)計(jì)足夠的測(cè)試用例,使得判定表達(dá)式中每個(gè)條

16、件的各種可能的值至少出現(xiàn)一次。判定/條件測(cè)試。該覆蓋標(biāo)準(zhǔn)指設(shè)計(jì)足夠的測(cè)試用例,使得判定表達(dá)式的每個(gè)條件的所有可能取值至少出現(xiàn)一次,并使每個(gè)判定表達(dá)式所有可能的結(jié)果也至少出現(xiàn)一次。條件組合覆蓋條件組合覆蓋是比較強(qiáng)的覆蓋標(biāo)準(zhǔn),它是指設(shè)計(jì)足夠的測(cè)試用例,使得每個(gè)判定表達(dá)式中條件的各種可能的值的組合都至少出現(xiàn)一次。路徑覆蓋。路徑覆蓋是指設(shè)計(jì)足夠的測(cè)試用例,覆蓋被測(cè)程序中所有可能的路徑。在實(shí)際的邏輯覆蓋測(cè)試中,一般以條件組合覆蓋為主設(shè)計(jì)測(cè)試用例,然后再補(bǔ)充部分用例,以達(dá)到路徑覆蓋測(cè)試標(biāo)準(zhǔn)。循環(huán)覆蓋基本路徑測(cè)試(二)黑盒技術(shù)1.等價(jià)類劃分(1)劃分等價(jià)類。如果某個(gè)輸入條件規(guī)定了取值范圍或值的個(gè)數(shù)。則可確定

17、一個(gè)合理的等價(jià)類(輸入值或數(shù)在此范圍內(nèi))和兩個(gè)不合理等價(jià)類(輸入值或個(gè)數(shù)小于這個(gè)范圍的最小值或大于這個(gè)范圍的最大值)。如果規(guī)定了輸入數(shù)據(jù)的一組值,而且程序?qū)Σ煌妮斎胫底霾煌奶幚?,則每個(gè)允許輸入值是一個(gè)合理等價(jià)類,此處還有一個(gè)不合理等價(jià)類(任何一個(gè)不允許的輸入值)。如果規(guī)定了輸入數(shù)據(jù)必須遵循的規(guī)則,可確定一個(gè)合理等價(jià)類(符合規(guī)則)和若干個(gè)不合理等價(jià)類(從各種不同角度違反規(guī)則)。如果已劃分的等價(jià)類中各元素在程序中的處理方式不同,則應(yīng)將此等價(jià)類進(jìn)一步劃分為更小的等價(jià)類。(2)確定測(cè)試用例。為每一個(gè)等價(jià)類編號(hào)。設(shè)計(jì)一個(gè)測(cè)試用例,使其盡可能多地覆蓋尚未被覆蓋過的合理等價(jià)類。重復(fù)這步,直到所有合理等價(jià)

18、類被測(cè)試用例覆蓋。設(shè)計(jì)一個(gè)測(cè)試用例,使其只覆蓋一個(gè)不合理等價(jià)類。2.邊界值分析使用邊界值分析方法設(shè)計(jì)測(cè)試用例時(shí)一般與等價(jià)類劃分結(jié)合起來。但它不是從一個(gè)等價(jià)類中任選一個(gè)例子作為代表,而是將測(cè)試邊界情況作為重點(diǎn)目標(biāo),選取正好等于、剛剛大于或剛剛小于邊界值的測(cè)試數(shù)據(jù)。如果輸入條件規(guī)定了值的范圍,可以選擇正好等于邊界值的數(shù)據(jù)作為合理的測(cè)試用例,同時(shí)還要選擇剛好越過邊界值的數(shù)據(jù)作為不合理的測(cè)試用例。如輸入值的范圍是1,100,可取0,1,100,101等值作為測(cè)試數(shù)據(jù)。如果輸入條件指出了輸入數(shù)據(jù)的個(gè)數(shù),則按最大個(gè)數(shù)、最小個(gè)數(shù)、比最小個(gè)數(shù)少1、比最大個(gè)數(shù)多1等情況分別設(shè)計(jì)測(cè)試用例。如,一個(gè)輸入文件可包括1

19、-255個(gè)記錄,則分別設(shè)計(jì)有1個(gè)記錄、255個(gè)記錄,以及0個(gè)記錄的輸入文件的測(cè)試用例。對(duì)每個(gè)輸出條件分別按照以上原則(1)或(2)確定輸出值的邊界情況。如,一個(gè)學(xué)生成績管理系統(tǒng)規(guī)定,只能查詢95-98級(jí)大學(xué)生的各科成績,可以設(shè)計(jì)測(cè)試用例,使得查詢范圍內(nèi)的某一屆或四屆學(xué)生的學(xué)生成績,還需設(shè)計(jì)查詢94級(jí)、99級(jí)學(xué)生成績的測(cè)試用例(不合理輸出等價(jià)類)。由于輸出值的邊界不與輸入值的邊界相對(duì)應(yīng),所以要檢查輸出值的邊界不一定可能,要產(chǎn)生超出輸出值之外的結(jié)果也不一定能做到,但必要時(shí)還需試一試。如果程序的規(guī)格說明給出的輸入或輸出域是個(gè)有序集合(如順序文件、線形表、鏈表等),則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元

20、素作為測(cè)試用例。錯(cuò)誤推測(cè)在測(cè)試程序時(shí),人們可能根據(jù)經(jīng)驗(yàn)或直覺推測(cè)程序中可能存在的各種錯(cuò)誤,從而有針對(duì)性地編寫檢查這些錯(cuò)誤的測(cè)試用例,這就是錯(cuò)誤推測(cè)法。因果圖等價(jià)類劃分和邊界值方法分析方法都只是孤立地考慮各個(gè)輸入數(shù)據(jù)的測(cè)試功能,而沒有考慮多個(gè)輸入數(shù)據(jù)的組合引起的錯(cuò)誤。綜合策略每種方法都能設(shè)計(jì)出一組有用例子,用這組例子容易發(fā)現(xiàn)某種類型的錯(cuò)誤,但可能不易發(fā)現(xiàn)另一類型的錯(cuò)誤。因此在實(shí)際測(cè)試中,聯(lián)合使用各種測(cè)試方法,形成綜合策略,通常先用黑盒法設(shè)計(jì)基本的測(cè)試用例,再用白盒法補(bǔ)充一些必要的測(cè)試用例。六、測(cè)試用例設(shè)計(jì)的誤區(qū)(來源:關(guān)河測(cè)試網(wǎng))能發(fā)現(xiàn)到目前為止沒有發(fā)現(xiàn)的缺陷的用例是好的用例;首先要申明,其實(shí)這

21、句話是十分有道理的,但我發(fā)現(xiàn)很多人都曲解了這句話的原意,一心要設(shè)計(jì)出發(fā)現(xiàn)“難于發(fā)現(xiàn)的缺陷”而陷入盲目的片面中去,忘記了測(cè)試的目的所在,這是十分可怕的。我傾向于將測(cè)試用例當(dāng)作一個(gè)集合來認(rèn)識(shí),對(duì)它的評(píng)價(jià)也只能對(duì)測(cè)試用例的集合來進(jìn)行,測(cè)試本身是一種“V&AMpV”的活動(dòng),測(cè)試需要保證以下兩點(diǎn):程序做了它應(yīng)該做的事情程序沒有做它不該做的事情因此,作為測(cè)試實(shí)施依據(jù)的測(cè)試用例,必須要能完整覆蓋測(cè)試需求,而不應(yīng)該針對(duì)單個(gè)的測(cè)試用例去評(píng)判好壞。測(cè)試用例應(yīng)該詳細(xì)記錄所有的操作信息,使一個(gè)沒有接觸過系統(tǒng)的人員也能進(jìn)行測(cè)試;不知道國內(nèi)有沒有公司真正做到這點(diǎn),或者說,不知道有國內(nèi)沒有公司能夠?qū)⒚總€(gè)測(cè)試用例都寫得如此詳

22、細(xì)。在我的測(cè)試經(jīng)歷中,對(duì)測(cè)試用例描述的詳細(xì)和復(fù)雜程度也曾有過很多的彷徨。寫得太簡單吧,除了自己沒人能夠執(zhí)行,寫得太詳細(xì)吧,消耗在測(cè)試用例維護(hù)(別忘了,測(cè)試用例是動(dòng)態(tài)的,一旦測(cè)試環(huán)境、需求、設(shè)計(jì)、實(shí)現(xiàn)發(fā)生了變化,測(cè)試用例都需要相應(yīng)發(fā)生變化)上的時(shí)間實(shí)在是太驚人,在目前國內(nèi)大部分軟件公司的測(cè)試資源都不足的情況下,恐怕很難實(shí)現(xiàn)。但我偏偏就能遇到一些這樣的老總或者是項(xiàng)目負(fù)責(zé)人,甚至是測(cè)試工程師本身,全然不顧實(shí)際的資源情況,一定要寫出“沒有接觸過系統(tǒng)的人員也能進(jìn)行測(cè)試”的用例。在討論這個(gè)問題之前,我們可以先考慮一下測(cè)試的目的。測(cè)試的目的是盡可能發(fā)現(xiàn)程序中存在的缺陷,測(cè)試活動(dòng)本身也可以被看作是一個(gè)Proj

23、ECt,也需要在給定的資源條件下盡可能達(dá)成目標(biāo),根據(jù)我個(gè)人的經(jīng)驗(yàn),大部分的國內(nèi)軟件公司在測(cè)試方面配備的資源都是不足夠的,因此我們必須在測(cè)試計(jì)劃階段明確測(cè)試的目標(biāo),一切圍繞測(cè)試的目標(biāo)進(jìn)行。除了資源上的約束外,測(cè)試用例的詳細(xì)程度也需要根據(jù)需要確定。如果測(cè)試用例的執(zhí)行者、測(cè)試用例設(shè)計(jì)者、測(cè)試活動(dòng)相關(guān)人對(duì)系統(tǒng)了解都很深刻,那測(cè)試用例就沒有必要太詳細(xì)了,文檔的作用本來就在于溝通,只要能達(dá)到溝通的目的就0K。在我擔(dān)任測(cè)試經(jīng)理的項(xiàng)目中,在測(cè)試計(jì)劃階段,一般給予測(cè)試設(shè)計(jì)30%-40%左右的時(shí)間,測(cè)試設(shè)計(jì)工程師能夠根據(jù)項(xiàng)目的需要自行確定用例的詳細(xì)程度,在測(cè)試用例的評(píng)審階段由參與評(píng)審的相關(guān)人對(duì)其把關(guān)。測(cè)試用例設(shè)計(jì)

24、是一勞永逸的事情;這句話擺在這里,我想沒有一個(gè)人會(huì)認(rèn)可,但在實(shí)際情況中,卻經(jīng)常能發(fā)現(xiàn)這種想法的影子。我曾經(jīng)參與過一個(gè)項(xiàng)目,軟件需求和設(shè)計(jì)已經(jīng)變更了多次,但測(cè)試用例卻沒有任何修改。導(dǎo)致的直接結(jié)果是新加入的測(cè)試工程師在執(zhí)行測(cè)試用例時(shí)不知所措,間接的后果是測(cè)試用例成了廢紙一堆,開發(fā)人員在多次被無效的缺陷報(bào)告打擾后,對(duì)測(cè)試人員不屑一顧。這個(gè)例子可能有些極端,但測(cè)試用例與需求和設(shè)計(jì)不同步的情況在實(shí)際開發(fā)過程中確是屢見不鮮的,測(cè)試用例文檔是“活的”文檔,這一點(diǎn)應(yīng)該被測(cè)試工程師牢記。測(cè)試用例不應(yīng)該包含實(shí)際的數(shù)據(jù);測(cè)試用例是“一組輸入、執(zhí)行條件、預(yù)期結(jié)果”、毫無疑問地應(yīng)該包括清晰的輸入數(shù)據(jù)和預(yù)期輸出,沒有測(cè)試

25、數(shù)據(jù)的用例最多只具有指導(dǎo)性的意義,不具有可執(zhí)行性當(dāng)然,測(cè)試用例中包含輸入數(shù)據(jù)會(huì)帶來維護(hù)、與測(cè)試環(huán)境同步之類的問題,關(guān)于這一點(diǎn),EffectiveSoftwareTeST一書中提供了詳細(xì)的測(cè)試用例、測(cè)試數(shù)據(jù)的維護(hù)方法,可以參考。測(cè)試用例中不需要明顯的驗(yàn)證手段;我見過很多測(cè)試工程師編寫的測(cè)試用例中,“預(yù)期輸出”僅描述為程序的可見行為,其實(shí),“預(yù)期結(jié)果”的含義并不只是程序的可見行為。例如,對(duì)一個(gè)訂貨系統(tǒng),輸入訂貨數(shù)據(jù),點(diǎn)擊“確定”按鈕后,系統(tǒng)提示“訂貨成功”,這樣是不是一個(gè)完整的用例呢?是不是系統(tǒng)輸出的“訂貨成功”就應(yīng)該作為我們唯一的驗(yàn)證手段呢?顯然不是。訂貨是否成功還需要查看相應(yīng)的數(shù)據(jù)記錄是否更新

26、,因此,在這樣的一個(gè)用例中,還應(yīng)該包含對(duì)測(cè)試結(jié)果的顯式的驗(yàn)證手段:在數(shù)據(jù)庫中執(zhí)行查詢語句進(jìn)行查詢,看查詢結(jié)果是否與預(yù)期的一致。七、從用例中生成測(cè)試用例用于功能性測(cè)試的測(cè)試用例來源于測(cè)試目標(biāo)的用例。應(yīng)該為每個(gè)用例場(chǎng)景編制測(cè)試用例。用例場(chǎng)景要通過描述流經(jīng)用例的路徑來確定,這個(gè)流經(jīng)過程要從用例開始到結(jié)束遍歷其中所有基本流和備選流。例如,下圖中經(jīng)過用例的每條不同路徑都反映了基本流和備選流,都用箭頭來表示。基本流用直黑線來表示,是經(jīng)過用例的最簡單的路徑。每個(gè)備選流自基本流開始,之后,備選流會(huì)在某個(gè)特定條件下執(zhí)行。備選流可能會(huì)重新加入基本流中(備選流1和3),還可能起源于另一個(gè)備選流(備選流2),或者終止

27、用例而不再重新加入某個(gè)流(備選流2和4)。用例的事件流示例遵循上圖中每個(gè)經(jīng)過用例的可能路徑,可以確定不同的用例場(chǎng)景。從基本流開始,再將基本流和備選流結(jié)合起來,可以確定以下用例場(chǎng)景:場(chǎng)景1基本流場(chǎng)景2基本流備選流1場(chǎng)景3基本流備選流1備選流2場(chǎng)景4基本流備選流3場(chǎng)景5基本流備選流3備選流1場(chǎng)景6基本流備選流3備選流1備選流2場(chǎng)景7基本流備選流4場(chǎng)景8基本流備選流3備選流4注:為方便起見,場(chǎng)景5、6和8只描述了備選流3指示的循環(huán)執(zhí)行一次的情況。生成每個(gè)場(chǎng)景的測(cè)試用例是通過確定某個(gè)特定條件來完成的,這個(gè)特定條件將導(dǎo)致特定用例場(chǎng)景的執(zhí)行。例如,假定上圖描述的用例對(duì)備選流3規(guī)定如下:“如果在上述步驟2輸

28、入提款金額中輸入的美元量超出當(dāng)前帳戶余額,則出現(xiàn)此事件流。系統(tǒng)將顯示一則警告消息,之后重新加入基本流,再次執(zhí)行上述步驟2輸入提款金額,此時(shí)銀行客戶可以輸入新的提款金額?!睋?jù)此,可以開始確定需要用來執(zhí)行備選流3的測(cè)試用例:測(cè)試用例ID場(chǎng)景條件預(yù)期結(jié)果TCx場(chǎng)景4步驟2-提款金額帳戶余額在步驟2處重新加入基本流TCy場(chǎng)景4步驟2-提款金額帳戶余額不執(zhí)行備選流3,執(zhí)行基本流TCz場(chǎng)景4步驟2-提款金額=帳戶余額不執(zhí)行備選流3,執(zhí)行基本流注:由于沒有提供其他信息,以上顯示的測(cè)試用例都非常簡單。測(cè)試用例很少如此簡單。下面是一個(gè)由用例生成測(cè)試用例的更符合實(shí)際情況的示例。示例:一臺(tái)ATM機(jī)器的主角和用例。下

29、表包含了上圖中提款用例的基本流和某些備用流:本用例的開端是ATM處于準(zhǔn)備就緒狀態(tài)。準(zhǔn)備提款-客戶將銀行卡插入ATM機(jī)的讀卡機(jī)。驗(yàn)證銀行卡-ATM機(jī)從銀行卡的磁條中讀取帳戶代碼,并檢查它是否屬于可以接收的銀行卡。輸入PIN-ATM要求客戶輸入PIN碼(4位)驗(yàn)證帳戶代碼和PIN-驗(yàn)證帳戶代碼和PIN以確定該帳戶是否有效以及所輸入的PIN對(duì)該帳戶來說是否正確。對(duì)于此事件流,帳戶是有效的而且PIN對(duì)此帳戶來說正確無誤。ATM選項(xiàng)-ATM顯示在本機(jī)上可用的各種選項(xiàng)。在此事件流中,銀行客戶通常選擇“提款”。輸入金額-要從ATM中提取的金額。對(duì)于此事件流,客戶需選擇預(yù)設(shè)的金額(10美元、20美元、50美元

30、或100美元)。授權(quán)-ATM通過將卡ID、PIN、金額以及帳戶信息作為一筆交易發(fā)送給銀行系統(tǒng)來啟動(dòng)驗(yàn)證過程。對(duì)于此事件流,銀行系統(tǒng)處于聯(lián)機(jī)狀態(tài),而且對(duì)授權(quán)請(qǐng)求給予答復(fù),批準(zhǔn)完成提款過程,并且據(jù)此更新帳戶余額。出鈔-提供現(xiàn)金。返回銀行卡-銀行卡被返還。收據(jù)-打印收據(jù)并提供給客戶。ATM還相應(yīng)地更新內(nèi)部記錄。用例結(jié)束時(shí)ATM又回到準(zhǔn)備就緒狀態(tài)。備選流1-銀行卡無效在基本流步驟2中-驗(yàn)證銀行卡,如果卡是無效的,則卡被退回,同時(shí)會(huì)通知相關(guān)消息。備選流2-ATM內(nèi)沒有現(xiàn)金在基本流步驟5中-ATM選項(xiàng),如果ATM內(nèi)沒有現(xiàn)金,則“提款”選項(xiàng)將無法使用。備選流3-ATM內(nèi)現(xiàn)金不足在基本流步驟6中-輸入金額,如

31、果ATM機(jī)內(nèi)金額少于請(qǐng)求提取的金額,則將顯示一則適當(dāng)?shù)南?,并且在步驟6-輸入金額處重新加入基本流。備選流4-PIN有誤在基本流步驟4中-驗(yàn)證帳戶和PIN,客戶有三次機(jī)會(huì)輸入PIN。如果PIN輸入有誤,ATM將顯示適當(dāng)?shù)南?;如果還存在輸入機(jī)會(huì),則此事件流在步驟3-輸入PIN處重新加入基本流。如果最后一次嘗試輸入的PIN碼仍然錯(cuò)誤,則該卡將被ATM機(jī)保留,同時(shí)ATM返回到準(zhǔn)備就緒狀態(tài),本用例終止。備選流5-帳戶不存在在基本流步驟4中-驗(yàn)證帳戶和PIN,如果銀行系統(tǒng)返回的代碼表明找不到該帳戶或禁止從該帳戶中提款,則ATM顯示適當(dāng)?shù)南⒉⑶以诓襟E9-返回銀行卡處重新加入基本流。備選流6-帳面金額不

32、足在基本流步驟7-授權(quán)中,銀行系統(tǒng)返回代碼表明帳戶余額少于在基本流步驟6-輸入金額內(nèi)輸入的金額,則ATM顯示適當(dāng)?shù)南⒉⑶以诓襟E6-輸入金額處重新加入基本流。備選流7-達(dá)到每日最大的提款金額在基本流步驟7-授權(quán)中,銀行系統(tǒng)返回的代碼表明包括本提款請(qǐng)求在內(nèi),客戶已經(jīng)或?qū)⒊^在24小時(shí)內(nèi)允許提取的最多金額,則ATM顯示適當(dāng)?shù)南⒉⒃诓襟E6-輸入金額上重新加入基本流。備選流x-記錄錯(cuò)誤如果在基本流步驟10-收據(jù)中,記錄無法更新,則ATM進(jìn)入“安全模式”,在此模式下所有功能都將暫停使用。同時(shí)向銀行系統(tǒng)發(fā)送一條適當(dāng)?shù)木瘓?bào)信息表明ATM已經(jīng)暫停工作。備選流y-退出客戶可隨時(shí)決定終止交易(退出)。交易終止,銀行卡隨之退出。備選流z-“翹起”ATM包含大量的傳感器,用以監(jiān)控各種功能,如電源檢測(cè)器、不同的門和出入口處的測(cè)壓器以及動(dòng)作檢測(cè)器等。在任一時(shí)刻,如果某客戶做出暴力舉動(dòng),便啟用適當(dāng)?shù)拇胧?。編輯本段匯編指令Test屬于邏輯運(yùn)算指令功能:測(cè)試(兩操作數(shù)作與運(yùn)算,僅修改標(biāo)志位,不回送結(jié)果)。用法:Test對(duì)兩個(gè)參數(shù)(目標(biāo),源)執(zhí)行AND邏輯操作,并根據(jù)結(jié)果設(shè)置標(biāo)志寄存器,結(jié)果本身不會(huì)保存。TESTAX,BX與ANDAX

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論