第一篇:可復(fù)用測(cè)試用例研究
可復(fù)用測(cè)試用例研究
0、引言
軟件測(cè)試的關(guān)鍵環(huán)節(jié)是設(shè)計(jì)和執(zhí)行測(cè)試用例。測(cè)試用例的質(zhì)量與測(cè)試人員的技能、經(jīng)驗(yàn)以及對(duì)被測(cè)軟件的理解密切相關(guān)。如果測(cè)試人員對(duì)被測(cè)軟件不甚了解,很難在短時(shí)間內(nèi)設(shè)計(jì)出有效的測(cè)試用例;有的測(cè)試用例雖然面面俱到,但冗余現(xiàn)象嚴(yán)重,浪費(fèi)時(shí)間、人力和物力。
隨著軟件復(fù)用技術(shù)的發(fā)展,測(cè)試復(fù)用引起了人們的極大關(guān)注,特別是對(duì)測(cè)試用例復(fù)用的研究。所謂測(cè)試用例復(fù)用,就是對(duì)一個(gè)軟件的已執(zhí)行的測(cè)試用例,將其不同程度地應(yīng)用于該軟件新的測(cè)試中或其他軟件的測(cè)試中。測(cè)試用例復(fù)用是可行和必要的,表現(xiàn)在:1)軟件測(cè)試對(duì)測(cè)試人員的經(jīng)驗(yàn)和技能要求高,通過(guò)復(fù)用,可提高測(cè)試人員技能,解決其經(jīng)驗(yàn)不足的問(wèn)題,同時(shí)提高軟件測(cè)試質(zhì)量;2)軟件測(cè)試是當(dāng)前保證軟件質(zhì)量的一種有效手段,但其占用軟件開(kāi)發(fā)周期時(shí)間長(zhǎng),通過(guò)復(fù)用,可避免大量重復(fù)性勞動(dòng),縮短測(cè)試周期,提高效率;3)伴隨著同一個(gè)軟件的生存周期,軟件經(jīng)歷了單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試和系統(tǒng)測(cè)試,這一過(guò)程產(chǎn)生了成百上千的經(jīng)過(guò)執(zhí)行確認(rèn)的高質(zhì)量的測(cè)試用例,在前一測(cè)試階段執(zhí)行過(guò)的一些測(cè)試用例可在后續(xù)測(cè)試階段中使用,包括在回歸測(cè)試、維護(hù)階段的版本升級(jí)和糾錯(cuò)測(cè)試中都可使用;4)同一領(lǐng)域或相同系統(tǒng)架構(gòu)的不同軟件,存在著測(cè)試用例復(fù)用的可能性,且隨著軟件復(fù)用技術(shù)的發(fā)展,很多有價(jià)值的組件可供使用,這也使測(cè)試用例復(fù)用成為可能。
由于軟件的抽象性、復(fù)雜性和多樣性,使得軟件測(cè)試成為一項(xiàng)復(fù)雜的、需要智慧和創(chuàng)造性的工作,要實(shí)現(xiàn)測(cè)試用例復(fù)用并不是一件簡(jiǎn)單的事情。但測(cè)試用例復(fù)用是軟件測(cè)試發(fā)展的一個(gè)必然趨勢(shì)。本文從可復(fù)用測(cè)試用例的評(píng)估、描述、設(shè)計(jì)和使用四個(gè)方面對(duì)測(cè)試用例進(jìn)行了系統(tǒng)研究,提出了可復(fù)用測(cè)試用例應(yīng)具有的特性,為評(píng)估測(cè)試用例的可復(fù)用性提供準(zhǔn)則;給出了可復(fù)用測(cè)試用例的系統(tǒng)描述要素,為規(guī)范和使用可復(fù)用測(cè)試用例提供了基礎(chǔ);提出了面向復(fù)用的測(cè)試用例設(shè)計(jì)過(guò)程和基于復(fù)用的軟件測(cè)試模型,為測(cè)試用例復(fù)用提供了方法和實(shí)現(xiàn)策略。本文的研究?jī)?nèi)容在某類實(shí)時(shí)系統(tǒng)軟件測(cè)試中進(jìn)行了應(yīng)用,證明是有效和科學(xué)的。
1、可復(fù)用測(cè)試用例特性
文獻(xiàn)中定義了可復(fù)用測(cè)試用例的六個(gè)特性:通用性、簡(jiǎn)潔性、獨(dú)立性、有效性、靈活性和檢索方便。本文對(duì)大量測(cè)試用例和測(cè)試用例復(fù)用的各種應(yīng)用情況進(jìn)行了分析,認(rèn)為可復(fù)用測(cè)試用例應(yīng)具有以下特性:通用性、有效性、獨(dú)立性、標(biāo)準(zhǔn)化和完整性,它們對(duì)可復(fù)用測(cè)試用例而言是充分的也是必要的。上述特性可作為評(píng)判一個(gè)測(cè)試用例是否具有可復(fù)用性的準(zhǔn)則。
1)通用性。通用性是指可復(fù)用測(cè)試用例并不局限于具體的應(yīng)用,不過(guò)分依賴于被測(cè)軟件的需求、設(shè)計(jì)和環(huán)境,能夠在某一類型、某一領(lǐng)域的相似軟件的測(cè)試中廣泛使用。
當(dāng)前絕大多數(shù)的測(cè)試用例都不具有通用性,這樣的測(cè)試用例只能用于被測(cè)軟件和其當(dāng)前環(huán)境,不可能用到其他軟件中。
2)有效性。測(cè)試用例的目標(biāo)是發(fā)現(xiàn)軟件問(wèn)題,因此,可復(fù)用測(cè)試用例也必須是能夠發(fā)現(xiàn)軟件問(wèn)題的,并且是可靠和高效的。
3)獨(dú)立性??蓮?fù)用測(cè)試用例的獨(dú)立性是指,對(duì)于測(cè)試需求R1和R2,測(cè)試用例集分別為cl和C2,c1和c2的交集為空,并且,每個(gè)可復(fù)用測(cè)試用例能夠獨(dú)立運(yùn)行。測(cè)試用例是否具有獨(dú)立性,決定了測(cè)試用例可復(fù)用能力的強(qiáng)弱。
如果測(cè)試用例之間存在著相互聯(lián)系,或測(cè)試用例的運(yùn)行環(huán)境取決于其他測(cè)試用例的執(zhí)行狀態(tài),那么,其中的測(cè)試用例不能復(fù)用時(shí),與之相關(guān)的測(cè)試用例的可復(fù)用性也不復(fù)存在。
如何將測(cè)試用例的關(guān)聯(lián)性降至最低,是設(shè)計(jì)可復(fù)用測(cè)試用例必須解決的問(wèn)題。首先,每個(gè)測(cè)試用例的目標(biāo)應(yīng)盡量獨(dú)立、單一;其次,測(cè)試用例不包含過(guò)多的具體實(shí)現(xiàn)細(xì)節(jié)。
4)標(biāo)準(zhǔn)化。測(cè)試用例通常用自然語(yǔ)言來(lái)描述,充分體現(xiàn)了測(cè)試人員的創(chuàng)造性和個(gè)人風(fēng)格。但對(duì)于可復(fù)用測(cè)試用例,太多的個(gè)人風(fēng)格不利于其他測(cè)試人員對(duì)測(cè)試用例的理解,必然影響其復(fù)用。因此可復(fù)用測(cè)試用例的標(biāo)準(zhǔn)化程度也反映了其易理解和可復(fù)用的能力。為此可復(fù)用測(cè)試用例應(yīng)遵循統(tǒng)一或規(guī)范的格式或結(jié)構(gòu),規(guī)范的命名規(guī)則,使用術(shù)語(yǔ)、用簡(jiǎn)明、易懂、無(wú)歧義的語(yǔ)言來(lái)描述,并且具有詳細(xì)的文檔。
5)完整性。每個(gè)可復(fù)用測(cè)試用例應(yīng)包括全部應(yīng)有的要素,不能有缺失,并且每個(gè)要素的描述是充分的。文獻(xiàn)規(guī)定了測(cè)試用例應(yīng)包括的要素,但對(duì)于可復(fù)用測(cè)試用例而言是不夠的,應(yīng)加以補(bǔ)充。
2、面向復(fù)用的測(cè)試用例設(shè)計(jì)過(guò)程
當(dāng)前,測(cè)試用例設(shè)計(jì)都砥向不同的具體應(yīng)用,與被測(cè)軟件是緊耦合的??紤]到復(fù)用的目的,測(cè)試用例的設(shè)計(jì)應(yīng)不同于以往。本文提出了面向復(fù)用的測(cè)試用例設(shè)計(jì)過(guò)程,給出了設(shè)計(jì)過(guò)程中應(yīng)實(shí)施的各項(xiàng)活動(dòng),主要包括被測(cè)軟件(系統(tǒng))共性分析、測(cè)試策略分析、設(shè)計(jì)測(cè)試用例、測(cè)試用例評(píng)審、測(cè)試用例執(zhí)行和修改、測(cè)試用例入庫(kù)共六個(gè)步驟,如圖l所示。該過(guò)程對(duì)現(xiàn)有測(cè)試用例的復(fù)用處理也是適用的。
2.1共性分析
同一領(lǐng)域或相同架構(gòu)的軟件存在著共性需求。通過(guò)共性分析或領(lǐng)域分析,并結(jié)合任務(wù)分析等方法,梳理出被測(cè)軟件所屬領(lǐng)域或相同類型軟件的相同或相似特征及需求,例如,工作流程、共性場(chǎng)景、功能、性能等,從而挖掘出可復(fù)用點(diǎn),例如,相對(duì)獨(dú)立且類似的功能、相同的構(gòu)件、相似的業(yè)務(wù)流程。該步驟實(shí)質(zhì)上要抽象出被測(cè)軟件應(yīng)用領(lǐng)域的概念,類似于設(shè)計(jì)模式中的共性分析。
這項(xiàng)活動(dòng)需要領(lǐng)域?qū)<?、軟件專家、設(shè)計(jì)人員、測(cè)試專家等人員參與。
2.2 測(cè)試策略分析
針對(duì)共性分析挖掘出的可復(fù)用點(diǎn),分析各復(fù)用點(diǎn)的測(cè)試策略,包括測(cè)試類型、測(cè)試方法、測(cè)試環(huán)境、測(cè)試覆蓋率等內(nèi)容。
2.3 設(shè)計(jì)測(cè)試用例
根據(jù)前兩個(gè)步驟的分析結(jié)果對(duì)每個(gè)可復(fù)用點(diǎn)設(shè)計(jì)測(cè)試用例。在設(shè)計(jì)時(shí),應(yīng)使所設(shè)計(jì)的測(cè)試用例滿足可復(fù)用測(cè)試用例的特性,特別要注意以下幾方面:
1)每個(gè)測(cè)試用例的目的要盡量獨(dú)立、單一,以滿足可復(fù)用測(cè)試用例獨(dú)立性的要求。
2)對(duì)一項(xiàng)明確的測(cè)試需求,應(yīng)關(guān)注“測(cè)試思想”,即測(cè)試思路,以滿足可復(fù)用測(cè)試用例通用性要求。當(dāng)前,為了使測(cè)試用例是可操作的、可復(fù)現(xiàn)的,一般都要求測(cè)試用例要設(shè)計(jì)得非常詳細(xì),例如,每一操作步驟的輸入數(shù)據(jù)、操作等信息都要具體描述。這樣的測(cè)試用例和被測(cè)軟件是緊耦合的,只有在同一軟件的回歸測(cè)試和版本升級(jí)維護(hù)測(cè)試中可能會(huì)復(fù)用到,在其他情況下復(fù)用是很困難的。在設(shè)計(jì)可復(fù)用測(cè)試用例時(shí),測(cè)試用例的可操作性、可復(fù)現(xiàn)性要弱化,即,對(duì)測(cè)試用例進(jìn)行通用化處理,排除和特定應(yīng)用相關(guān)的具體信息,以降低測(cè)試用例和被測(cè)軟件的相關(guān)度,例如,參數(shù)化或公式來(lái)代替具體的輸入數(shù)據(jù),抽象出共同或關(guān)鍵的操作等。但為了加強(qiáng)測(cè)試用例的可操作性和可復(fù)現(xiàn)性,在設(shè)計(jì)可復(fù)用測(cè)試用例時(shí),應(yīng)對(duì)一些差異之處進(jìn)行預(yù)測(cè),即進(jìn)行可變性分析mJ,并用適當(dāng)?shù)姆绞矫枋龀鰜?lái)。只有這樣,當(dāng)復(fù)用該測(cè)試用例時(shí),測(cè)試人員可以在原有基礎(chǔ)上對(duì)其進(jìn)行完善,使其能夠滿足特定的測(cè)試情況。
3)將設(shè)計(jì)出的測(cè)試用例用規(guī)范而精煉的自然語(yǔ)言清晰地描述出來(lái),保證其完整、標(biāo)準(zhǔn)。軟件評(píng)測(cè)組織或機(jī)構(gòu)應(yīng)定義本組織使用的規(guī)范和術(shù)語(yǔ)。
需要說(shuō)明的是,對(duì)于一個(gè)具體的測(cè)試項(xiàng)目,因?yàn)槊嫦驈?fù)用,所以以上所設(shè)計(jì)的測(cè)試用例可能不完全滿足被測(cè)軟件的測(cè)試需求,為此,應(yīng)針對(duì)被測(cè)軟件的需求補(bǔ)充新的用例或?qū)ΜF(xiàn)有用例進(jìn)行充實(shí)完善。
2.4 測(cè)試用例評(píng)審
可復(fù)用測(cè)試用例設(shè)計(jì)完成后,組織領(lǐng)域?qū)<?、軟件專家、測(cè)試專家、軟件設(shè)計(jì)人員對(duì)其進(jìn)行評(píng)審,確保所設(shè)計(jì)的測(cè)試用例是正確的,滿足可復(fù)用測(cè)試用例的特性。
評(píng)審?fù)瑫r(shí)應(yīng)關(guān)注以下幾點(diǎn):每個(gè)共性需求的測(cè)試策略是否合適;每個(gè)共性需求是否被可復(fù)用測(cè)試用例所覆蓋;每個(gè)共性需求是否被可復(fù)用測(cè)試用例進(jìn)行了充分測(cè)試,例如,某一共性功能,不能僅測(cè)試正常情況,還應(yīng)測(cè)試邊界和異常情況。如果測(cè)試用例沒(méi)有通過(guò)評(píng)審,則需要重新回到設(shè)計(jì)測(cè)試用例步驟。
2.5 測(cè)試用例執(zhí)行和修改
將通過(guò)評(píng)審確認(rèn)的測(cè)試用例用于被測(cè)軟件,尋找其不正確或不完善之處并糾正完善。
2.6 測(cè)試用例入庫(kù)
將經(jīng)過(guò)測(cè)試執(zhí)行確認(rèn)的可復(fù)用測(cè)試用例統(tǒng)一納入測(cè)試用例庫(kù)中,供測(cè)試人員在后續(xù)軟件測(cè)試或以后的項(xiàng)目中查詢使用。測(cè)試用例庫(kù)應(yīng)是按照一定的組織結(jié)構(gòu)形成的測(cè)試用例集合。
3、基于復(fù)用的軟件測(cè)試模型
文獻(xiàn)給出了一個(gè)測(cè)試用例復(fù)用流程:首先定義被測(cè)軟件的測(cè)試用例類型;再根據(jù)所定義的從測(cè)試用例庫(kù)中檢索是否有適合的用例;如果可以找到,則提取出測(cè)試用例,程序結(jié)束;否則,需要設(shè)計(jì)測(cè)試用例,驗(yàn)證其正確性,如果正確,則添加到庫(kù)中以便再次復(fù)用,程序結(jié)束。這個(gè)流程只適用于完全不需要進(jìn)一步完善的可復(fù)用的測(cè)試用例,由于可復(fù)用測(cè)試用例的通用性,該流程顯然不適用于實(shí)際情況。文獻(xiàn)[12]給出了另一個(gè)測(cè)試用例復(fù)用模型,該模型建立在沒(méi)有測(cè)試用例庫(kù)的基礎(chǔ)上,且將測(cè)試用例分為內(nèi)外兩類,本文認(rèn)為這種劃分是不必要的。
本文提出了基于復(fù)用的軟件測(cè)試模型。該模型面向一個(gè)軟件測(cè)試項(xiàng)目,但不同于以往的測(cè)試模型,主要表現(xiàn)在模型中融合了面向復(fù)用的測(cè)試用例設(shè)計(jì)以及對(duì)測(cè)試用例的復(fù)用上,模型如圖2所示。
“測(cè)試需求分析和共性分析”中,測(cè)試人員一方面要根據(jù)被測(cè)試軟件需求分析、設(shè)計(jì)說(shuō)明等文檔或軟件代碼梳理出被測(cè)軟件的測(cè)試需求,另一方面要針對(duì)被測(cè)軟件所屬領(lǐng)域及軟件類型進(jìn)行面向復(fù)用的共性分析。
“定義測(cè)試策略”中,測(cè)試人員根據(jù)測(cè)試目標(biāo)和上一步的結(jié)果定義測(cè)試策略,包括測(cè)試方法、測(cè)試類型、測(cè)試環(huán)境等內(nèi)容。
“定義測(cè)試用例”中,測(cè)試人員根據(jù)測(cè)試需求和共性分析結(jié)果及所定義的測(cè)試策略,定義所需要的測(cè)試用例。這里定義的測(cè)試用例只是給出一個(gè)測(cè)試用例名稱及其測(cè)試目的。
“查詢可復(fù)用測(cè)試用例庫(kù)”中,測(cè)試人員用多字段檢索功能從可復(fù)用測(cè)試用例庫(kù)中查找滿足要求的測(cè)試用例。對(duì)測(cè)試用例的查詢是不確定的,查詢結(jié)果通常是一個(gè)相似的測(cè)試用例集合。如果可以找到,則“提取測(cè)試用例”并對(duì)其進(jìn)行分析,確定出最合適的測(cè)試用例;如果沒(méi)有,則“設(shè)計(jì)”新的測(cè)試用例。找到的測(cè)試用例,往往因其通用性,并不能完全滿足測(cè)試需求,要對(duì)其“補(bǔ)充完善”。在設(shè)計(jì)新的測(cè)試用例時(shí),要考慮到上節(jié)“設(shè)計(jì)測(cè)試用例”要求。
在傳統(tǒng)模型評(píng)審的基礎(chǔ)上,本模型“測(cè)試評(píng)審”還包括對(duì)新設(shè)計(jì)的可復(fù)用測(cè)試用例是否滿足要求的審查;對(duì)復(fù)用的測(cè)試用例是否補(bǔ)充完善的審查;所有測(cè)試用例是否滿足被測(cè)軟件的測(cè)試需求的審查。
“執(zhí)行測(cè)試用例”中,測(cè)試人員將所設(shè)計(jì)的測(cè)試用例逐用例逐步驟地執(zhí)行。在執(zhí)行過(guò)程中,認(rèn)真觀察并詳實(shí)地記錄測(cè)試過(guò)程、測(cè)試結(jié)果和發(fā)現(xiàn)的錯(cuò)誤,形成測(cè)試記錄。如果在執(zhí)行過(guò)程中發(fā)現(xiàn)測(cè)試用例有不正確和不完善之處,則糾正;如果測(cè)試用例不充分,則補(bǔ)充。
測(cè)試人員在“測(cè)試總結(jié)”中對(duì)所有測(cè)試結(jié)果進(jìn)行分析總結(jié),將通過(guò)測(cè)試執(zhí)行驗(yàn)證的可復(fù)用測(cè)試用例放入可復(fù)用測(cè)試用例庫(kù)中,以便后續(xù)復(fù)用。
該模型的優(yōu)點(diǎn)為:1)對(duì)已有的可復(fù)用的測(cè)試用例進(jìn)行了復(fù)用,避免了大量的重復(fù)性工作,提高了測(cè)試質(zhì)量和效率;2)考慮了面向復(fù)用的測(cè)試用例設(shè)計(jì),避免再次產(chǎn)生大量的不可復(fù)用的測(cè)試用例。
4、可復(fù)用測(cè)試用例描述要素
測(cè)試用例的輸入、操作、預(yù)期結(jié)果和評(píng)估標(biāo)準(zhǔn)、前提條件是測(cè)試用例不可少的要素,但對(duì)于可復(fù)用測(cè)試用例而言,這是不夠的。本文在文獻(xiàn)規(guī)定的測(cè)試用例要素基礎(chǔ)上,增加了新的內(nèi)容。從而從多個(gè)角度完整地對(duì)可復(fù)用測(cè)試用例進(jìn)行了描述,為可復(fù)用測(cè)試用例的標(biāo)準(zhǔn)化提供了模板,為建立可復(fù)用測(cè)試用例庫(kù)并對(duì)測(cè)試用例實(shí)施有效管理提供了基礎(chǔ),也為測(cè)試用例檢索提供了多個(gè)檢索字段。
1)測(cè)試用例名稱:名稱能清晰且簡(jiǎn)潔地表達(dá)測(cè)試用例的功能。
2)ID:該ID在數(shù)據(jù)庫(kù)中是唯一的。
3)版本號(hào):用于測(cè)試用例的版本管理,每個(gè)測(cè)試用例應(yīng)按照定義的規(guī)則設(shè)定一個(gè)版本號(hào)。
4)測(cè)試需求:對(duì)要驗(yàn)證的測(cè)試需求的描述和測(cè)試要求,例如,功能、性能等。
5)測(cè)試階段:被測(cè)軟件所處的測(cè)試階段,包括單元測(cè)試、部件測(cè)試、配置項(xiàng)測(cè)試、系統(tǒng)測(cè)試,或者單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試。
6)測(cè)試方法:黑盒測(cè)試中的等價(jià)類劃分、因果圖,白盒測(cè)試中的語(yǔ)句覆蓋、分支覆蓋等。
7)測(cè)試類型:有功能測(cè)試、性能測(cè)試、安全測(cè)試、用戶界面測(cè)試、接口測(cè)試、安裝測(cè)試等,可選擇多項(xiàng)。
8)應(yīng)用領(lǐng)域:說(shuō)明被測(cè)軟件所屬領(lǐng)域。
9)系統(tǒng)類型:描述被測(cè)軟件所在系統(tǒng)的架構(gòu),如B/S、C/S、嵌入式軟件、非嵌入式軟件等。
lO)軟件編碼:描述被測(cè)軟件的編碼語(yǔ)言。
11)測(cè)試環(huán)境:描述該測(cè)試用例執(zhí)行的軟硬件環(huán)境。
12)前提條件:測(cè)試用例執(zhí)行前必須滿足的條件,或稱之為約束條件。
13)測(cè)試輸入:對(duì)輸入值的抽象描述或參數(shù)化描述,不能是具體的數(shù)據(jù)值。
14)操作步驟:說(shuō)明執(zhí)行該測(cè)試用例的一系列相關(guān)聯(lián)的操作。
15)預(yù)期結(jié)果:說(shuō)明測(cè)試用例執(zhí)行后的期望結(jié)果。每一操作步驟也可有自己的預(yù)期結(jié)果。
16)評(píng)估標(biāo)準(zhǔn):描述評(píng)判測(cè)試用例執(zhí)行中產(chǎn)生的中間和最后結(jié)果是否正確的準(zhǔn)則。
17)附件:對(duì)測(cè)試用例附加的一些描述信息,可任意表示,例如文本、圖像、模型、與測(cè)試用例有關(guān)的一些文檔,方便測(cè)試人員進(jìn)一步理解測(cè)試用例。
上述要素對(duì)可復(fù)用測(cè)試用例而言是必要的,不可缺少。而且要注意的是,測(cè)試人員在描述測(cè)試用例各要素時(shí),應(yīng)盡可能地使用規(guī)范語(yǔ)言和術(shù)語(yǔ),以使測(cè)試用例規(guī)范化和易于理解。
5、應(yīng)用
本文的研究?jī)?nèi)容在航天測(cè)控領(lǐng)域進(jìn)行了應(yīng)用。在航天測(cè)控計(jì)算機(jī)系統(tǒng)中,有一類實(shí)時(shí)系統(tǒng)軟件。在不同型號(hào)任務(wù)中,該類軟件的功能、性能、接口和運(yùn)行環(huán)境都有區(qū)別,但不同任務(wù)對(duì)該類軟件有共性需求。更多細(xì)節(jié)信息的子帶圖像予以了更多地保留,恢復(fù)了圖像的邊緣輪廓,而且經(jīng)圖像分解后的子帶圖像含有相同尺寸的大小,也更易于處理。本文算法的缺陷則是執(zhí)行速度較慢,不如前三種算法,而且對(duì)分解后所得到系數(shù)處理也比較簡(jiǎn)單,這些都需作進(jìn)一步的改進(jìn)。
第二篇:自動(dòng)售貨機(jī)測(cè)試用例
題目:有一個(gè)處理單價(jià)為5角錢(qián)的飲料的自動(dòng)售貨機(jī)軟件測(cè)試用例的設(shè)計(jì)。其規(guī)格說(shuō)明如下:若投入5角錢(qián)或1元錢(qián)的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應(yīng)的飲料就送出來(lái)。若售貨機(jī)沒(méi)有零錢(qián)找,則一個(gè)顯示〖零錢(qián)找完〗的紅燈亮,這時(shí)在投入1元硬幣并押下按鈕后,飲料不送出來(lái)而且1元硬幣也退出來(lái);若有零錢(qián)找,則顯示〖零錢(qián)找完〗的紅燈滅,在送出飲料的同時(shí)退還5角硬幣。1.分析這一段說(shuō)明,列出原因和結(jié)果 原因:
1.售貨機(jī)有零錢(qián)找 2.投入1元硬幣 3.投入5角硬幣
4.押下橙汁按鈕 5.押下啤酒按鈕
結(jié)果:
21.售貨機(jī)〖零錢(qián)找完〗燈亮
22.退還1元硬幣
23.退還5角硬幣
24.送出橙汁飲料 25.送出啤酒飲料 2.畫(huà)出因果圖
如圖所示。所有原因結(jié)點(diǎn)列在左邊,所有結(jié)果結(jié)點(diǎn)列在右邊。建立中間結(jié)點(diǎn),表示處理的中間狀態(tài)。中間結(jié)點(diǎn):
11.投入1元硬幣且押下飲料按鈕 12.押下〖橙汁〗或〖啤酒〗的按鈕 13.應(yīng)當(dāng)找5角零錢(qián)并且售貨機(jī)有零錢(qián)找 14.錢(qián)已付清
3.轉(zhuǎn)換成判定表:
4.設(shè)計(jì)測(cè)試用例
1)在售貨機(jī)有零錢(qián)找的情況下,投入1元硬幣,押下橙汁按鈕,找回5角硬幣并送出橙汁飲料。
2)在售貨機(jī)有零錢(qián)找的情況下,投入1元硬幣,押下啤酒按鈕,找回5角硬幣并送出啤酒飲料。
3)在售貨機(jī)有零錢(qián)找的情況下,投入1元硬幣,系統(tǒng)不做任何處理。
4)在售貨機(jī)有零錢(qián)找的情況下,投入5角硬幣,押下橙汁按鈕,送出橙汁飲料。5)在售貨機(jī)有零錢(qián)找的情況下,投入5角硬幣,押下啤酒按鈕,送出啤酒飲料。6)在售貨機(jī)有零錢(qián)找的情況下,投入5角硬幣,系統(tǒng)不做任何處理。7)在售貨機(jī)有零錢(qián)找的情況下,押下橙汁按鈕,系統(tǒng)不做任何處理。8)在售貨機(jī)有零錢(qián)找的情況下,押下啤酒按鈕,系統(tǒng)不做任何處理。
9)在售貨機(jī)沒(méi)有零錢(qián)找的情況下,投入1元硬幣,押下橙汁按鈕,售貨機(jī)“零錢(qián)找完”燈亮,并退還1元硬幣。
10)在售貨機(jī)沒(méi)有零錢(qián)找的情況下,投入1元硬幣,押下啤酒按鈕,售貨機(jī)“零錢(qián)找完”燈亮,并退還1元硬幣。
11)在售貨機(jī)沒(méi)有零錢(qián)找的情況下,投入1元硬幣,售貨機(jī)“零錢(qián)找完”燈亮。
12)在售貨機(jī)沒(méi)有零錢(qián)找的情況下,投入5角硬幣,押下橙汁按鈕,售貨機(jī)“零錢(qián)找完”燈亮,并送出橙汁飲料。
13)在售貨機(jī)沒(méi)有零錢(qián)找的情況下,投入5角硬幣,押下啤酒按鈕,售貨機(jī)“零錢(qián)找完”燈亮,并送出啤酒飲料。
14)在售貨機(jī)沒(méi)有零錢(qián)找的情況下,投入5角硬幣,售貨機(jī)“零錢(qián)找完”燈亮。15)在售貨機(jī)沒(méi)有零錢(qián)找的情況下,押下橙汁按鈕,售貨機(jī)“零錢(qián)找完”燈亮。16)在售貨機(jī)沒(méi)有零錢(qián)找的情況下,押下啤酒按鈕,售貨機(jī)“零錢(qián)找完”燈亮。
第三篇:測(cè)試用例怎么寫(xiě)
怎么寫(xiě)測(cè)試用例我剛剛就業(yè)來(lái)到公司做軟件測(cè)試我在學(xué)校沒(méi)有太多的機(jī)會(huì)做測(cè)試,測(cè)試用例和測(cè)試報(bào)告應(yīng)該怎么寫(xiě)。
● 測(cè)試用例編號(hào)
◇ 規(guī)則:編號(hào)具有唯一性、易識(shí)別性,由數(shù)字和字符組合成的字符串◇ 約定:
系統(tǒng)測(cè)試用例:產(chǎn)品編號(hào)-ST-系統(tǒng)測(cè)試項(xiàng)名-系統(tǒng)測(cè)試子項(xiàng)名-XXX
集成測(cè)試用例:產(chǎn)品編號(hào)-IT-集成測(cè)試項(xiàng)名-集成測(cè)試子項(xiàng)名-XXX單元測(cè)試用例:產(chǎn)品編號(hào)-UT-單元測(cè)試項(xiàng)名-單元測(cè)試子項(xiàng)名-XXX
● 測(cè)試項(xiàng)目
◇ 規(guī)則:當(dāng)前測(cè)試用例所屬測(cè)試大類、被測(cè)需求、被測(cè)模塊、被測(cè)單元等◇ 約定:
系統(tǒng)測(cè)試用例測(cè)試項(xiàng)目:軟件需求項(xiàng) 如:測(cè)試手機(jī)在沒(méi)有SIM卡的情況下,可以撥打緊急電話
集成測(cè)試用例測(cè)試項(xiàng)目:集成后的模塊名或接口名 如:測(cè)試模塊A提供的文件接口
單元測(cè)試用例測(cè)試項(xiàng)目:被測(cè)試的函數(shù)名 如:測(cè)試函數(shù)int ReadFile(char *pszFileName)
● 測(cè)試標(biāo)題
規(guī)則:測(cè)試用例的概括簡(jiǎn)單的描述用例的出發(fā)點(diǎn)、關(guān)注點(diǎn),原則上不能重復(fù)。● 重要級(jí)別
規(guī)則
高:保證系統(tǒng)基本功能、核心業(yè)務(wù)、重要特性、實(shí)際使用頻率高的測(cè)試用例;中:重要程度介于高和低之間的測(cè)試用例;
低:實(shí)際使用頻率不高、對(duì)系統(tǒng)業(yè)務(wù)功能影響不大的模塊或功能的測(cè)試用例?!?預(yù)置條件
規(guī)則:執(zhí)行當(dāng)前測(cè)試用例需要的前提條件,是后續(xù)步驟的先決條件● 輸入
規(guī)則:用例執(zhí)行過(guò)程中需要加工的外部信息,輸入、文件、數(shù)據(jù)庫(kù)等● 操作步驟
規(guī)則:執(zhí)行當(dāng)前測(cè)試用例需要經(jīng)過(guò)的操作步驟,保證操作步驟的完整性?!?預(yù)期輸出
規(guī)則:當(dāng)前測(cè)試用例的預(yù)期輸出結(jié)果,包括返回值的內(nèi)容、界面的響應(yīng)結(jié)果、輸出結(jié)果的規(guī)則符合度等
第四篇:測(cè)試用例書(shū)寫(xiě)標(biāo)準(zhǔn)
測(cè)試用例書(shū)寫(xiě)標(biāo)準(zhǔn)
在編寫(xiě)測(cè)試用例過(guò)程中,需要參考和規(guī)范一些基本的測(cè)試用例編寫(xiě)標(biāo)準(zhǔn),在ANSI/IEEE829-1983標(biāo)準(zhǔn)中列出了和測(cè)試設(shè)計(jì)相關(guān)的測(cè)試用例編寫(xiě)規(guī)范和模板。標(biāo)準(zhǔn)模板中主要元素如下。
? 標(biāo)識(shí)符(identification):每個(gè)測(cè)試用例應(yīng)該有一個(gè)唯一的標(biāo)識(shí)符,它將成為所有和測(cè)試用例相關(guān)的文檔/表格引用和參考的基本元素,這些文檔/表格包括設(shè)計(jì)規(guī)格說(shuō)明書(shū)、測(cè)試日志表、測(cè)試報(bào)告等。
? 測(cè)試項(xiàng)(test item):測(cè)試用例應(yīng)該準(zhǔn)確地描述所需要測(cè)試地項(xiàng)及其特征,測(cè)試項(xiàng)應(yīng)該比測(cè)試設(shè)計(jì)說(shuō)明書(shū)中所列出地特性描述更加具體,例如做windows計(jì)算器應(yīng)用程序地窗口設(shè)計(jì),測(cè)試對(duì)象是整個(gè)地應(yīng)用程序用戶界面,這樣測(cè)試項(xiàng)就應(yīng)該是應(yīng)用程序地界面地特性要求,例如縮放測(cè)試、界面布局、菜單等。
? 測(cè)試環(huán)境要求(test environment):用來(lái)表征執(zhí)行該測(cè)試用例需要地測(cè)試環(huán)境,一般來(lái)說(shuō),在整個(gè)的測(cè)試模塊里面應(yīng)該包含整個(gè)的測(cè)試環(huán)境的特殊要求,而單個(gè)測(cè)試用例的測(cè)試環(huán)境需要表征該測(cè)試用例所單獨(dú)需要的特殊環(huán)境需求。
? 輸入標(biāo)準(zhǔn)(input criteria):用來(lái)執(zhí)行測(cè)試用例的輸入需求。這些輸入可能包括數(shù)據(jù)、文件,或者操作(例如鼠標(biāo)的左鍵單擊,鼠標(biāo)的按鍵處理等),必要的時(shí)候,相關(guān)的數(shù)據(jù)庫(kù)、文件也必須被羅列。
? 輸出標(biāo)準(zhǔn)(output criteria):標(biāo)識(shí)按照指定的環(huán)境和輸入標(biāo)準(zhǔn)得到的期望輸出結(jié)果。如果可能的話,盡量提供適當(dāng)?shù)南到y(tǒng)規(guī)格說(shuō)明書(shū)來(lái)證明期望的結(jié)果。
? 測(cè)試用例之間的關(guān)聯(lián):用來(lái)標(biāo)識(shí)該測(cè)試用例與其它的測(cè)試(或其它測(cè)試用例)之間的依賴關(guān)系,例如,用例A需要基于B的測(cè)試結(jié)果正確的基礎(chǔ)上才能進(jìn)行,此時(shí)需要在A的測(cè)試用例中表明對(duì)B的依賴性,從而保證測(cè)試用例的嚴(yán)謹(jǐn)性。
綜上所述,如果使用一個(gè)數(shù)據(jù)庫(kù)的表來(lái)表征測(cè)試用例的話,它應(yīng)該有以下的格式:
例一:對(duì)Windows記事本程序進(jìn)行測(cè)試,選取其中的一個(gè)測(cè)試項(xiàng)――文件菜單欄的測(cè)試 測(cè)試對(duì)象:記事本程序文件菜單欄(測(cè)試用例標(biāo)識(shí)1000,下同),所包含的子測(cè)試用例描述如下:
|---------文件/新建(1001)
|---------文件/打開(kāi)(1002)
|---------文件/保存(1003)
|---------文件/另存(1004)
|---------文件/頁(yè)面設(shè)置(1005)
|---------文件/打?。?006)
|---------文件/退出(1007)
|---------菜單布局(1008)
|---------快捷鍵(1009)
選取其中的一個(gè)子測(cè)試用例――文件/退出(1007)作為例子,測(cè)試用例如下表所示:
通過(guò)這個(gè)例子了解了測(cè)試用例的組成方法。要組織成一個(gè)完整的良好測(cè)試用例,還需要更多的技巧,并要考慮一些常見(jiàn)的因素。
測(cè)試用例設(shè)計(jì)考慮因素
測(cè)試是不可能實(shí)現(xiàn)窮舉測(cè)試的,因此試圖用所有的測(cè)試用例來(lái)覆蓋所有測(cè)試可能遇到的情形是不可能的,所以,在測(cè)試用例的編寫(xiě)、組織過(guò)程中,盡量考慮有代表性的典型的測(cè)試用例,來(lái)實(shí)現(xiàn)以點(diǎn)帶面的窮舉測(cè)試。這要求在測(cè)試用例設(shè)計(jì)中考慮一些基本因素: ? 測(cè)試用例必須具有代表性、典型性。
? 測(cè)試用例設(shè)計(jì)時(shí),要濃縮系統(tǒng)設(shè)計(jì)。
例二:常見(jiàn)的web登錄頁(yè)面,通過(guò)這個(gè)例子來(lái)闡述從功能規(guī)格說(shuō)明書(shū)到具體測(cè)試用例編寫(xiě)的過(guò)程
A)用戶登錄的功能設(shè)計(jì)規(guī)格說(shuō)明書(shū)(摘選)
―――――――――――――――――――――――――――――――――――――――
1. 用戶登錄
1.1滿足基本頁(yè)面布局(圖示,略)
1.2當(dāng)用戶沒(méi)有輸入用戶名和密碼時(shí),不立即彈出錯(cuò)誤對(duì)話框,而是在頁(yè)面上使用紅色字體來(lái)提示,見(jiàn)2描述
1.3用戶密碼使用掩碼號(hào)(*)來(lái)標(biāo)識(shí)。
1.4*代表必選字段,將出現(xiàn)在輸入文本框的后面。
2. 登錄出現(xiàn)錯(cuò)誤
當(dāng)出現(xiàn)錯(cuò)誤時(shí),在頁(yè)面的頂部會(huì)出現(xiàn)相應(yīng)的錯(cuò)誤提示。錯(cuò)誤提示的內(nèi)容見(jiàn)3。錯(cuò)誤提示是高亮的紅色字體實(shí)現(xiàn)。
3. 錯(cuò)誤信息描述
3.1
3.2密碼為空
3,3用戶名/
(注:本例子中的頁(yè)面圖示,消息編號(hào)如WMSG001的描述均為給出。)
―――――――――――――――――――――――――――――――――――――――
B)通用安全性設(shè)計(jì)規(guī)格說(shuō)明書(shū)(摘選)
―――――――――――――――――――――――――――――――――――――――
1. 安全性描述
1.1輸入安全性:在用戶登錄或者信用卡驗(yàn)證過(guò)程中,如果三次輸入不正確,頁(yè)面將需要重新打開(kāi)才能生效。
1.2密碼:在所有的用戶密碼中,都必須使用掩碼符號(hào)(*),數(shù)據(jù)在數(shù)據(jù)庫(kù)中存儲(chǔ)使用統(tǒng)一的加密和解密算法。
1.3Cookie:在信用卡信息驗(yàn)證,用戶名輸入時(shí),Cookie都是被禁止的,當(dāng)用戶第一次輸入后,瀏覽器將不再提供是否保存信息的提示,自動(dòng)完成功能將被禁用。
1.4SSL校驗(yàn):所有的站點(diǎn)訪問(wèn)時(shí),都必須經(jīng)過(guò)SSL校驗(yàn)。
2. 錯(cuò)誤描述(略)
―――――――――――――――――――――――――――――――――――――――
C)測(cè)試用例
結(jié)合相關(guān)的規(guī)格說(shuō)明書(shū),理解和掌握測(cè)試用例設(shè)計(jì)的關(guān)鍵點(diǎn),測(cè)試用例設(shè)計(jì)如下表所示。
? 測(cè)試用例需要考慮到正確的輸入,也需要考慮錯(cuò)誤的或者異常的輸入,以及需要分
析怎樣使得這樣的錯(cuò)誤或者異常能夠發(fā)生。
用戶登錄功能測(cè)試用例
完善的測(cè)試用例
? 用戶測(cè)試用例的設(shè)計(jì),要多考慮用戶實(shí)際使用場(chǎng)景。
第五篇:測(cè)試用例設(shè)計(jì)步驟
測(cè)試用例設(shè)計(jì)步驟
設(shè)計(jì)測(cè)試案例的時(shí)候,需要有清晰的測(cè)試思路,對(duì)要測(cè)試什么,按照什么順序測(cè)試,覆蓋哪些需求做到心中有數(shù)。測(cè)試用例編寫(xiě)者不僅要掌握軟件測(cè)試的技術(shù)和流程,而且要對(duì)被測(cè)軟件的設(shè)計(jì)、功能規(guī)格說(shuō)明、用戶試用場(chǎng)景以及程序/模塊的結(jié)構(gòu)都有比較透徹的理解。測(cè)試用例設(shè)計(jì)一般包括以下幾個(gè)步驟:
1、測(cè)試需求分析
從軟件需求文檔中,找出待測(cè)試軟件/模塊的需求,通過(guò)自己的分析、理解,整理成為測(cè)試需求,清楚被測(cè)試對(duì)象具有哪些功能。測(cè)試需求的特點(diǎn)是:包含軟件需求,具有可測(cè)試性。測(cè)試需求應(yīng)該在軟件需求基礎(chǔ)上進(jìn)行歸納、分類或細(xì)分,方便測(cè)試用例設(shè)計(jì)。測(cè)試用例中的測(cè)試集與測(cè)試需求的關(guān)系是多對(duì)一的關(guān)系,即一個(gè)或多個(gè)測(cè)試用例集對(duì)應(yīng)一個(gè)測(cè)試需求。
2、業(yè)務(wù)流程分析
軟件測(cè)試,不單純是基于功能的黑盒測(cè)試,還需要對(duì)軟件的內(nèi)部處理邏輯進(jìn)行測(cè)試。為了不遺漏測(cè)試點(diǎn),需要清楚的了解軟件產(chǎn)品的業(yè)務(wù)流程。建議在做復(fù)雜的測(cè)試用例設(shè)計(jì)前,先畫(huà)出軟件的業(yè)務(wù)流程。如果設(shè)計(jì)文檔中已經(jīng)有業(yè)務(wù)流程設(shè)計(jì),可以從測(cè)試角度對(duì)現(xiàn)有流程進(jìn)行補(bǔ)充。如果無(wú)法從設(shè)計(jì)中得到業(yè)務(wù)流程,測(cè)試工程師應(yīng)通過(guò)閱讀設(shè)計(jì)文檔,與開(kāi)發(fā)人員交流,最終畫(huà)出業(yè)務(wù)流程圖。業(yè)務(wù)流程圖可以幫助理解軟件的處理邏輯和數(shù)據(jù)流向,從而指導(dǎo)測(cè)試用例的設(shè)計(jì)。
從業(yè)務(wù)流程上,應(yīng)得到以下信息:
A、主流程是什么
B、條件備選流程是什么
C、數(shù)據(jù)流向是什么
D、關(guān)鍵的判斷條件是什么
3、測(cè)試用例設(shè)計(jì)
完成了測(cè)試需求分析和軟件流程分析后,開(kāi)始著手設(shè)計(jì)測(cè)試用例。測(cè)試用例設(shè)計(jì)的類型包括功能測(cè)試,邊界測(cè)試,異常測(cè)試,性能測(cè)試,壓力測(cè)試等。在用例設(shè)計(jì)中,除了功能測(cè)試用例外,應(yīng)盡量考慮邊界、異常、性能的情況,以便發(fā)現(xiàn)更多的隱藏問(wèn)題。
黑盒測(cè)試的測(cè)試用例設(shè)計(jì)方法有:等價(jià)類劃分、邊界值劃分、因果圖分析和錯(cuò)誤猜測(cè),白盒測(cè)試的測(cè)試用例設(shè)計(jì)方法有:語(yǔ)句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、多重條件覆蓋。在這里主要討論黑盒測(cè)試。在設(shè)計(jì)測(cè)試用例的時(shí)候可以使用軟件測(cè)試用例設(shè)計(jì)方法,結(jié)合前面的需求分析和軟件流程分析進(jìn)行設(shè)計(jì):
功能測(cè)試:測(cè)試某個(gè)功能是否滿足需求的定義,功能是否正確,完備。
適合的技術(shù):由業(yè)務(wù)需求和設(shè)計(jì)說(shuō)明導(dǎo)出的功能測(cè)試、等價(jià)類劃分
邊界測(cè)試:對(duì)某個(gè)功能的邊界情況進(jìn)行測(cè)試。
適合的技術(shù):邊界值劃分
異常測(cè)試:對(duì)某些功能來(lái)說(shuō),其邊界情況無(wú)法簡(jiǎn)單的了解或某些操作不完全是正確的但又是
可能發(fā)生的,類似這樣的情況需要書(shū)寫(xiě)相關(guān)的異常測(cè)試。
適合的技術(shù):由業(yè)務(wù)需求和設(shè)計(jì)說(shuō)明導(dǎo)出的特殊業(yè)務(wù)流程、錯(cuò)誤猜測(cè)法、邊界值
分析、內(nèi)部邊界值測(cè)試。
性能測(cè)試:檢查系統(tǒng)是否滿足在需求中所規(guī)定達(dá)到的性能,性能主要包括了解程序的內(nèi)外部
性能因素。內(nèi)部性能因素包括測(cè)試環(huán)境的配置,系統(tǒng)資源使用狀況;外部因素包
括響應(yīng)時(shí)間,吞吐量等。
適合的技術(shù):業(yè)務(wù)需求和設(shè)計(jì)說(shuō)明導(dǎo)出的測(cè)試
壓力測(cè)試:壓力測(cè)試又稱強(qiáng)度測(cè)試,主要是檢查系統(tǒng)運(yùn)行環(huán)境在極限情況下軟件運(yùn)行的能力,比如說(shuō)給一個(gè)相當(dāng)大的負(fù)荷或網(wǎng)絡(luò)流量給應(yīng)用軟件兼容測(cè)試:測(cè)試軟件產(chǎn)品在不
同的平臺(tái),不同的工具,相同工具的不同版本下功能的兼容性。
4、測(cè)試用例評(píng)審
測(cè)試用例設(shè)計(jì)完成后,為了確認(rèn)測(cè)試過(guò)程和方法是否正確,是否有遺漏的測(cè)試點(diǎn),需要進(jìn)行測(cè)試用例的評(píng)審。
測(cè)試用例評(píng)審一般是由測(cè)試leader安排,參加的人員包括:測(cè)試用例設(shè)計(jì)者、測(cè)試leader、項(xiàng)目經(jīng)理、開(kāi)發(fā)工程師、其它相關(guān)開(kāi)發(fā)測(cè)試工程師。測(cè)試用例評(píng)審?fù)戤叄瑴y(cè)試工程師根據(jù)評(píng)審結(jié)果,對(duì)測(cè)試用例進(jìn)行修改,并記錄修改日志。
5、測(cè)試用例更新完善
測(cè)試用例編寫(xiě)完成之后需要不斷完善,軟件產(chǎn)品新增功能或更新需求后,測(cè)試用例必須配套修改更新;在測(cè)試過(guò)程中發(fā)現(xiàn)設(shè)計(jì)測(cè)試用例時(shí)考慮不周,需要對(duì)測(cè)試用例進(jìn)行修改完善;在軟件交付使用后客戶反饋的軟件缺陷,而缺陷又是因測(cè)試用例存在漏洞造成,也需要對(duì)測(cè)試用例進(jìn)行完善。一般小的修改完善可在原測(cè)試用例文檔上修改,但文檔要有更改記錄。軟件的版本升級(jí)更新,測(cè)試用例一般也應(yīng)隨之編制升級(jí)更新版本。測(cè)試用例是“活”的,在軟件的生命周期中不斷更新與完善。