版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
軟件測試項(xiàng)目實(shí)戰(zhàn)(第四版)第2章:測試用例目錄CONTENTS2.1知識儲備010203添加標(biāo)題
添加標(biāo)題2.2登入頁面添加標(biāo)題
添加標(biāo)題2.3TestSuite其他測試添加標(biāo)題
添加標(biāo)題Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.2.1.1黑盒測試第2章測試用例一、什么是測試用例測試用例(TestCase)是按一定的順序執(zhí)行的并與測試目標(biāo)相關(guān)的測試活動的描述,它確定“怎樣”測試。測試用例是有效發(fā)現(xiàn)軟件缺陷的最小測試執(zhí)行單元,是軟件的測試規(guī)格說明書。目前也沒有測試用例這個(gè)詞匯的經(jīng)典定義,常見的說法是:指對一項(xiàng)特定的軟件產(chǎn)品進(jìn)行測試任務(wù)的描述,體現(xiàn)測試方案、方法、技術(shù)和策略,內(nèi)容包括測試目標(biāo)、測試環(huán)境、輸入數(shù)據(jù)、測試步驟、預(yù)期結(jié)果、測試腳本等,并形成文檔。在測試工作中,測試用例的設(shè)計(jì)是非常重要的,是測試執(zhí)行的正確性、有效性的基礎(chǔ)。如何有效地設(shè)計(jì)測試用例一直是測試人員所關(guān)注的問題,設(shè)計(jì)好的測試用例是保證測試工作的最關(guān)鍵的因素之一。如果問測試工程師測試用例如何編寫,就像是問程序員如何編寫代碼得到的答案一樣,每個(gè)人都會給出不同的編寫方法,但實(shí)用的測試用例卻像優(yōu)秀的程序一樣難以編寫。目前在國內(nèi),測試工程師卻時(shí)常要面對“已經(jīng)延期幾倍計(jì)劃時(shí)間的項(xiàng)目”,測試用例如何發(fā)揮更大的作用,是一個(gè)迫切需要解決的問題。事實(shí)上,完全可以把測試用例看成是測試工程師編寫的程序:這個(gè)“程序”是為了輔助測試工作的進(jìn)行而開發(fā)的,目的是為了發(fā)現(xiàn)軟件問題,同時(shí)“順便”證明軟件功能是否符合要求。測試用例主要用在集成測試、系統(tǒng)測試以及回歸測試中。測試人員按照已規(guī)定好的測試用例實(shí)施測試,而不得做隨意的變動。因?yàn)闇y試用例是分測試等級的,集成測試應(yīng)測試哪些用例,系統(tǒng)測試應(yīng)包含哪些用例,以及回歸測試又該實(shí)施什么樣的測試用例,在設(shè)計(jì)測試用例時(shí)都是由專門人員明確規(guī)定并形成文檔的。在實(shí)施測試時(shí)測試用例作為測試的標(biāo)準(zhǔn),測試人員一定要按照測試用例嚴(yán)格按用例項(xiàng)目和測試步驟逐一實(shí)施測試,并且要把測試結(jié)果詳細(xì)記錄下來,以便形成測試結(jié)果文檔,等下一輪測試時(shí)作為參考之用。在本書給出的測試用例中,測試數(shù)據(jù)是給定的,但是有時(shí)候在實(shí)踐當(dāng)中,測試數(shù)據(jù)與測試用例是分離的,根據(jù)測試用例設(shè)計(jì),需要準(zhǔn)備大量原始數(shù)據(jù)及標(biāo)準(zhǔn)測試期望的結(jié)果,這些數(shù)據(jù)包括各種情況下的輸入數(shù)據(jù)尤其是必須設(shè)計(jì)出大量的邊緣數(shù)據(jù)和錯(cuò)誤數(shù)據(jù),這些設(shè)計(jì)用例的方法在后續(xù)內(nèi)容中會有詳細(xì)介紹。第2章測試用例當(dāng)測試實(shí)施完成后,對測試結(jié)果的評估是非常重要的。要判斷軟件測試是否完成,衡量測試質(zhì)量需要一些量化的結(jié)果(測試覆蓋率多少、測試合格率多少、重要測試合格率多少……),這樣把測試用例及實(shí)施結(jié)果作為度量標(biāo)準(zhǔn)使測試更加準(zhǔn)確有效。通過實(shí)施測試用例,將系統(tǒng)缺陷(Bug)盡量收集全面,把測試用例和缺陷數(shù)據(jù)進(jìn)行對比,分析是漏測還是缺陷復(fù)現(xiàn),最終使系統(tǒng)逐步完善軟件質(zhì)量。當(dāng)然,測試用例本身在形成文檔后也是在不斷修改更新與完善,原因有三個(gè):第一,在測試過程中發(fā)現(xiàn)設(shè)計(jì)測試用例時(shí)考慮不周,需要完善;第二,在軟件交付使用后反饋的軟件缺陷,而缺陷又是因測試用例存在漏洞造成的;第三,軟件自身的新增功能以及軟件版本的更新,測試用例也必須配套修改更新。一些小的修改直接在原測試用例文檔里更正就可以了,但是文檔中要有此次更正的記錄。軟件的版本是會升級更新的,測試用例也一樣,隨著軟件的升級而編制新的版本。1.測試用例的形成可以分為簡單的七個(gè)步驟(1)理清模塊需求(2)提出測試需求(3)設(shè)計(jì)測試思路(4)測試用例編寫(5)測試用例評審(6)執(zhí)行用例(7)用例效率計(jì)算2.測試用例編寫模板編寫測試用例文檔應(yīng)有文檔模板,須符合內(nèi)部的規(guī)范要求。測試用例文檔將受制于測試用例管理軟件的約束。統(tǒng)一測試用例編寫的規(guī)范,為測試設(shè)計(jì)人員提供測試用例編寫的指導(dǎo),提高編寫的測試用例的可讀性,可執(zhí)行性、合理性。為測試執(zhí)行人員更好執(zhí)行測試,提高測試效率,最終提高公司整個(gè)產(chǎn)品的質(zhì)量。第2章測試用例軟件產(chǎn)品或軟件開發(fā)項(xiàng)目的測試用例一般以該產(chǎn)品的軟件模塊或子系統(tǒng)為單位,形成一個(gè)測試用例文檔,但并不是絕對的。測試用例文檔由簡介和測試用例兩部分組成。簡介部分編制了測試目的、測試范圍、定義術(shù)語、參考文檔、概述等。測試用例部分逐一列示各測試用例。每個(gè)具體測試用例都將包括下列詳細(xì)信息:用例編號、用例名稱、測試等級、入口準(zhǔn)則、驗(yàn)證步驟、期望結(jié)果(含判斷標(biāo)準(zhǔn))、出口準(zhǔn)則、注釋等。以上內(nèi)容涵蓋了測試用例的基本元素:測試索引,測試環(huán)境,測試輸入,測試操作,預(yù)期結(jié)果,評價(jià)標(biāo)準(zhǔn)。在實(shí)際應(yīng)用中,很多稱之為模板與規(guī)范的東西并不一定嚴(yán)格定義,而應(yīng)該根據(jù)具體情況運(yùn)用適合的模板與規(guī)范,這樣在實(shí)踐中才能靈活運(yùn)用,而不流于形式和教條化。表2-1是測試用例的一種寫法。表2-1測試用例設(shè)計(jì)模板之一測試用例ID測試用例的ID(由案例管理系統(tǒng)自動生成,方便跟蹤管理)測試用例名稱
產(chǎn)品名稱
產(chǎn)品版本
功能模塊名
測試平臺
用例入庫者
用例更新者
用例入庫時(shí)間
用例更新時(shí)間
測試功能點(diǎn)測試的功能檢查點(diǎn)測試目的該測試案例的測試目的測試級別測試級別:主路徑測試、煙霧測試、基本功能測試、詳細(xì)功能測試測試類型測試類型:功能測試、邊界測試、異常測試、性能測試、壓力測試、兼容測試、安全測試、恢復(fù)測試、安裝測試、界面測試、啟動/停止測試、文檔測試、配置測試、可靠性測試、易用性測試、多語言測試預(yù)置條件對測試的特殊條件或配置進(jìn)行說明測試步驟詳細(xì)描述測試過程,案例的操作步驟建議少于15個(gè)預(yù)期結(jié)果預(yù)期的測試結(jié)果第2章測試用例在本書所寫的測試用例設(shè)計(jì)與表2-1所示模板有所不同,當(dāng)然也是在實(shí)際使用過程中對它進(jìn)行了一些刪減與變化。下面再給出幾種測試用例設(shè)計(jì)模板,如表2-2和表2-3所示,讀者可以根據(jù)需要取舍。表2-2測試用例設(shè)計(jì)模板之二用例編號
測試優(yōu)先級
用例摘要
測試類型
用例類型
用例設(shè)計(jì)者
設(shè)計(jì)日期
對應(yīng)需求編號
對應(yīng)UI
第2章測試用例對應(yīng)UC
版本號
對應(yīng)開發(fā)人員
前置條件
測試方法
輸入數(shù)據(jù)
執(zhí)行步驟
(需詳細(xì)寫出執(zhí)行步驟)
預(yù)期輸出
實(shí)際結(jié)果
測試日期
結(jié)論
第2章測試用例表2-3測試用例設(shè)計(jì)模板之三測試用例測試記錄用例編號測試目的/對應(yīng)需求輸入\預(yù)置條件預(yù)期輸出操作過程結(jié)果
功能正確
功能不正確
二、黑盒測試中設(shè)計(jì)測試用例的基本方法白盒測試和黑盒測試是軟件測試中的兩大方法,有時(shí)也將兼具兩者特點(diǎn)的方法叫做灰盒測試。但傳統(tǒng)的軟件測試活動基本上都可以劃到這兩類方法當(dāng)中。黑盒測試注重于測試軟件的功能性需求,也就是說黑盒測試要求軟件工程師列出程序所有功能需求的輸入條件。黑盒測試并不是白盒測試的替代品,而是用于輔助白盒測試發(fā)現(xiàn)其他類型的錯(cuò)誤。黑盒測試主要用于測試的后期,一般由專門的測試人員來做。本課程主要來學(xué)習(xí)黑盒測試,培養(yǎng)專門的測試人員。黑盒測試概括起來主要用來發(fā)現(xiàn)下面這些類型的錯(cuò)誤:
功能錯(cuò)誤或遺漏;
界面錯(cuò)誤;
數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)庫訪問錯(cuò)誤;
性能錯(cuò)誤;
初始化和終止錯(cuò)誤。第2章測試用例測試用例可以分為基本事件、備選事件和異常事件。設(shè)計(jì)基本事件的用例,應(yīng)該參照用例規(guī)約(或設(shè)計(jì)規(guī)格說明書),根據(jù)關(guān)聯(lián)的功能、操作按路徑分析法設(shè)計(jì)測試用例。而對孤立的功能則直接按功能設(shè)計(jì)測試用例。基本事件的測試用例應(yīng)包含所有需要實(shí)現(xiàn)的需求功能,覆蓋率達(dá)100%。設(shè)計(jì)備選事件和異常事件的用例,則要復(fù)雜和困難得多。例如,字典的代碼是唯一的,不允許重復(fù)。測試需要驗(yàn)證:字典新增程序中已存在有關(guān)字典代碼的約束,若出現(xiàn)代碼重復(fù)必須報(bào)錯(cuò),并且報(bào)錯(cuò)文字正確。往往在設(shè)計(jì)編碼階段形成的文檔對備選事件和異常事件分析描述不夠詳盡。而測試本身則要求驗(yàn)證全部非基本事件,并同時(shí)盡量發(fā)現(xiàn)其中的軟件缺陷??梢圆捎密浖y試常用的基本方法:等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測法、因果圖法、邏輯覆蓋法等設(shè)計(jì)測試用例。視軟件的不同性質(zhì)采用不同的方法。如何靈活運(yùn)用各種基本方法來設(shè)計(jì)完整的測試用例,并最終實(shí)現(xiàn)暴露隱藏的缺陷,全憑測試設(shè)計(jì)人員的豐富經(jīng)驗(yàn)和精心設(shè)計(jì)。黑盒測試方法主要有五種,分為等價(jià)類劃分法、邊界值劃分法、錯(cuò)誤推測法、因果圖法和場景法。在實(shí)際測試用例設(shè)計(jì)過程中,不僅根據(jù)需要、場合單獨(dú)使用這些方法,常常綜合運(yùn)用多個(gè)方法,使測試用例的設(shè)計(jì)更為有效。1.等價(jià)類法(1)等價(jià)類劃分法等價(jià)類劃分法是黑盒測試的典型方法,只需按照需求文檔中對系統(tǒng)的要求和說明對輸入的范圍進(jìn)行劃分,然后從每個(gè)區(qū)域內(nèi)選取一個(gè)有代表性的測試數(shù)據(jù),完全不用考慮系統(tǒng)的內(nèi)部結(jié)構(gòu)。如果等價(jià)類劃分得合理,選取的這個(gè)數(shù)據(jù)就代表了這個(gè)區(qū)域內(nèi)所有的數(shù)據(jù)。具體來講,等價(jià)類劃分法就是把所有可能的輸入數(shù)據(jù),即程序的輸入域劃分成若干部分(子集),然后從每一個(gè)子集中選取少數(shù)具有代表性的數(shù)據(jù)作為測試用例。其中每個(gè)輸入域的集合(子集)就是等價(jià)類,在這個(gè)集合中每個(gè)輸入條件都是等效的,如果其中一個(gè)的輸入不導(dǎo)致問題發(fā)生,那么這個(gè)等價(jià)類中其他輸入也不會發(fā)生錯(cuò)誤。第2章測試用例等價(jià)類分為有效等價(jià)類和無效等價(jià)類。有效等價(jià)類就是由那些對程序的規(guī)格說明有意義的、合理的輸入數(shù)據(jù)所構(gòu)成的集合,利用有效等價(jià)類可檢驗(yàn)程序是否實(shí)現(xiàn)了需求文檔中所規(guī)定的功能和性能。無效等價(jià)類就是那些對程序的規(guī)格說明不合理的或無意義的輸入數(shù)據(jù)所構(gòu)成的集合。劃分等價(jià)類最重要的是集合的劃分。集合要?jiǎng)澐譃榛ゲ幌嘟坏淖蛹蛹牟⑹钦麄€(gè)集合。確定等價(jià)類的原則如下:①在輸入條件規(guī)定了取值范圍(閉區(qū)間)或值的個(gè)數(shù)的情況下,則可以確定一個(gè)有效等價(jià)類和兩個(gè)無效等價(jià)類。②在輸入條件規(guī)定了輸入值的集合或者規(guī)定了“必須如何”的條件的情況下,可確定一個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。③在輸入條件是一個(gè)布爾量的情況下,可確定一個(gè)有效等價(jià)類。④在規(guī)定了輸入數(shù)據(jù)的一組值(假定n個(gè)),并且程序要對每一個(gè)輸入值分別處理的情況下,可確定n個(gè)有效等價(jià)類和一個(gè)無效等價(jià)類。⑤在規(guī)定了輸入數(shù)據(jù)必須遵守的規(guī)則的情況下,可確定一個(gè)有效等價(jià)類(符合規(guī)則)和若干個(gè)無效等價(jià)類(從不同角度違反規(guī)則)。⑥在確知已劃分的等價(jià)類中各元素在程序處理中的方式不同的情況下,則應(yīng)再將該等價(jià)類進(jìn)一步的劃分為更小的等價(jià)類。在這里我們還使用前面介紹邊界值法時(shí)的例子,來說明等價(jià)類劃分法如何使用。前面我們假設(shè)用戶購買某種商品時(shí)只剩余100件,并且用戶只會輸入整數(shù)Q。那么在這個(gè)例子中我們?nèi)绾蝿澐值葍r(jià)類呢?根據(jù)輸入要求,將輸入?yún)^(qū)域劃分為3個(gè)等價(jià)類,如圖2-1所示。第2章測試用例圖2-1等價(jià)類劃分法輸入域分成了一個(gè)有效等價(jià)類(1到100之間)和兩個(gè)無效等價(jià)類(小于1和大于100),將這些等價(jià)類填入下表中,如表2-4所示。第2章測試用例表2-4等價(jià)類測試用例ID所屬等價(jià)類用戶輸入數(shù)量預(yù)期結(jié)果11-9提示“請輸入1~100之間的整數(shù)”2287成功購物33189提示“請輸入1~100之間的整數(shù)”當(dāng)然,上面我們只是假設(shè)用戶只會輸入整數(shù),但是用戶輸入小數(shù)、字母、漢字甚至是其他符號的情況是肯定存在的,這說明我們的等價(jià)類很不完善,只考慮了輸入數(shù)據(jù)的范圍卻沒考慮輸入數(shù)據(jù)的類型,那么綜合考慮所有情況應(yīng)該如何設(shè)計(jì)等價(jià)類呢?這個(gè)問題留給讀者去思考。通過上面的例子我們可以想到,邊界值法和等價(jià)類劃分法是有緊密聯(lián)系的。邊界值法是對等價(jià)類劃分法的補(bǔ)充,邊界值其實(shí)就是在劃分等價(jià)類的過程中產(chǎn)生的,正如前面邊界值法中所述,正是由于等價(jià)類劃分的區(qū)域邊界的地方最容易出錯(cuò),在從等價(jià)類中選取測試數(shù)據(jù)的時(shí)候也經(jīng)常選取邊界值。例1:請用等價(jià)類和邊界值方法編寫163郵箱注冊模塊(簡化版)的測試用例(假設(shè)沒有重復(fù)的用戶名),如圖2-2所示。請注意帶*的項(xiàng)目必須填寫。第2章測試用例圖2-2例1圖第2章測試用例①用戶名:劃分等價(jià)類并編號。如表2-5所示是等價(jià)類劃分的結(jié)果。表2-5等價(jià)類劃分結(jié)果輸入條件有效等價(jià)類無效等價(jià)類用戶名長度(1)3~18之間(2)大于18(3)小于3用戶名類型(4)用戶名由字母,數(shù)字,點(diǎn),減號或下劃線組成,只能以數(shù)字或字母開頭和結(jié)尾(5)用戶名中含有空格(6)用戶名中含有特殊字(7)用戶名為空(8)不以數(shù)字和字母開頭(9)不以數(shù)字和字母結(jié)尾是否區(qū)分大小寫(10)不區(qū)分大小寫(11)區(qū)分大小寫②用戶名:設(shè)計(jì)測試用例,如表2-6所示。表2-6測試用例序
號所屬等價(jià)類輸入數(shù)據(jù)預(yù)期輸出結(jié)果1(1)a122333該用戶可以注冊2(2)123456aaaaaaaabbbb提示請輸入3-18個(gè)字符3(3)12提示請輸入3-18個(gè)字符4(6)12345@提示用戶名格式不正確5(5)空格提示用戶名格式不正確6(6)漢字提示用戶名格式不正確7(8)_234a只能以數(shù)字或字母開頭和結(jié)尾8(7)
用戶名不能為空9(9)A123456-只能以數(shù)字或字母開頭和結(jié)尾10(10)aaaaaa(用戶名為aaaaaa)該用戶可以注冊第2章測試用例③密碼:劃分等價(jià)類并編號。如表2-7所示是等價(jià)類劃分的結(jié)果,測試用例如表2-8所示。表2-7等價(jià)類劃分結(jié)果輸入條件有效等價(jià)類無效等價(jià)類密碼長度(1)6~18之間(2)大于18(3)小于6密碼類型(4)由數(shù)字,字母,特殊字符組成(5)用戶名中含有空格密碼是否為明文(6)不是明文(7)是明文輸入密碼和再次輸入密碼是否一致(8)輸入密碼和再次輸入密碼一致(9)密碼和再次輸入密碼不一致表2-8測試用例序
號所屬等價(jià)類輸入數(shù)據(jù)預(yù)期結(jié)果11a122333該用戶可以注冊23a1提示請輸入6~18個(gè)字符32123456aaaaaaaajkkfhj提示請輸入6~18個(gè)字符45空格提示密碼格式不正確541234a該用戶可以注冊66A1234123該用戶可以注冊78密碼和輸入密碼一致可以注冊89密碼和輸入密碼不一致不可以注冊97***********(正確密碼明文顯示)該用戶可以注冊第2章測試用例例2:設(shè)有一個(gè)檔案管理系統(tǒng),要求用戶輸入以年月表示的日期,假設(shè)日期限定在2011年1月—2099年12月,并規(guī)定日期由6位數(shù)字字符組成,前4位表示年,后兩位表示月?,F(xiàn)用等價(jià)類劃分法設(shè)計(jì)測試用例,來測試程序的“日期檢查功能”。①劃分等價(jià)類并編號。如表2-9所示是等價(jià)類劃分的結(jié)果。表2-9等價(jià)類劃分結(jié)果輸入條件有效等價(jià)類無效等價(jià)類日期的類型及長度(1)6位數(shù)字組成的字符(2)有非數(shù)字字符(3)少于6位數(shù)字字符(4)多于6位數(shù)字字符年份范圍(5)在2011~2099之間(6)小于2011(7)大于2099月份范圍(8)在01~12之間(9)等于00(10)大于12②設(shè)計(jì)測試用例,如表2-10所示。表2-10測試用例序
號輸入數(shù)據(jù)所屬等價(jià)類測試方法預(yù)期輸出結(jié)果1123456(1)等價(jià)類可查詢第2章測試用例序
號輸入數(shù)據(jù)所屬等價(jià)類測試方法預(yù)期輸出結(jié)果2A12346(2)等價(jià)類日期格式不正確3122(3)等價(jià)類日期格式不正確41234567(4)等價(jià)類日期格式不正確52012(5)等價(jià)類可查詢62000(6)等價(jià)類請輸入2011~2099范圍內(nèi)的年份73000(7)等價(jià)類請輸入2011~2099范圍內(nèi)的年份806(8)等價(jià)類可查詢900(9)等價(jià)類請輸入01~12月份的數(shù)字1013(10)等價(jià)類請輸入01~12月份的數(shù)字2.邊界值法邊界值分析法是一種非常實(shí)用的測試用例設(shè)計(jì)技術(shù),具有很強(qiáng)的發(fā)現(xiàn)程序錯(cuò)誤的能力,它的測試用例來自于等價(jià)類的邊界。大量測試工作的經(jīng)驗(yàn)會告訴我們,大量的錯(cuò)誤發(fā)生在輸入或輸出范圍的邊界上,而不是輸入或輸出范圍的內(nèi)部。邊界值分析就是假定錯(cuò)誤發(fā)生在輸入或輸出區(qū)間的邊界上,因此使用邊界值法設(shè)計(jì)測試用例,可以發(fā)現(xiàn)更多的錯(cuò)誤。在使用邊界值法設(shè)計(jì)測試用例時(shí),應(yīng)該首先確定好輸入邊界和輸出邊界情況,然后選取正好等于、剛剛大于或剛剛小于邊界的值作為測試數(shù)據(jù),而不是選取等價(jià)類中的典型值或任意值作為測試數(shù)據(jù)。一般情況下,可以遵循以下幾個(gè)規(guī)則來設(shè)計(jì)測試用例:(1)如果輸入條件規(guī)定了值的范圍,應(yīng)取剛達(dá)到這個(gè)范圍的邊界值,以及剛剛超過這個(gè)范圍邊界的值作為測試輸入的數(shù)據(jù)。(2)如果輸入條件規(guī)定了值的個(gè)數(shù),應(yīng)用最大個(gè)數(shù)、最小個(gè)數(shù)、比最小個(gè)數(shù)少一、比最大個(gè)數(shù)多一的數(shù)作為測試輸入的數(shù)據(jù)。(3)根據(jù)每個(gè)輸入條件,使用規(guī)則①或②。第2章測試用例(4)如果程序的規(guī)格說明給出的輸入域或輸出域是有序集合,則應(yīng)選取集合的第一個(gè)元素和最后一個(gè)元素作為測試用例數(shù)據(jù)。(5)如果程序中使用了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),應(yīng)當(dāng)選擇這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)的邊界上的值來作為測試用例。(6)分析規(guī)格說明,找出其他可能的邊界條件。下面舉個(gè)例子讓大家更深入地理解邊界值法。用戶登錄權(quán)限管理系統(tǒng)要購買某種商品,假設(shè)該商品剩余數(shù)量為100件,且用戶只會輸入整數(shù)。則用戶只能購買1~100范圍內(nèi)的商品件數(shù)。使用邊界值法設(shè)計(jì)測試用例,測試用戶輸入商品數(shù)量Q后,系統(tǒng)反應(yīng)是否合乎標(biāo)準(zhǔn)。提出邊界時(shí),一定要測試鄰近邊界的合法數(shù)據(jù),即測試最后一個(gè)可能合法的數(shù)據(jù),以及剛剛超過邊界的非法數(shù)據(jù)。越界測試通常簡單地加1或者用最小的數(shù)減1。圖2-3中,輸入分區(qū)將1~100分成三個(gè)區(qū)間,再考慮上恰好等區(qū)間邊界的情況,我們可以考慮商品數(shù)量Q的輸入?yún)^(qū)間如下:第2章測試用例①Q(mào)<1②Q=1③1<Q<100④Q=100⑤Q>100根據(jù)上面的分析可以設(shè)計(jì)六個(gè)用例:①TestCase1:輸入0,返回錯(cuò)誤信息“您必須輸入大于等于一個(gè)數(shù)量值”。②TestCase2:輸入1,頁面正確運(yùn)行。③TestCase3:輸入2,頁面正確運(yùn)行。④TestCase4:輸入99,頁面正確運(yùn)行。⑤TestCase5:輸入100,頁面正確運(yùn)行。⑥TestCase6:輸入101,返回錯(cuò)誤信息“您所選購的商品數(shù)量僅剩100件”。測試員可以將上面的信息填入用例設(shè)計(jì)表格中,形成標(biāo)準(zhǔn)的測試用例。3.錯(cuò)誤推測法錯(cuò)誤推測法就是根據(jù)經(jīng)驗(yàn)和直覺推測程序中所有可能存在的各種錯(cuò)誤,從而有針對性地設(shè)計(jì)測試用例的方法。使用錯(cuò)誤推測法時(shí),可以憑經(jīng)驗(yàn)列舉出程序中所有可能有的錯(cuò)誤和容易發(fā)生錯(cuò)誤的特殊情況,幫助猜測錯(cuò)誤可能發(fā)生的位置,提高錯(cuò)誤猜測的有效性,根據(jù)他們選擇測試用例。例如:輸入表格為空格;輸入數(shù)據(jù)和輸出數(shù)據(jù)為0的情況。第2章測試用例4.場景法場景是通過描述經(jīng)過用例的路徑來確定的過程,這個(gè)過程要從用例開始到結(jié)束遍歷其中所有基本流和備選流。場景法就是根據(jù)這些基本流和備選流的流動過程來設(shè)計(jì)測試用例。目前的軟件幾乎都是由事件觸發(fā)來控制流程的,事件觸發(fā)時(shí)的情景便形成了場景,而同一事件不同的觸發(fā)順序和處理結(jié)果形成事件流。這種在軟件設(shè)計(jì)方面的思想也可被引入到軟件測試中,生動地描繪出事件觸發(fā)時(shí)的情景,有利于測試設(shè)計(jì)者設(shè)計(jì)測試用例,同時(shí)測試用例也更容易的得到理解和執(zhí)行。提出這種測試思想的是Rational公司。下面使用權(quán)限管理系統(tǒng)的購物場景舉例說明。(1)場景描述用戶進(jìn)入權(quán)限管理系統(tǒng)網(wǎng)站進(jìn)行購物,選好物品后進(jìn)行購買,這時(shí)需要使用賬號登錄,登錄成功后付款,交易成功后生成訂單,完成此次購物活動。(2)使用場景法設(shè)計(jì)測試用例①確定基本流和備選流事件表2-11列出了用戶購物活動中的基本流和備選流。表2-11基本流和備選流基
本
流登錄權(quán)限管理系統(tǒng)網(wǎng)站,選擇物品,登錄賬號,付錢交易,生成訂單備選流1賬號不存在備選流2賬號或密碼錯(cuò)誤備選流3用戶賬號余額不足備選流4用戶賬號沒有錢備選流5用戶退出系統(tǒng)第2章測試用例②根據(jù)基本流和備選流來確定場景表2-12列出了每個(gè)場景中包括的基本流和備選流,需要特別說明的是,由于場景1中用戶成功購買了物品,所以只有基本流而不需經(jīng)過備選流。表2-12場景場景1:成功購物基本流
場景2:賬號不存在基本流備選流1場景3:賬號或密碼錯(cuò)誤基本流備選流2場景4:用戶賬號余額不足基本流備選流3場景5:用戶賬號沒有錢基本流備選流4③設(shè)計(jì)用例對每一個(gè)場景都要做測試用例,可以使用矩陣(表格)來管理用例。用行表示各個(gè)測試用例,列表示測試用例的信息。首先將測試用例的ID、條件、涉及的數(shù)據(jù)元素以及預(yù)期結(jié)果列在矩陣中,然后將這些數(shù)據(jù)確定下來,填寫在表格中。在表2-13中,“有效”表示這個(gè)條件必須是有效的才可執(zhí)行基本流,而“無效”用于表示這種條件下將激活所需備選流?!安贿m用”表示這個(gè)條件不適用于測試用例。第2章測試用例表2-13測試用例信息測試用例ID場景/條件賬
號密
碼用戶賬號余額預(yù)期結(jié)果1場景1:成功購物有效有效有效成功購物2場景2:賬號不存在無效不適用不適用提示賬號不存在3場景3:賬號或密碼錯(cuò)誤(賬號正確,密碼錯(cuò)誤)有效無效不適用提示賬號或密碼錯(cuò)誤,返回基本流步驟34場景3:賬號或密碼錯(cuò)誤(賬號錯(cuò)誤,密碼正確)無效有效不適用提示賬號或密碼錯(cuò)誤,返回基本流步驟35場景4:用戶賬號余額不足有效有效無效提示賬號余額不足請充值6場景5:用戶賬號沒有錢有效有效無效提示賬號余額請充值④設(shè)計(jì)數(shù)據(jù),填入表2-13,結(jié)果如表2-14所示表2-14測試用例數(shù)據(jù)測試用例ID場景/條件賬號密碼用戶賬號余額預(yù)期結(jié)果1場景1:成功購物wangshPassw0rd193成功購物,用戶賬號余額正確2場景2:賬號不存在song不適用不適用提示賬號不存在3場景3:賬號或密碼錯(cuò)誤(賬號正確,密碼錯(cuò)誤)wangsh666666不適用提示賬號或密碼錯(cuò)誤,返回基本流步驟34場景3:賬號或密碼錯(cuò)誤(賬號錯(cuò)誤,密碼正確)songpassw0rd不適用提示賬號或密碼錯(cuò)誤,返回基本流步驟35場景4:用戶賬號余額不足wshpass0rd2提示賬號余額不足請充值6場景5:用戶賬號沒有錢sunxx8172170提示賬號余額請充值第2章測試用例這樣我們就完成了整個(gè)測試用例的設(shè)計(jì)過程。5.因果圖法前面介紹的等價(jià)類劃分方法和邊界值分析方法,都是著重考慮輸入條件,但未考慮輸入條件之間的聯(lián)系,相互組合等??紤]輸入條件之間的相互組合,可能會產(chǎn)生一些新的情況。但要檢查輸入條件的組合不是一件容易的事情,即使把所有輸入條件劃分成等價(jià)類,他們之間的組合情況也相當(dāng)多。因此必須考慮采用一種適合于描述對于多種條件的組合,相應(yīng)產(chǎn)生多個(gè)動作的形式來考慮設(shè)計(jì)測試用例。這就需要利用因果圖(邏輯模型)。因果圖方法最終生成的就是判定表,它適合于檢查程序輸入條件的各種組合情況。(1)因果圖圖例說明①4種符號分別表示了規(guī)格說明中向4種因果關(guān)系,如圖2-4所示。第2章測試用例②因果圖中使用了簡單的邏輯符號,以直線聯(lián)接左右結(jié)點(diǎn)。左結(jié)點(diǎn)表示輸入狀態(tài)(或稱原因),右結(jié)點(diǎn)表示輸出狀態(tài)(或稱結(jié)果)。③ci表示原因,通常置于圖的左部;ei表示結(jié)果,通常在圖的右部。ci和ei均可取值0或1,0表示某狀態(tài)不出現(xiàn),1表示某狀態(tài)出現(xiàn)。
(2)因果圖概念①關(guān)系
恒等:若ci是1,則ei也是1;否則ei為0。
非:若ci是1,則ei是0;否則ei是1。
或:若c1或c2或c3是1,則ei是1;否則ei為0?!盎颉笨捎腥我鈧€(gè)輸入。
與:若c1和c2都是1,則ei為1;否則ei為0。“與”也可有任意個(gè)輸入。②約束輸入狀態(tài)相互之間還可能存在某些依賴關(guān)系,稱為約束。例如,某些輸入條件本身不可能同時(shí)出現(xiàn)。輸出狀態(tài)之間也往往存在約束。在因果圖中,用特定的符號標(biāo)明這些約束,如圖2-5所示。圖2-5因果圖約束第2章測試用例a.輸入條件的約束有以下4類:
E約束(異):a和b中至多有一個(gè)可能為1,即a和b不能同時(shí)為1。
I約束(或):a、b和c中至少有一個(gè)必須是1,即a、b和c不能同時(shí)為0。
O約束(唯一);a和b必須有一個(gè),且僅有1個(gè)為1。
R約束(要求):a是1時(shí),b必須是1,即不可能a是1時(shí)b是0。b.輸出條件約束類型輸出條件的約束只有M約束(強(qiáng)制):若結(jié)果a是1,則結(jié)果b強(qiáng)制為0。(3)利用因果圖生成測試用例的基本步驟:①分析軟件規(guī)格說明描述中,哪些是原因(即輸入條件或輸入條件的等價(jià)類),哪些是結(jié)果(即輸出條件),并給每個(gè)原因和結(jié)果賦予一個(gè)標(biāo)識符。②分析軟件規(guī)格說明描述中的語義。找出原因與結(jié)果之間,原因與原因之間對應(yīng)的關(guān)系。根據(jù)這些關(guān)系,畫出因果圖。③由于語法或環(huán)境限制,有些原因與原因之間,原因與結(jié)果之間的組合情況不不可能出現(xiàn)。為表明這些特殊情況,在因果圖上用一些記號表明約束或限制條件。④把因果圖轉(zhuǎn)換為判定表。判定表(DecisionTable)是分析和表達(dá)多邏輯條件下執(zhí)行不同操作的情況下的工具。在程序設(shè)計(jì)發(fā)展的初期,判定表就已被當(dāng)作編寫程序的輔助工具了。由于它能夠?qū)?fù)雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。因此,利用判定表能夠設(shè)計(jì)出完整的測試用例集合。在一些數(shù)據(jù)處理問題當(dāng)中,某些操作的實(shí)施依賴于多個(gè)邏輯條件的組合,即:針對不同邏輯條件的組合值,分別執(zhí)行不同的操作。判定表很適合于處理這類問題。⑤把判定表的每一列拿出來作為依據(jù),設(shè)計(jì)測試用例。從因果圖生成的測試用例(局部,組合關(guān)系下的)包括了所有輸入數(shù)據(jù)的取TRUE與取FALSE的情況,構(gòu)成的測試用例數(shù)目達(dá)到最少,且測試用例數(shù)目隨輸入數(shù)據(jù)數(shù)目的增加而線性地增加。第2章測試用例c.Beizer指出了適合使用判定表設(shè)計(jì)測試用例的條件
規(guī)格說明以判定表形式給出,或很容易轉(zhuǎn)換成判定表。
條件的排列順序不會也不影響執(zhí)行哪些操作。
規(guī)則的排列順序不會也不影響執(zhí)行哪些操作。
每當(dāng)某一規(guī)則的條件已經(jīng)滿足,并確定要執(zhí)行的操作后,不必檢驗(yàn)別的規(guī)則。如果某一規(guī)則得到滿足要執(zhí)行多個(gè)操作,這些操作的執(zhí)行順序無關(guān)緊要。例3:某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是R或Q,第二列字符必須是一個(gè)數(shù)字,在此情況下進(jìn)行文件的修改,但如果第一列字符不正確,則給出信息D;如果第二列字符不是數(shù)字,則給出信息C。解答:(1)根據(jù)題意,原因和結(jié)果如下:原因:1:第一列字符是R;2:第一列字符是Q;3:第二列字符是一個(gè)數(shù)字。中間節(jié)點(diǎn):10:第一列字符是R或Q。結(jié)果:21:修改文件;22:給出信息D;23:給出信息C。(2)畫出因果圖(編號為10的中間結(jié)點(diǎn)是導(dǎo)出結(jié)果的進(jìn)一步原因),如圖2-6所示。第2章測試用例圖2-6因果圖(3)將因果圖轉(zhuǎn)換成如表2-15所示的決策表。表2-15決策表規(guī)則選項(xiàng)12345678條件1:第一列字符是R111100002:第一列字符是Q110011003:第二列字符是一數(shù)字10101010中間節(jié)點(diǎn)10:第一列字符是R或Q00111100第2章測試用例規(guī)則選項(xiàng)12345678動作21:修改文件
√
√
22給出信息D
√√23:給出信息C
√
√
√(4)根據(jù)決策表中的每一列設(shè)計(jì)測試用例,如表2-16所示。表2-16測試用例測試用例編號輸入數(shù)據(jù)預(yù)期輸出1A3修改文件2AA給出信息L3B6修改文件4BC給出信息L5D1給出信息M6GG給出信息L和信息M第2章測試用例例4:用因果圖設(shè)計(jì)一個(gè)網(wǎng)站用戶登錄界面的測試用例。用戶賬號(賬號為6~10位自然數(shù))、用戶密碼(密碼為6~16位密碼,非空,非保留字,非功能鍵,非漢字)、登錄按鈕。在測試的時(shí)候,要簡化輸入條件,這樣才能有重點(diǎn)地去測試,也是主要關(guān)注用戶的基本需求。我們看到有3個(gè)可以組合的項(xiàng)。(1)分析程序規(guī)格說明中的原因和結(jié)果:原因:c1:輸入6~10位由自然數(shù)組成的賬戶;c2:輸入6~16位由字母和數(shù)字組成的密碼;c3:點(diǎn)擊登錄按鈕;c4:賬戶不足6位或者多于10位;c5:密碼不足6位或者多于16位;c6:賬戶含有字母、空格、下劃線、特殊字符等;c7:字母含有空格、下劃線、特殊字符等。中間結(jié)點(diǎn):10:不滿足c4~c7中的任意一條。結(jié)果:e1:登錄成功;e2:提示錯(cuò)誤信息。(2)畫出因果圖(編號為10的中間結(jié)點(diǎn)是導(dǎo)出結(jié)果的進(jìn)一步原因),如圖2-7所示。(3)將因果圖轉(zhuǎn)換成如表2-17所示的決策表。第2章測試用例圖2-7因果圖表2-17決策表規(guī)則選項(xiàng)123456條件c1:輸入6~10位由自然數(shù)組成的賬戶100001c2:輸入6~16位由字母和數(shù)字組成的密碼100110c3:單擊登錄按鈕111111c4:賬戶不足6位或者多于10位010100c5:密碼不足6位或者多于16位010000c6:賬戶含有字母、空格、下劃線、特殊字符等001010c7:字母含有空格、下劃線、特殊字符等001001中間節(jié)點(diǎn)10:不滿足c4~c7中的任意一條011111動作e1:登錄成功√
e2:提示錯(cuò)誤信息
√√√√√第2章測試用例(4)根據(jù)決策表中的每一列設(shè)計(jì)測試用例,如表2-18所示。表2-18測試用例測試用例編號輸入數(shù)據(jù)預(yù)期輸出1賬號:944121015密碼:Sj1345678登錄成功2賬號:Sj944121015密碼:121212121212賬號不正確3賬號:2345密碼:121212121212賬號應(yīng)為6~16位4賬號:944121015密碼:空密碼不能為空5…………例5:有一個(gè)處理單價(jià)為2元5角錢的盒裝飲料的自動售貨機(jī)軟件。若投入2元5角硬幣,按下“咖啡”、“果汁”或“紅牛”按鈕,相應(yīng)的飲料就送出來。若投入的是兩元硬幣,在送出飲料的同時(shí)退還5角硬幣。(1)根據(jù)題意,原因和結(jié)果如下:原因:1:投1.5元硬幣;2:投2.0元硬幣;3:按“咖啡”按鈕;4:按“果汁”按鈕;5:按“紅?!卑粹o。中間節(jié)點(diǎn):11:已投幣;12:已按按鈕。結(jié)果:21:送出“咖啡”;22:送出“果汁”;23:送出“紅?!?;24:退還5角硬幣。第2章測試用例(3)根據(jù)因果圖建立判定表,如表2-19所示。表2-19判定表規(guī)則選項(xiàng)1234567891011輸入
(1)投1.5元硬幣11110000000(2)投2.0元硬幣00001111000(3)按“可樂”按鈕10001000100(4)按“雪碧”按鈕01000100010(5)按“紅茶”按鈕00100010001圖2-8因果圖第2章測試用例規(guī)則選項(xiàng)1234567891011中間節(jié)點(diǎn)(11)已投幣11111111000(12)已按按鈕11101110111輸出(21)送出“可樂”√
√
(22)送出“雪碧”
√
√
(23)送出“紅茶”
√
√
(24)退還5角硬幣
√√√
表中8種情況的左面兩列情況中,原因(1)和原因(2)同時(shí)為1,或原因(3),原因(4)和原因(5)同時(shí)為1,這是不可能出現(xiàn)的,故應(yīng)排除這兩種情況。(4)根據(jù)決策表中的每一列計(jì)測試用例,如表2-20所示。表2-20測試用例測試用例編號輸入數(shù)據(jù)預(yù)期輸出1(1)(3)(21)2(1)(4)(22)3(1)(5)(23)4(2)(3)(21)(24)5(2)(4)(22)(24)6(2)(5)(23)(24)Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.2.1.2白盒測試第2章測試用例一、白盒測試基本概念白盒測試是用來測試證明每種內(nèi)部操作和過程是否符合設(shè)計(jì)規(guī)格和要求,又稱結(jié)構(gòu)測試或邏輯驅(qū)動測試或基于程序的測試。白盒測試技術(shù)一般用于單元測試階段。目前國內(nèi)很少有公司花很大精力去做白盒測試,商業(yè)軟件測試技術(shù)主要是黑盒測試,白盒測試全由開發(fā)人員來完成。白盒測試主要對程序模塊檢查如下:(1)保證一個(gè)模塊中的所有獨(dú)立的執(zhí)行路徑至少被使用一次;(2)對所有邏輯值均需測試true和false;(3)在循環(huán)的上下邊界及可操作范圍內(nèi)運(yùn)行所有循環(huán);(4)測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)以確保其有效性。正如測試專家BorisBeizer所說的:“錯(cuò)誤潛伏在角落里,聚集在邊界上”,而白盒測試更可能發(fā)現(xiàn)它。所以,白盒測試就是知道產(chǎn)品內(nèi)部工作過程,可通過測試來檢測產(chǎn)品內(nèi)部動作是否按照規(guī)格說明書的規(guī)定正常進(jìn)行,按照程序內(nèi)部的結(jié)構(gòu)測試程序,檢驗(yàn)程序中的每條通路是否都有能按預(yù)定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅(qū)動、基路測試等等,主要用于軟件驗(yàn)證?!鞍缀小狈ㄈ媪私獬绦騼?nèi)部邏輯結(jié)構(gòu)、對所有邏輯路徑進(jìn)行測試?!鞍缀小狈ㄊ歉F舉路徑測試。在使用這一方案時(shí),測試者必須檢查程序的內(nèi)部結(jié)構(gòu),從檢查程序的邏輯著手,得出測試數(shù)據(jù)。貫穿程序的獨(dú)立路徑數(shù)是天文數(shù)字。但即使每條路徑都測試了仍然可能有錯(cuò)誤。第一,窮舉路徑測試決不能查出程序違反了設(shè)計(jì)規(guī)范,即程序本身是個(gè)錯(cuò)誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯(cuò)。第三,窮舉路徑測試可能發(fā)現(xiàn)不了一些與數(shù)據(jù)相關(guān)的錯(cuò)誤。白盒測試的目的就是通過檢查軟件內(nèi)部的邏輯結(jié)構(gòu),對軟件中的邏輯路徑進(jìn)行覆蓋測試,在程序不同地方設(shè)立檢查點(diǎn),檢查程序的狀態(tài),以確定實(shí)際運(yùn)行狀態(tài)與預(yù)期狀態(tài)是否一致。測試方法總體上分為靜態(tài)方法和動態(tài)方法。靜態(tài)分析是不通過執(zhí)行程序而進(jìn)行測試的技術(shù);動態(tài)分析是當(dāng)軟件系統(tǒng)在模擬的或真實(shí)的環(huán)境中執(zhí)行之前、之中和之后,對軟件系統(tǒng)行為的分析。第2章測試用例二、白盒測試用例設(shè)計(jì)方法白盒測試用例編寫方法主要有:基本路徑測試、等價(jià)類劃分/邊界值分析測試、覆蓋測試、循環(huán)測試、數(shù)據(jù)流測試、程序插樁測試和變異測試等。其中基本路徑測試和覆蓋測試法最常用,也是最基本的設(shè)計(jì)方法。白盒測試用例編寫的注意事項(xiàng):(1)由于測試路徑可能非常多,由于時(shí)間和資源問題,選出足夠多的路徑測試;(2)由于深入到程序編碼,通常開發(fā)人員協(xié)助測試人員書寫白盒測試用例。關(guān)于白盒測試用例設(shè)計(jì)方法在這里就不再詳細(xì)介紹了,請讀者參看第6章的相關(guān)內(nèi)容。三、ALAC(Act-like-a-customer)測試黑盒測試和白盒測試是最基本的兩類軟件測試方法,除了前面介紹的這兩種測試方法之外,目前又提出一種新的測試方法,即ALAC(Act-like-a-customer)測試。ALAC測試是一種基于客戶使用產(chǎn)品的知識開發(fā)出來的測試方法。ALAC測試是基于復(fù)雜的軟件產(chǎn)品有許多錯(cuò)誤的原則。最大的受益者是用戶,缺陷查找和改正將針對那些客戶最容易遇到的錯(cuò)誤。圖2-11就是ALAC測試方法的示意圖,形象地說明了該方法的含義。圖2-9ALAC測試示意圖Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.Clickheretoenteryourtext.2.1.3Web系統(tǒng)測試第2章測試用例一、Web系統(tǒng)測試概述軟件大體分為Web應(yīng)用程序(B/S)和Windows應(yīng)用程序(C/S)。隨著Internet的快速發(fā)展,許多傳統(tǒng)的信息和數(shù)據(jù)庫系統(tǒng)都被移植到了互聯(lián)網(wǎng)上,產(chǎn)生了越來越多的Web網(wǎng)站,網(wǎng)站的測試也越來越受到重視,權(quán)限管理系統(tǒng)就是基于Web的應(yīng)用系統(tǒng)。即使是最簡單的一個(gè)Web應(yīng)用程序都會包括客戶端、中間件和服務(wù)器端三個(gè)部分,如果要開發(fā)一個(gè)大型的系統(tǒng),則包括的內(nèi)容更復(fù)雜。因此,Web系統(tǒng)測試是一項(xiàng)紛繁復(fù)雜的工作,對Web系統(tǒng)的測試主要就是對它從全面性、適合性和標(biāo)準(zhǔn)性等多方面進(jìn)行檢查?;赪eb的系統(tǒng)測試與傳統(tǒng)的軟件測試既有相同之處,也有不同的地方,對軟件測試提出了新的挑戰(zhàn)?;赪eb的系統(tǒng)測試不但需要檢查和驗(yàn)證是否按照設(shè)計(jì)的要求運(yùn)行,而且還要評價(jià)系統(tǒng)在不同用戶的瀏覽器端的顯示是否合適。重要的是,還要從最終用戶的角度進(jìn)行安全性和可用性測試。二、Web系統(tǒng)測試階段測試階段也叫測試策略。針對Web系統(tǒng)的特點(diǎn),需要對它的各個(gè)方面進(jìn)行測試。按軟件的質(zhì)量特性可以分為功能測試、性能測試、安全性測試、兼容性測試和易用性測試等;按職能來分,可分為應(yīng)用功能的測試、Web應(yīng)用服務(wù)的測試、安全系統(tǒng)的測試和數(shù)據(jù)庫服務(wù)的測試;按系統(tǒng)架構(gòu)來分,可分為客戶端的測試、服務(wù)器端的測試和網(wǎng)絡(luò)上的測試;按開發(fā)階段來分,可分為Web應(yīng)用設(shè)計(jì)測試、Web應(yīng)用開發(fā)測試和Web應(yīng)用運(yùn)行測試。由于本書著重講解黑盒測試,所以在前面詳細(xì)介紹了功能測試的基礎(chǔ)上,工作任務(wù)2.5中將詳細(xì)介紹Web應(yīng)用運(yùn)行測試中的其他測試部分,包括性能測試、鏈接測試、導(dǎo)航測試、界面測試、兼容性測試、幫助文檔測試這六個(gè)方面??偟膩碚f,系統(tǒng)測試共有十六個(gè)測試策略,它們是功能測試、性能測試、壓力測試、容量測試、安全性測試、可用性測試、GUI測試、安裝測試、配置測試、異常測試、備份測試、健壯性測試、文檔測試、在線幫助測試、網(wǎng)絡(luò)測試、穩(wěn)定性測試。在實(shí)際項(xiàng)目中,可以視情況選擇一部分測試策略進(jìn)行測試。三、基于Web的系統(tǒng)測試綜述基于Web的系統(tǒng)開發(fā),如果缺乏嚴(yán)格的過程控制,在開發(fā)、發(fā)布、實(shí)施和維護(hù)過程中可能會發(fā)生一些嚴(yán)重的問題,失敗的可能也非常大。如果Web系統(tǒng)很復(fù)雜,項(xiàng)目的失敗肯定會引發(fā)諸多的問題,從而引起Web軟件危機(jī)。一般的軟件發(fā)布周期以月或以年計(jì)算,而Web系統(tǒng)的發(fā)布周期以天計(jì)算甚至以小時(shí)計(jì)算。Web測試人員必須以更短的時(shí)間發(fā)布系統(tǒng),測試人員和測試管理人員面臨著從測試傳統(tǒng)的C/S結(jié)構(gòu)和框架環(huán)境到測試快速改變的Web應(yīng)用系統(tǒng)的轉(zhuǎn)變。第2章測試用例下面從Web系統(tǒng)測試的功能測試、性能測試、可用性測試、客戶端兼容性測試、安全性測試等方面討論。1.功能測試(1)鏈接測試鏈接是在頁面之間切換和指導(dǎo)用戶到一些不知道網(wǎng)址的頁面的主要方式,它是Web應(yīng)用系統(tǒng)的主要和明顯特征??梢詮囊韵聨讉€(gè)方面考慮:①測試所有鏈接是否按指示的那樣確實(shí)鏈接到了該鏈接的頁面;②測試所鏈接的頁面是否存在;③保證Web系統(tǒng)上沒有孤立的頁面。其中,所謂孤立頁面是指沒有鏈接指向該頁面,只有知道正確的URL地址才能訪問。鏈接測試可以采用測試工具進(jìn)行自動化測試。鏈接測試發(fā)生的時(shí)間是在集成測試階段完成,即在整個(gè)Web系統(tǒng)的所有頁面開發(fā)完成之后進(jìn)行。(2)表單測試表單操作是在用戶向Web系統(tǒng)管理員提交信息時(shí)進(jìn)行的。最常見的比如用戶注冊、登錄等。表單測試是用來測試用戶提交操作的完整性,以校驗(yàn)提交給服務(wù)器的信息的正確性??梢詮囊韵聨讉€(gè)方面考慮:①比如用戶提交的出生日期是否符合常理,填寫的所屬省份與所在城市是否匹配等。②用戶所填寫的信息是否在表單可以接受的值的范圍。如果不接受,系統(tǒng)是否會報(bào)出錯(cuò)誤提示。(3)Cookies測試Cookies是用來存儲用戶信息和用戶在應(yīng)用系統(tǒng)中的操作。當(dāng)用戶使用Cookies訪問一個(gè)應(yīng)用系統(tǒng)時(shí),Web服務(wù)器會發(fā)送關(guān)于用戶的信息,把該信息以Cookies的形式存儲在客戶端計(jì)算機(jī)上,這可用來創(chuàng)建動態(tài)和自定義頁面或者存儲登錄等信息。Cookies測試可從以下幾個(gè)方面考慮:①Cookies是否起作用;②Cookies是否按預(yù)定的時(shí)間進(jìn)行保存;③刷新對Cookies有什么影響。第2章測試用例(4)設(shè)計(jì)語言測試設(shè)計(jì)語言指開發(fā)該Web系統(tǒng)所使用的語言,設(shè)計(jì)語言測試就是用來測試設(shè)計(jì)Web系統(tǒng)的不同語言版本的兼容性。因?yàn)橐粋€(gè)系統(tǒng)不可能由一個(gè)人來完成,所以開發(fā)人員設(shè)計(jì)系統(tǒng)時(shí)所采用的語言版本之間可能會存在不兼容的問題。設(shè)計(jì)語言測試可以從以下幾個(gè)方面考慮:①所使用的HTML的版本;②腳本語言的版本。比如:Java、JavaScript、ActiveX、VBScript或Perl等腳本語言。(5)數(shù)據(jù)庫測試數(shù)據(jù)庫測試顧名思義就是對系統(tǒng)所使用的數(shù)據(jù)庫進(jìn)行測試。在當(dāng)前的Web系統(tǒng)中,一般情況下都會使用數(shù)據(jù)庫為系統(tǒng)的管理、運(yùn)行、查詢和實(shí)現(xiàn)用戶對數(shù)據(jù)存儲的請求等提供空間。數(shù)據(jù)庫測試可以從以下兩方面進(jìn)行考慮:①數(shù)據(jù)一致性。這種錯(cuò)誤主要是由于用戶提交的表單信息不正確造成的。②輸出錯(cuò)誤。這種錯(cuò)誤主要是由于網(wǎng)絡(luò)速度和程序設(shè)計(jì)的問題引起的。2.性能測試(1)連接速度測試連接速度指用戶打開一個(gè)頁面的快慢程度,很多時(shí)候是受用戶上網(wǎng)方式的影響的。連接速度測試可以從以下幾個(gè)方面進(jìn)行考慮:①訪問頁面時(shí)用戶需要等待的時(shí)間長短。一般不要超過5秒鐘,如果系統(tǒng)響應(yīng)時(shí)間太長,用戶可能就會因?yàn)闆]有耐心等待而離開頁面。②頁面有超時(shí)限制時(shí),響應(yīng)速度會不會慢到用戶沒來得及瀏覽內(nèi)容而因?yàn)槌瑫r(shí)需要重新登錄系統(tǒng)。③連接速度會不會太慢而導(dǎo)致頁面數(shù)據(jù)丟失,用戶得不到真實(shí)的頁面。
(2)負(fù)載測試負(fù)載指的是某一時(shí)刻同時(shí)訪問Web系統(tǒng)的用戶數(shù)量,或者是在線數(shù)據(jù)處理的數(shù)量。負(fù)載測試是為了測量Web系統(tǒng)在某一負(fù)載級別上的性能,以保證Web系統(tǒng)在需求范圍內(nèi)能正常工作。負(fù)載測試可以從以下幾個(gè)方面進(jìn)行考慮:①Web系統(tǒng)可以允許多少個(gè)用戶同時(shí)在線;②超出上面所描述的數(shù)量后,系統(tǒng)會發(fā)生什么現(xiàn)象;③Web系統(tǒng)能否處理大量用戶對同一個(gè)頁面的同時(shí)請求。負(fù)載測試應(yīng)該在Web系統(tǒng)發(fā)布后,在實(shí)際的網(wǎng)絡(luò)環(huán)境中進(jìn)行。第2章測試用例(3)壓力測試壓力測試是指系統(tǒng)的限制和故障恢復(fù)能力。是用來測試Web系統(tǒng)會不會崩潰,以及在什么情況下會崩潰。如果系統(tǒng)能承受的壓力不夠大時(shí),黑客會利用系統(tǒng)的這一缺陷提供錯(cuò)誤的數(shù)據(jù)負(fù)載,使Web系統(tǒng)崩潰。壓力測試的范圍包括表單、登錄和信息傳輸?shù)捻撁娴取?.可用性測試(1)導(dǎo)航測試導(dǎo)航描述用戶在一個(gè)頁面內(nèi)的操作方式。Web應(yīng)用系統(tǒng)的用戶趨向于目的驅(qū)動,快速地掃描一個(gè)Web系統(tǒng)有沒有自己需要的或感興趣的信息,如果沒有捕捉到就會很快離開轉(zhuǎn)向別的系統(tǒng)。尤其是在生活快節(jié)奏的今天,很少有用戶愿意花時(shí)間去熟悉Web應(yīng)用系統(tǒng)的結(jié)構(gòu),所以Web應(yīng)用系統(tǒng)導(dǎo)航對用戶的幫助要盡可能地準(zhǔn)確。Web應(yīng)用系統(tǒng)最好在層次決定后就進(jìn)行測試,如果讓最終用戶參加到導(dǎo)航測試中,效果會更加明顯。導(dǎo)航測試可以從以下幾個(gè)方面進(jìn)行考慮:①導(dǎo)航是否直觀;②Web系統(tǒng)的主要部分是否可通過主頁存??;③Web系統(tǒng)是否需要站點(diǎn)地圖、搜索引擎或其他的導(dǎo)航幫助。(2)圖形測試圖形指Web應(yīng)用系統(tǒng)頁面上包括的圖片、動畫、邊框、顏色、字體、背景及按鈕等。一個(gè)Web系統(tǒng)如果使用適當(dāng)?shù)倪@些多媒體信息,可以使頁面增輝不少。圖形測試主要從以下幾個(gè)方面進(jìn)行考慮:①要確保頁面上所使用的圖形有明確的用途,而不是將圖片或動畫胡亂地堆砌在一起,這樣既浪費(fèi)傳輸速度又影響頁面的美觀。②驗(yàn)證所有的頁面風(fēng)格是否一致。③背景顏色和字體顏色及前景顏色是否搭配。第2章測試用例④圖片的大小和質(zhì)量也需要認(rèn)真考慮,一般采用JPG或GIF格式的圖片。(3)內(nèi)容測試內(nèi)容測試是用來檢驗(yàn)Web應(yīng)用系統(tǒng)所提供信息的正確性、準(zhǔn)確性和相關(guān)性。內(nèi)容測試也可以從這三方面入手。①正確性指信息是可靠的還是誤傳的。②準(zhǔn)確性指信息是否有語法或拼寫錯(cuò)誤。③相關(guān)性指是否在當(dāng)前頁面可以找到與當(dāng)前瀏覽信息相關(guān)的信息列表或入口。(4)整體界面測試整體界面指整個(gè)Web應(yīng)用系統(tǒng)整體的的頁面結(jié)構(gòu)設(shè)計(jì)。整體界面測試是調(diào)查用戶對界面的整體風(fēng)格的評價(jià)。一般Web應(yīng)用系統(tǒng)采取在主頁上做問卷調(diào)查的形式進(jìn)行的。這種測試也最好是由最終用戶進(jìn)行真實(shí)參與進(jìn)行。整體界面測試可以從以下幾方面進(jìn)行考慮:①用戶瀏覽Web系統(tǒng)時(shí)是否感覺舒適。②用戶能否憑直覺就知道要找的信息在什么位置。③整個(gè)Web系統(tǒng)的設(shè)計(jì)風(fēng)格是否一致。4.客戶端兼容性測試(1)平臺測試目前市場上有很多種不同類型的操作系統(tǒng),比如Windows、UNIX、Linux、Macintosh等。Web應(yīng)用系統(tǒng)的最終用戶使用哪種類型的操作系統(tǒng),取決于用戶系統(tǒng)的配置。這樣就會引發(fā)兼容性問題,同一個(gè)系統(tǒng)可能在某些操作系統(tǒng)下能正常運(yùn)行,而在另外一些操作系統(tǒng)中運(yùn)行失敗。因此就有必要在Web系統(tǒng)發(fā)布之前對它進(jìn)行平臺測試。平臺測試主要就是測試Web系統(tǒng)能在什么類型的操作系統(tǒng)上正常運(yùn)行,在哪些操作系統(tǒng)中會運(yùn)行失敗。(2)瀏覽器測試Web應(yīng)用系統(tǒng)最核心的構(gòu)件就是瀏覽器,瀏覽器的版本很多,它們對設(shè)計(jì)語言的規(guī)格支持度不同,所以要進(jìn)行瀏覽器的兼容性測試。第2章測試用例瀏覽器測試可以從以下幾個(gè)方面進(jìn)行考慮:①不同廠商的瀏覽器對Java、JavaScript、ActiveX、plug-ins或HTML的支持不同。②框架和層次結(jié)構(gòu)風(fēng)格在不同廠商的瀏覽器中的顯示不同。③不同廠商的瀏覽器對安全性和Java的設(shè)置不同。5.安全性測試安全性測試是為了保證用戶訪問Web應(yīng)用系統(tǒng)的安全性。可以從以下幾個(gè)方面進(jìn)行考慮:(1)現(xiàn)在的Web應(yīng)用系統(tǒng)基本采用先注冊,后登錄的方式。因此,必須測試有效和無效的用戶名和密碼,要注意到是否大小寫敏感,可以試多少次的限制,是否可以不登錄而直接瀏覽某個(gè)頁面等。(2)Web應(yīng)用系統(tǒng)是否有超時(shí)的限制,也就是說,用戶登錄后在一定時(shí)間內(nèi)(例如15分鐘)沒有單擊任何頁面,是否需要重新登錄才能正常使用。(3)為了保證Web應(yīng)用系統(tǒng)的安全性,日志文件是至關(guān)重要的。需要測試相關(guān)信息是否寫進(jìn)了日志文件、是否可追蹤。(4)當(dāng)使用了安全套接字時(shí),還要測試加密是否正確,檢查信息的完整性。(5)服務(wù)器端的腳本常常構(gòu)成安全漏洞,這些漏洞又常常被黑客利用。所以,還要測試沒有經(jīng)過授權(quán),就不能在服務(wù)器端放置和編輯腳本的問題。Web應(yīng)用系統(tǒng)與Windows應(yīng)用系統(tǒng)有相同和不同的地方,讀者可以結(jié)合Web系統(tǒng)測試的介紹比較二者的異同之處,進(jìn)一步學(xué)習(xí)測試知識。四、系統(tǒng)測試如前所述,系統(tǒng)測試種類繁多,最多可達(dá)三十多種。如此紛繁復(fù)雜的測試種類,初學(xué)者肯定會感覺無從著手,表2-21是對測試類型的分析與總結(jié)。第2章測試用例表2-21系統(tǒng)測試設(shè)計(jì)—測試類型分析測試類型測試關(guān)注點(diǎn)完成情況用戶層用戶支持測試用戶手冊、使用幫助、支持客戶的其他產(chǎn)品技術(shù)手冊是否正確、是否易于理解、是否人性化
用戶界面測試測試對象控件或訪問入口正確,符合用戶需求
界面風(fēng)格統(tǒng)一,界面美觀、直觀
操作友好、人性化
易操作性
用戶層可維護(hù)性測試系統(tǒng)軟、硬件實(shí)施和維護(hù)功能的方便性
安全性測試操作安全性(注:核實(shí)只有具備系統(tǒng)和應(yīng)用程序訪問權(quán)限的主角才能訪問系統(tǒng)和應(yīng)用程序;核實(shí)主角只能訪問其所屬用戶類型已被授權(quán)使用的那些功能操作)
數(shù)據(jù)安全性(注:關(guān)注數(shù)據(jù)訪問的安全性,防止交易敏感數(shù)據(jù)不被第三方截獲、竊取、篡改和偽造。測試內(nèi)容為:數(shù)據(jù)加密,安全通信,安全存儲)
網(wǎng)絡(luò)安全測試(注:該層次的測試主要是為了防止黑客的惡意攻擊和破壞,如:病毒,DOS攻擊等。測試的方式主要是模擬黑客對系統(tǒng)進(jìn)行入侵攻擊,然后對攻擊的結(jié)果進(jìn)行分析,并逐步完善系統(tǒng)的安全性能)
安全認(rèn)證測試(注:確保交易雙方不被其他人冒名頂替。測試內(nèi)容為安全認(rèn)證)
安全交易協(xié)議測試(注:有效避免交易雙方出現(xiàn)互相抵賴的情況)
第2章測試用例應(yīng)用層性能測試并發(fā)性能測試(注:并發(fā)用戶操作下,不斷增加并發(fā)用戶數(shù)量,分析系統(tǒng)性能指標(biāo)、資源狀況。主要關(guān)注點(diǎn):交易結(jié)果、每分鐘交易數(shù)、交易響應(yīng)時(shí)間(最小服務(wù)器響應(yīng)時(shí)間、平均服務(wù)器響應(yīng)時(shí)間、最大服務(wù)器響應(yīng)時(shí)間))
壓力測試(注:不斷對系統(tǒng)施壓,通過確定一個(gè)系統(tǒng)的瓶頸或者不能接收的性能點(diǎn),來獲得系統(tǒng)能提供的最大服務(wù)級別的測試)
強(qiáng)度測試(注:系統(tǒng)在極限或異常資源情況下,即系統(tǒng)資源處于特別低的狀況下,軟件系統(tǒng)運(yùn)行情況確定系統(tǒng)綜合交易指標(biāo)和資源監(jiān)控指標(biāo),保證系統(tǒng)能否在規(guī)格強(qiáng)度下運(yùn)行)
測試類型測試關(guān)注點(diǎn)完成情況性能測試負(fù)載測試(注:關(guān)注各種工作負(fù)載情況下的性能指標(biāo),測試當(dāng)負(fù)載逐漸增加到超負(fù)荷狀態(tài)時(shí),系統(tǒng)組成部分的相應(yīng)輸出項(xiàng),例如通過量、響應(yīng)時(shí)間、CPU負(fù)載、內(nèi)存使用等來決定系統(tǒng)的性能)
疲勞測試(注:采用系統(tǒng)穩(wěn)定運(yùn)行情況下能夠支持的最大并發(fā)用戶數(shù),持續(xù)執(zhí)行一段時(shí)間業(yè)務(wù),通過綜合分析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來確定系統(tǒng)處理最大工作量強(qiáng)度性能的過程)
大數(shù)據(jù)量測試(注:針對某些系統(tǒng)存儲、傳輸、統(tǒng)計(jì)、查詢等業(yè)務(wù)分別進(jìn)行大數(shù)據(jù)量測試)
應(yīng)用層性能測試容量測試(注:確定系統(tǒng)可處理同時(shí)在線的最大用戶數(shù))
第2章測試用例性能測試破壞性測試(注:超出系統(tǒng)能承受的壓力點(diǎn)后,系統(tǒng)出現(xiàn)錯(cuò)誤狀態(tài)、出現(xiàn)錯(cuò)誤比率及恢復(fù)能力;對軟件進(jìn)行異常的操作,如:刪除配置文件)
系統(tǒng)可靠性、穩(wěn)定性測試可靠性測試(注:主要測試系統(tǒng)在負(fù)載壓力下系統(tǒng)運(yùn)行是否正常)
穩(wěn)定性測試(注:確保系統(tǒng)在長期使用周期內(nèi)能夠在要求的性能指標(biāo)下正常工作)
系統(tǒng)兼容性測試操作系統(tǒng)兼容性(注:Win9x/Win2k/WinXP/UNIX/Linux……)
瀏覽器兼容性(注:IE4/IE5/IE6/Firefox/MyIE/TT……)
其他支持軟件/平臺/文件/數(shù)據(jù)/接口的兼容性
系統(tǒng)組網(wǎng)測試
系統(tǒng)安裝升級測試初次安裝
更新(注:以前安裝過相同版本)
升級(注:以前安裝過較早版本)
功能層功能性測試初驗(yàn)測試(注:系統(tǒng)核心功能、基本業(yè)務(wù)流程的驗(yàn)證)
業(yè)務(wù)場景測試(注:模擬用戶實(shí)際操作的業(yè)務(wù)場景,遍歷主要業(yè)務(wù)流程和業(yè)務(wù)規(guī)則)
業(yè)務(wù)功能的覆蓋(注:關(guān)注需求規(guī)格定義的所有功能系統(tǒng)是否都已實(shí)現(xiàn))
業(yè)務(wù)功能的分解(注:將每個(gè)功能分解成測試項(xiàng)。關(guān)注每個(gè)測試項(xiàng)的測試類型都被測試通過)
第2章測試用例測試類型測試關(guān)注點(diǎn)完成情況功能性測試業(yè)務(wù)功能的組合(注:相關(guān)聯(lián)的功能項(xiàng)的組合功能都被正確實(shí)現(xiàn))
業(yè)務(wù)功能的沖突(注:業(yè)務(wù)功能間存在的功能沖突情況,均測試通過。例如:共享資源訪問等)
異常處理及容錯(cuò)性(輸入異常數(shù)據(jù)、或執(zhí)行異常操作后,系統(tǒng)容錯(cuò)性及錯(cuò)誤處理機(jī)制的健壯性。例如:重復(fù)單擊“提交”按鈕,提交申請單)
子系統(tǒng)層
單個(gè)子系統(tǒng)的性能(注:應(yīng)用層關(guān)注的是整個(gè)系統(tǒng)各種軟、硬件、接口配合情況下的整體性能,這里關(guān)注單個(gè)系統(tǒng)。)
子系統(tǒng)間的接口瓶頸(例如:子系統(tǒng)間通信請求包的并發(fā)瓶頸)
子系統(tǒng)間的相互影響(注:子系統(tǒng)的工作狀態(tài)變化對其他子系統(tǒng)的影響)
協(xié)議/指標(biāo)層
協(xié)議一致性測試
協(xié)議互通測試
其他測試類型BVT構(gòu)建驗(yàn)證測試
AdhocTest隨機(jī)測試
ExploratoryTest探索性測試
回歸測試
第2章測試用例(一)性能測試性能測試即測試軟件處理事務(wù)的速度,一是為了檢驗(yàn)性能是否符合需求,二是為了得到某些性能數(shù)據(jù)供人們參考(例如用于宣傳)。性能測試類型包括負(fù)載測試、壓力測試和容量測試等。負(fù)載測試是用來測試數(shù)據(jù)在超負(fù)荷環(huán)境中運(yùn)行,程序是否能夠承擔(dān)。強(qiáng)度測試是用來測試在系統(tǒng)資源特別低的情況下,軟件系統(tǒng)的運(yùn)行情況。容量測試是用來確定系統(tǒng)可處理同時(shí)在線的最大用戶數(shù)。性能測試是一項(xiàng)綜合性很強(qiáng)的工作,甚至可以作為一項(xiàng)工程來看待。中國軟件評測中心將性能測試概括為三個(gè)方面:應(yīng)用在客戶端性能的測試、應(yīng)用在網(wǎng)絡(luò)上性能的測試和應(yīng)用在服務(wù)器端性能的測試。通常情況下,三方面有效、合理的結(jié)合,可以達(dá)到對系統(tǒng)性能全面的分析和瓶頸的預(yù)測。林銳博士提出,性能測試的一些注意事項(xiàng):(1)不要試圖讓人拿著鐘表去測時(shí)間,應(yīng)當(dāng)編寫一段程序用于計(jì)算時(shí)間以及相關(guān)數(shù)據(jù)。(2)應(yīng)當(dāng)測試軟件在標(biāo)準(zhǔn)配置和最低配置下的性能。(3)為了排除干擾,應(yīng)當(dāng)關(guān)閉那些消耗內(nèi)存、占用CPU的其他應(yīng)用軟件(如殺毒軟件)。(4)不同的輸入情況會得到不同的性能數(shù)據(jù),應(yīng)當(dāng)分檔記錄。例如傳輸文件的容量從100KB到1MB可以分成若干等級。(5)由于環(huán)境的波動,同一種輸入情況在不同的時(shí)間可能得到不同的性能數(shù)據(jù),可以取其平均值。根據(jù)不同的工程和項(xiàng)目,我們所選用的度量,及評估方法也有不同之處。但一般情況下,完成性能測試項(xiàng)目的可以參考如下的通用步驟:(1)制定目標(biāo)和分析系統(tǒng)(2)選擇測試度量的方法(3)學(xué)習(xí)的相關(guān)技術(shù)和工具(4)制定評估標(biāo)準(zhǔn)(5)設(shè)計(jì)測試用例第2章測試用例(6)運(yùn)行測試用例(7)分析測試結(jié)果要做好一件事情,選擇合適的工具去完成是很重要的。要進(jìn)行性能測試,有很多種工具可供選擇,比如LoadRunner、OpenSTA、MicrosoftWebApplicationStressTool等。MattMaccaux在2005年發(fā)表的著作ApproahestoPerformanceTesting中,描述了使用工具進(jìn)行服務(wù)器負(fù)載測試的結(jié)果描述,如圖2-12所示。選用的測試工具對測試結(jié)果可能會產(chǎn)生很大的影響。假設(shè)測試的兩個(gè)指標(biāo)是服務(wù)器的響應(yīng)時(shí)間和吞吐量,二者都會受到服務(wù)器上的負(fù)載的影響。而服務(wù)器上的負(fù)載又受兩個(gè)因素的影響,同時(shí)與服務(wù)器通信的用戶的數(shù)目以及每個(gè)用戶請求之間的考慮時(shí)間的長短。顯然,與服務(wù)器通信的用戶越多,負(fù)載就越大。同樣,請求之間的考慮時(shí)間越短,負(fù)載也越大。這兩個(gè)因素的不同組合會產(chǎn)生不同等級的服務(wù)器負(fù)載。如圖2-12所示,隨著服務(wù)器上負(fù)載的增加,吞吐量也會隨之上升,并以穩(wěn)定的速度增長,直到達(dá)到一定高度后,在某一個(gè)點(diǎn)上穩(wěn)定下來。如果這個(gè)時(shí)候服務(wù)器上的負(fù)載再增加,則吞吐量會急速地下降。圖2-10隨著負(fù)載的增加,系統(tǒng)吞吐量的曲線(單位:頁面/秒)第2章測試用例(二)鏈接測試什么是鏈接呢?鏈接是Web應(yīng)用系統(tǒng)的一個(gè)主要特征,它是在頁面之間切換和指導(dǎo)用戶去一些不知道地址的頁面的主要手段。鏈接測試就是從待測的項(xiàng)目根目錄開始,對所有頁面中的超鏈接、圖片、頁面內(nèi)部鏈接等所有的鏈接進(jìn)行測試,測試鏈接是否正確鏈接到指定的頁面,這種情況下,測試工具或程序是無法判斷的,所以需要人工進(jìn)行推測所鏈接的頁面是否正確。如果網(wǎng)站內(nèi)文件不存在、指定文件鏈接不存在、指定頁面不存在或者存在孤立頁面,則要將該鏈接具體位置及測試結(jié)果記錄下來,一直到所有鏈接測試都結(jié)束,并寫出測試報(bào)告。鏈接測試的工具也有很多,比如XenuLinkSleuth、HTMLLinkValidator、WebLinkValidat等等。每種工具都有優(yōu)劣,在實(shí)際項(xiàng)目測試過程中可以取其優(yōu)避其劣靈活運(yùn)用??傊溄訙y試是在集成測試階段進(jìn)行的,即整個(gè)應(yīng)用系統(tǒng)的所有頁面完成之后進(jìn)行。鏈接測試技術(shù)含量不是太高,但卻非常重要。一個(gè)軟件如果出現(xiàn)鏈接錯(cuò)誤,其可用性會大打折扣。(三)導(dǎo)航測試導(dǎo)航描述用戶在一個(gè)頁面內(nèi)操作的方式。導(dǎo)航測試可以從以下幾個(gè)問題進(jìn)行考慮:導(dǎo)航是否直觀?系統(tǒng)的主要部分是否可通過主頁存???是否需要站點(diǎn)地圖、搜索引擎或其他的導(dǎo)航幫助?頁面結(jié)構(gòu)、菜單、鏈接的風(fēng)格是否一致?用戶憑直覺是否能知道系統(tǒng)里面的內(nèi)容在什么地方?其實(shí)導(dǎo)航就是為了讓用戶知道自己在哪兒,這是什么以及可以去哪兒。那么按以下幾個(gè)步驟可以測試頁面的導(dǎo)航能力。(1)從網(wǎng)站上隨機(jī)選擇一個(gè)頁面;(2)把這個(gè)頁面打印成黑白的,并把頁面頭部的瀏覽器地址欄和下面的版權(quán)及公司信息部分去掉;(3)假裝是第一次進(jìn)入這個(gè)網(wǎng)站,并試圖回答在哪兒、是什么以及可以去哪兒等問題;(4)在一張紙上寫下你所想的和答案。這樣就可以測試出網(wǎng)站上哪些導(dǎo)航是不合理的。第2章測試用例(四)界面測試用戶界面測試(UserInterfaceTesting,又稱UI測試)指測試軟件中的可見外觀及其底層與用戶交互的部分(菜單、對話框、窗口及其他控件)。俗話說“人靠衣裳馬靠鞍”,良好的外觀往往能夠吸引眼球,激發(fā)顧客(用戶)的購買欲望,最終達(dá)成商業(yè)利益的實(shí)現(xiàn)。軟件的設(shè)計(jì)亦如此,WindowsXP在商業(yè)上的巨大成功很大一方面來自于它一改往日呆板,以突出“應(yīng)用”的灰色界面,從“用戶體驗(yàn)”角度來設(shè)計(jì)界面,使界面具有較大的親和力。就目前的軟件設(shè)計(jì)的發(fā)展趨勢來說,良好的人機(jī)界面設(shè)計(jì)越來越受到系統(tǒng)分析、設(shè)計(jì)人員的重視。在軟件界面設(shè)計(jì)強(qiáng)調(diào)張揚(yáng)個(gè)性的同時(shí),我們不能忘記軟件界面的設(shè)計(jì)要講求規(guī)矩、簡潔、一致、易用,這是一切軟件界面設(shè)計(jì)和測試的必循之道,是軟件人機(jī)界面在突出自我時(shí)的群體定位。美觀、規(guī)整的軟件人機(jī)界面破除新用戶對軟件的生疏感,使老用戶更易于上手、充分重用已有使用經(jīng)驗(yàn),并盡量少犯錯(cuò)誤。由此我們在對軟件人機(jī)界面進(jìn)行測試時(shí)(設(shè)計(jì)評審階段和系統(tǒng)測試階段結(jié)合進(jìn)行),一定要著重考慮界面的美觀度。用戶界面測試是指測試用戶界面的風(fēng)格是否滿足客戶要求,文字是否正確,頁面是否美觀,文字、圖片組合是否完美,操作是否友好等等。UI測試的目標(biāo)是確保用戶界面會通過測試對象的功能來為用戶提供相應(yīng)的訪問或?yàn)g覽功能,確保用戶界面符合公司或行業(yè)的標(biāo)準(zhǔn),包括用戶友好性、人性化、易操作性測試。下面將界面的一致性測試、信息反饋測試、界面簡潔性測試、界面美觀度測試、用戶動作測試及行業(yè)標(biāo)準(zhǔn)測試需要考慮的角度列舉出來一些,可供讀者在界面測試中參考。1.一致性測試一致性是軟件人機(jī)界面的一個(gè)基本要求。目的是使用戶在使用時(shí),能夠很快熟悉軟件的操作環(huán)境,同時(shí)避免對軟件操作發(fā)生理解歧義。這就要求在進(jìn)行測試時(shí),需要判斷軟件的人機(jī)界面是否可以作為一個(gè)整體而存在。一致性測試需要考慮:(1)提示的格式是否一致;(2)菜單的格式是否一致;(3)幫助的格式是否一致;第2章測試用例(4)提示、菜單、幫助中的術(shù)語是否一致;(5)各個(gè)控件之間的對齊方式是否一致;(6)輸入界面和輸出界面在外觀、布局、交互方式上是否一致;(7)命令語言的語法是否一致;(8)功能類似的相關(guān)界面在外觀、布局、交互方式上是否一致(比如商品代碼檢索和商品名稱檢索);(9)存在同一產(chǎn)品族的時(shí)候,與其他產(chǎn)品在外觀、布局、交互方式上是否一致(例如Office產(chǎn)品族);(10)同一層次的文字在同一種提示場合(一般情況、凸顯、警告等)在文字大小、字體、顏色、對齊方式方面是否一致;(11)多個(gè)連續(xù)界面依次出現(xiàn)的情況下,界面的外觀、操作方式是否一致(當(dāng)然可能會有例外,比如操作結(jié)束的界面)。2.信息反饋測試系統(tǒng)的使用者或許是一個(gè)新手,在操作時(shí)難免出錯(cuò),如果界面有友好的輸入檢查和錯(cuò)誤提示功能,那么通過這些信息反饋,用戶得到出錯(cuò)提示或任務(wù)完成之類的語言,會感覺界面比較親切而且容易掌握。信息反饋測試時(shí)可從以下角度考慮:(1)系統(tǒng)是否接受客戶
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版司機(jī)雇傭車輛運(yùn)營維護(hù)與安全保障合同3篇
- 2025年度路燈照明設(shè)施租賃與能源管理服務(wù)協(xié)議4篇
- 家園合作商業(yè)模式促進(jìn)幼兒語言發(fā)展
- 河南南陽摩根廣場2025年度GRG工程進(jìn)度監(jiān)控合同2篇
- 社交媒體對安全產(chǎn)品銷售價(jià)格的影響力分析
- 二零二五版房企論壇籌備與執(zhí)行全權(quán)委托合同3篇
- 二零二五年度網(wǎng)絡(luò)智能設(shè)備銷售及售后服務(wù)保障協(xié)議3篇
- 2025年度時(shí)尚美甲店品牌形象改造與勞務(wù)承包合作協(xié)議4篇
- 二零二五年度大米包裝設(shè)計(jì)及印刷服務(wù)合同2025年度4篇
- 2025版全球高端寵物寄養(yǎng)及健康管理服務(wù)協(xié)議3篇
- 《阻燃材料與技術(shù)》-顏龍 習(xí)題解答
- 2024-2030年中國食品飲料灌裝設(shè)備行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報(bào)告
- 建筑結(jié)構(gòu)課程設(shè)計(jì)成果
- 纖維增強(qiáng)復(fù)合材料 單向增強(qiáng)材料Ⅰ型-Ⅱ 型混合層間斷裂韌性的測定 編制說明
- 習(xí)近平法治思想概論教學(xué)課件緒論
- 寵物會展策劃設(shè)計(jì)方案
- 孤殘兒童護(hù)理員(四級)試題
- 醫(yī)院急診醫(yī)學(xué)小講課課件:急診呼吸衰竭的處理
- 腸梗阻導(dǎo)管在臨床中的使用及護(hù)理課件
- 小學(xué)英語單詞匯總大全打印
- 衛(wèi)生健康系統(tǒng)安全生產(chǎn)隱患全面排查
評論
0/150
提交評論