作者:陳紹英
??
?性能測(cè)試、壓力測(cè)試、負(fù)載測(cè)試、強(qiáng)度測(cè)試、穩(wěn)定性測(cè)試、健壯性測(cè)試、功能測(cè)試、接口測(cè)試……,這么多眼花繚亂的測(cè)試類型名稱,估計(jì)很少有人能準(zhǔn)確的區(qū)分并說(shuō)出定義來(lái),至于對(duì)應(yīng)的測(cè)試用例如何編寫(xiě)和執(zhí)行,就更不用說(shuō)了。
如果問(wèn)測(cè)試工程師測(cè)試用例如何編寫(xiě),就象是問(wèn)程序員如何編寫(xiě)代碼得到的答案一樣,每個(gè)人都會(huì)給出不同的編寫(xiě)方法,但實(shí)用的測(cè)試用例卻象優(yōu)秀的程序一樣難以編寫(xiě)。
目前國(guó)內(nèi),測(cè)試工程師卻時(shí)常要面對(duì)“已經(jīng)延期幾倍計(jì)劃時(shí)間的項(xiàng)目”,測(cè)試用例如何發(fā)揮更大的作用,是一個(gè)迫切需要解決的問(wèn)題。事實(shí)上,完全可以把測(cè)試用例看成是測(cè)試工程師編寫(xiě)的程序:這個(gè)“程序”是為了輔助測(cè)試工作的進(jìn)行而開(kāi)發(fā)的,目的是為了發(fā)現(xiàn)軟件問(wèn)題,同時(shí)“順便”證明軟件功能是否符合要求。
本文針對(duì)上面的問(wèn)題,以設(shè)計(jì)性能測(cè)試用例為示范,講解在企業(yè)實(shí)際工作中,如何有效劃分測(cè)試種類和編寫(xiě)對(duì)應(yīng)的測(cè)試用例,使測(cè)試工作更加合理、高效率的開(kāi)展。
1測(cè)試種類和階段
1.1 測(cè)試種類
對(duì)于測(cè)試種類的說(shuō)法多種多樣,最多的能達(dá)到30多種測(cè)試類型。而實(shí)際工作中很多測(cè)試是互相包含的。按照企業(yè)中實(shí)際工作需要,通常主要進(jìn)行下面幾種類型的測(cè)試:功能測(cè)試、健壯性測(cè)試、接口測(cè)試、強(qiáng)度測(cè)試、壓力測(cè)試、性能測(cè)試、用戶界面測(cè)試、可靠性測(cè)試、安裝/反安裝測(cè)試、文檔測(cè)試。
下面介紹幾種重要的測(cè)試種類及其測(cè)試的內(nèi)容:
功能測(cè)試:功能測(cè)試主要針對(duì)產(chǎn)品需求說(shuō)明書(shū)的測(cè)試,是驗(yàn)證功能是否否合需求,包括原定功能的檢驗(yàn)、是否有冗余功能、遺漏功能。這類測(cè)試應(yīng)由測(cè)試員做,這并不意味著程序員在發(fā)布前不必檢查他們的代碼能否工作,他們也需要進(jìn)行基本功能的測(cè)試。
接口測(cè)試:程序員對(duì)各個(gè)模塊進(jìn)行系統(tǒng)聯(lián)調(diào)的測(cè)試,包含程序內(nèi)接口和程序外接口測(cè)試。這個(gè)測(cè)試,在單元測(cè)試階段進(jìn)行了一部分工作,而大部分都是在集成測(cè)試階段完成的。由開(kāi)發(fā)人員進(jìn)行。
性能測(cè)試:在交替進(jìn)行負(fù)荷和強(qiáng)迫測(cè)試時(shí)常用的術(shù)語(yǔ)。性能測(cè)試關(guān)注的是系統(tǒng)的整體。它和通常所說(shuō)的強(qiáng)度、壓力/負(fù)載測(cè)試測(cè)試有密切關(guān)系。所以壓力和強(qiáng)度測(cè)試應(yīng)該與性能測(cè)試一同進(jìn)行。
用戶界面測(cè)試:對(duì)系統(tǒng)的界面進(jìn)行測(cè)試,測(cè)試用戶界面是否友好、是否方便易用、設(shè)計(jì)是否合理、位置是否正確等一系列界面問(wèn)題
安裝/反安裝測(cè)試:安裝測(cè)試主要檢驗(yàn)軟件是否可以正確安裝,安裝文件的各項(xiàng)設(shè)置是否有效,安裝后能否影響原系統(tǒng);反安裝是逆過(guò)程,測(cè)試是否刪除干凈,是否給影響原系統(tǒng)等。
文檔測(cè)試:主要測(cè)試開(kāi)發(fā)過(guò)程中針對(duì)用戶的文檔,以需求、用戶手冊(cè)、安裝手冊(cè)等為主,檢驗(yàn)文檔是否和實(shí)際應(yīng)用存在差別。文檔測(cè)試不需要編寫(xiě)測(cè)試用例。
測(cè)試種類的劃分不要拘泥于上面的形式,總體來(lái)說(shuō)應(yīng)該服從于測(cè)試策略,可以根據(jù)具體工作的特點(diǎn)進(jìn)行安排,為了工作更容易開(kāi)展,完全可以把一些測(cè)試合在一起進(jìn)行。在后面的性能測(cè)試用例的編寫(xiě)上,充分體現(xiàn)了這一思想。
1.2 測(cè)試階段
和開(kāi)發(fā)過(guò)程相對(duì)應(yīng),測(cè)試過(guò)程會(huì)依次經(jīng)歷單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試四個(gè)主要階段。對(duì)應(yīng)關(guān)系如圖1所示:
需求開(kāi)發(fā)
高層設(shè)計(jì)
詳細(xì)設(shè)計(jì)
編程
單元測(cè)試
集成測(cè)試
系統(tǒng)測(cè)試
驗(yàn)收測(cè)試
圖1 開(kāi)發(fā)與測(cè)試的“V”型關(guān)系
單元測(cè)試:?jiǎn)卧獪y(cè)試是針對(duì)軟件設(shè)計(jì)的最小單位––程序模塊甚至代碼段進(jìn)行正確性檢驗(yàn)的測(cè)試工作,通常由開(kāi)發(fā)人員進(jìn)行。
集成測(cè)試:集成測(cè)試是將模塊按照設(shè)計(jì)要求組裝起來(lái)進(jìn)行測(cè)試,主要目的是發(fā)現(xiàn)與接口有關(guān)的問(wèn)題。由于在產(chǎn)品提交到測(cè)試部門(mén)前,產(chǎn)品開(kāi)發(fā)小組都要進(jìn)行聯(lián)合調(diào)試,因此在大部分企業(yè)中集成測(cè)試是由開(kāi)發(fā)人員來(lái)完成的。。
系統(tǒng)測(cè)試:系統(tǒng)測(cè)試是在集成測(cè)試通過(guò)后進(jìn)行的,目的是充分運(yùn)行系統(tǒng),驗(yàn)證各子系統(tǒng)是否都能正常工作并完成設(shè)計(jì)的要求。它主要由測(cè)試部門(mén)進(jìn)行,是測(cè)試部門(mén)最大最重要的一個(gè)測(cè)試,對(duì)產(chǎn)品的質(zhì)量有重大的影響。
驗(yàn)收測(cè)試:驗(yàn)收測(cè)試以需求階段的《需求規(guī)格說(shuō)明書(shū)》為驗(yàn)收標(biāo)準(zhǔn),測(cè)試時(shí)要求模擬實(shí)際用戶的運(yùn)行環(huán)境。對(duì)于實(shí)際項(xiàng)目可以和客戶共同進(jìn)行,對(duì)于產(chǎn)品來(lái)說(shuō)就是最后一次的系統(tǒng)測(cè)試。測(cè)試內(nèi)容為對(duì)功能模塊的全面測(cè)試,尤其要進(jìn)行文檔測(cè)試。
盡管測(cè)試階段的劃分十分明確,但是在具體的項(xiàng)目和產(chǎn)品的測(cè)試中,尤其在執(zhí)行測(cè)試時(shí),會(huì)根據(jù)實(shí)際需要來(lái)開(kāi)展。
1.3 測(cè)試種類、階段和用例的關(guān)系
為了便于在實(shí)際工作中提高效率,同時(shí)方便測(cè)試用例的編寫(xiě)和執(zhí)行,可以把上面提到的各個(gè)測(cè)試類型與對(duì)應(yīng)的測(cè)試用例合并。合并后的測(cè)試用例主要有以下幾種:
1. 功能測(cè)試用例:包含功能測(cè)試、健壯性測(cè)試、可靠性測(cè)試
2. 性能測(cè)試用例:包含性能測(cè)試、壓力測(cè)試、強(qiáng)度測(cè)試
3. 集成測(cè)試用例:包含接口測(cè)試、健壯性測(cè)試、可靠性測(cè)試
4. 安全測(cè)試用例:安全測(cè)試用例
5. 用戶界面測(cè)試用例:包含用戶界面測(cè)試用例、少量功能測(cè)試用例
6. 安裝/反安裝測(cè)試用例:安裝/反安裝測(cè)試用例
綜合上面的分析,測(cè)試種類、測(cè)試階段以及執(zhí)行人員具體的關(guān)系如表1所示。
總之,測(cè)試的種類應(yīng)該盡量的少,這樣每次都可以執(zhí)行更多的測(cè)試內(nèi)容。例如在進(jìn)行功能測(cè)試的同時(shí),完全可以進(jìn)行健壯性的測(cè)試。(當(dāng)然如果產(chǎn)品健壯性方面要求較高,就可以把健壯性測(cè)試作為獨(dú)立的測(cè)試。)
2性能用例編寫(xiě)方案
性能測(cè)試在軟件測(cè)試中占有重要的地位,而性能測(cè)試又關(guān)聯(lián)很多內(nèi)容。例如壓力和強(qiáng)度測(cè)試就與性能測(cè)試密切相關(guān):針對(duì)一個(gè)網(wǎng)站進(jìn)行測(cè)試,模擬10到50個(gè)用戶就是在進(jìn)行常規(guī)性能測(cè)試,用戶增加到1000乃至上萬(wàn)就變成了壓力/負(fù)載測(cè)試,如果同時(shí)對(duì)系統(tǒng)進(jìn)行大量的數(shù)據(jù)查詢操作,就包含了強(qiáng)度測(cè)試。
為了便于性能測(cè)試工作的實(shí)施,這里的性能測(cè)試綜合了性能、強(qiáng)度、壓力、負(fù)載等多方面的測(cè)試內(nèi)容,主要包含的內(nèi)容有:預(yù)期性能指標(biāo)測(cè)試、用戶并發(fā)性能測(cè)試、疲勞強(qiáng)度測(cè)試、大數(shù)據(jù)量測(cè)試和速度測(cè)試、網(wǎng)絡(luò)、服務(wù)器等方面的內(nèi)容。
性能測(cè)試不同的系統(tǒng)有不同的要求,編寫(xiě)方法要根據(jù)實(shí)際要求進(jìn)行編寫(xiě),本文提出一個(gè)常見(jiàn)的參考方案,在實(shí)際工作中,可以根據(jù)需要加入其它例如內(nèi)存泄露等和性能相關(guān)的測(cè)試用例。
下面介紹各個(gè)部分性能測(cè)試用例包含的內(nèi)容:
2.1預(yù)期性能指標(biāo)測(cè)試用例
通常系統(tǒng)在設(shè)計(jì)前都會(huì)提出一些性能指標(biāo),這些指標(biāo)是性能測(cè)試要完成的首要工作之一。針對(duì)每個(gè)指標(biāo)都要編寫(xiě)多個(gè)測(cè)試用例來(lái)驗(yàn)證是否達(dá)到要求,并根據(jù)測(cè)試結(jié)果來(lái)改進(jìn)系統(tǒng)的性能。
這類通常以單用戶為主,如果遇到并發(fā)用戶的情況,可以歸到并發(fā)用戶測(cè)試用例中。這類用例通常都是可以通過(guò)手工來(lái)執(zhí)行的用例,例如示例中的上傳一份文件,期望的性能為2M/S,完全可以手動(dòng)上傳文件,同時(shí)用秒表計(jì)時(shí)。這些內(nèi)容通常在需求說(shuō)明書(shū)中可以顯而易見(jiàn)的查到。不過(guò)當(dāng)看到如支持并發(fā)用戶300人,就應(yīng)該放到后面進(jìn)行。測(cè)試結(jié)果也是直接記錄是否達(dá)到要求,如果系統(tǒng)沒(méi)有達(dá)到要求則進(jìn)行改善。
2.2用戶并發(fā)性能測(cè)試用例
用戶并發(fā)測(cè)試是性能測(cè)試的最主要部分,包含了負(fù)載測(cè)試和壓力測(cè)試的過(guò)程。主要是逐漸增加用戶數(shù)量來(lái)加重系統(tǒng)負(fù)擔(dān),直到出現(xiàn)不能接收的性能點(diǎn)或者瓶頸。一般要測(cè)試正常數(shù)量的用戶并發(fā)和極限數(shù)量下用戶并發(fā)的情況。
并發(fā)用戶測(cè)試主要是對(duì)系統(tǒng)的核心功能和重要業(yè)務(wù)進(jìn)行測(cè)試,要以真實(shí)的業(yè)務(wù)數(shù)據(jù)作為輸入,選擇有代表性和關(guān)鍵的業(yè)務(wù)操作來(lái)設(shè)計(jì)測(cè)試用例。主要編寫(xiě)以下兩個(gè)方面的用例:
核心模塊的測(cè)試(可以理解為“單元性能測(cè)試”):對(duì)核心功能模塊進(jìn)行并發(fā)用戶測(cè)試,測(cè)試系統(tǒng)是否能夠穩(wěn)定運(yùn)行。例如對(duì)于互聯(lián)網(wǎng)的公用郵件系統(tǒng),每天早上9點(diǎn)左右可能是收發(fā)郵件的高峰,這時(shí)候上千的用戶都要在上班后進(jìn)入郵件系統(tǒng),系統(tǒng)這個(gè)時(shí)候需要接收和發(fā)送大量的郵件。所以郵件系統(tǒng)這一功能模塊要進(jìn)行并發(fā)測(cè)試。通過(guò)測(cè)試可以知道數(shù)據(jù)庫(kù)服務(wù)器、操作系統(tǒng)、網(wǎng)絡(luò)設(shè)備等是否能夠承受住考驗(yàn),同時(shí)可以對(duì)瓶頸進(jìn)行分析。
表2列出來(lái)一些常見(jiàn)的參數(shù)(表格中的數(shù)據(jù)為示例的測(cè)試用例和測(cè)試結(jié)果),可以根據(jù)實(shí)際需要進(jìn)行增加和刪除,其中磁盤(pán)I/O、數(shù)據(jù)庫(kù)相關(guān)測(cè)試參數(shù)要根據(jù)實(shí)際情況進(jìn)行選擇,因此沒(méi)有列出。
在編寫(xiě)這類用例時(shí),要進(jìn)行綜合分析,選出系統(tǒng)中的各個(gè)核心模塊,分別設(shè)計(jì)每個(gè)模塊的測(cè)試用例:把模塊劃分成小的“事務(wù)”進(jìn)行測(cè)試,這樣在測(cè)試分析中便于定位問(wèn)題究竟出現(xiàn)在哪里。例如郵件系統(tǒng)可以劃分成:接收郵件、發(fā)送郵件、打開(kāi)郵件等小的事務(wù)進(jìn)行測(cè)試用例的編寫(xiě),每個(gè)操作做為一個(gè)用例來(lái)執(zhí)行。
業(yè)務(wù)組合性能測(cè)試(可以理解為“集成性能測(cè)試”):所有的用戶不會(huì)只使用核心模塊,通常每個(gè)功能都可能被使用到,所有既要模擬多用戶的“相同”操作,又要模擬多用戶的不同操作,對(duì)多個(gè)業(yè)務(wù)進(jìn)行組合性能測(cè)試。
業(yè)務(wù)組合測(cè)試是更接近用戶實(shí)際操作系統(tǒng)的測(cè)試,因此用例編寫(xiě)要充分考慮實(shí)際情況,選擇最接近實(shí)際的場(chǎng)景進(jìn)行設(shè)計(jì)。這里的業(yè)務(wù)組成單位以不同模塊中的“子操作事務(wù)”為單位,進(jìn)行各個(gè)模塊的不同業(yè)務(wù)的組合。例如在辦公自動(dòng)化系統(tǒng)中就可以選擇“公文模塊中的發(fā)送公文、電子公告模塊中的查看公告信息、網(wǎng)上論壇模塊中的上傳文件”等事務(wù)作為一組組合業(yè)務(wù)進(jìn)行測(cè)試,用例設(shè)計(jì)信息如下:
功能:在線用戶達(dá)到高峰時(shí),用戶可以正常使用系統(tǒng),保證500個(gè)以內(nèi)用戶可以同時(shí)在線使用系統(tǒng)。
目的:測(cè)試系統(tǒng)500個(gè)以內(nèi)的用戶同時(shí)在線能否使用比較常見(jiàn)的模塊:公文系統(tǒng)、電子公告、網(wǎng)上論壇。
方法:采用LoadRunner的錄制工具錄制三個(gè)業(yè)務(wù):
業(yè)務(wù)1––在公文系統(tǒng)內(nèi),進(jìn)行打開(kāi)、修改等操作;
業(yè)務(wù)2––在電子公告系統(tǒng)內(nèi),查看、發(fā)布公告;
業(yè)務(wù)3––在網(wǎng)上論壇系統(tǒng)內(nèi)發(fā)布帖子,查看文章。每個(gè)業(yè)務(wù)分配一定數(shù)目的用戶,利用LoadRunner來(lái)完成相關(guān)參數(shù)的測(cè)試。
其它部分設(shè)計(jì)可以參考表2。執(zhí)行時(shí)要分別記錄各個(gè)事務(wù)的執(zhí)行情況。
多用戶并發(fā)性能測(cè)試是性能測(cè)試的核心內(nèi)容,包含了全部與多用戶相關(guān)的測(cè)試。因此設(shè)計(jì)時(shí)要全面考慮,不要有遺漏。在測(cè)試執(zhí)行時(shí),本部分通常是采用性能測(cè)試工具例如LoadRunner來(lái)進(jìn)行測(cè)試的,因此更容易執(zhí)行和提高效率。
2.3疲勞強(qiáng)度與大數(shù)據(jù)量測(cè)試
疲勞強(qiáng)度測(cè)試是在系統(tǒng)穩(wěn)定運(yùn)行下模擬最大用戶數(shù)量、并長(zhǎng)時(shí)間運(yùn)行系統(tǒng),通過(guò)綜合分析執(zhí)行指標(biāo)和資源監(jiān)控來(lái)確定系統(tǒng)處理最大業(yè)務(wù)量時(shí)的性能。
疲勞強(qiáng)度測(cè)試的目的就是檢驗(yàn)系統(tǒng)長(zhǎng)時(shí)間運(yùn)行后的性能,因此設(shè)計(jì)用例時(shí),需要編寫(xiě)不同參數(shù)或者負(fù)載條件下的多個(gè)測(cè)試用例,對(duì)服務(wù)器、軟件、網(wǎng)絡(luò)進(jìn)行不同條件下的綜合測(cè)試分析,測(cè)試時(shí)要記錄系統(tǒng)發(fā)生故障的信息作為測(cè)試結(jié)果。疲勞強(qiáng)度測(cè)試也是采用測(cè)試工具進(jìn)行的。
大數(shù)據(jù)量測(cè)試分為兩種:一個(gè)是針對(duì)某些系統(tǒng)存儲(chǔ)、傳輸、統(tǒng)計(jì)查詢等業(yè)務(wù)進(jìn)行大數(shù)據(jù)量的測(cè)試;另一個(gè)是與前面并發(fā)測(cè)試相結(jié)合的綜合數(shù)據(jù)測(cè)試。編寫(xiě)用例時(shí)主要編寫(xiě)前一部分,后一部分盡量放在并發(fā)測(cè)試中。
大數(shù)據(jù)量測(cè)試一般是針對(duì)那些對(duì)數(shù)據(jù)庫(kù)有特殊要求的系統(tǒng)進(jìn)行測(cè)試,例如電信業(yè)務(wù)系統(tǒng)的手機(jī)短信息表,由于有的用戶關(guān)機(jī)或者不在服務(wù)區(qū),每秒鐘需要有大量的短信息保存,同時(shí)在用戶聯(lián)機(jī)后還要及時(shí)發(fā)送,因此對(duì)數(shù)據(jù)庫(kù)性能有極高的要求,需要專門(mén)測(cè)試。
本部分用例設(shè)計(jì)表格可以參考用戶并發(fā)性能測(cè)試部分。
2.4網(wǎng)絡(luò)性能測(cè)試
網(wǎng)絡(luò)性能測(cè)試主要是為了準(zhǔn)確展示帶寬、延遲、負(fù)載和端口的變化是如何影響用戶的響應(yīng)時(shí)間的。在實(shí)際的軟件項(xiàng)目中,主要是測(cè)試用戶數(shù)目與網(wǎng)絡(luò)帶寬的關(guān)系。
編寫(xiě)用例的格式如表3(表格中的數(shù)據(jù)為示例數(shù)據(jù)):
本部分可以獨(dú)立測(cè)試,也可以和用戶并發(fā)性能測(cè)試、疲勞強(qiáng)度與大數(shù)據(jù)量性能測(cè)試結(jié)合起來(lái),在原有的基礎(chǔ)上采用工具來(lái)調(diào)整網(wǎng)絡(luò)設(shè)置,從而達(dá)到監(jiān)視網(wǎng)絡(luò)性能的目的。通常網(wǎng)絡(luò)性能都是采用工具進(jìn)行性能評(píng)估,由系統(tǒng)集成工程師來(lái)進(jìn)行。
2.5服務(wù)器性能測(cè)試
本部分的測(cè)試用例不必獨(dú)立編寫(xiě),或者根據(jù)實(shí)際需要編寫(xiě)少量的測(cè)試用例,建議這部分的用例編寫(xiě)和前兩部分結(jié)合起來(lái),在用戶并發(fā)性能測(cè)試、疲勞強(qiáng)度與大數(shù)據(jù)量性能測(cè)試時(shí)完成對(duì)服務(wù)器性能的監(jiān)控,完成對(duì)服務(wù)器性能的評(píng)估。
2.6性能分析基本策略
在上面的用例執(zhí)行完成后,接下來(lái)要進(jìn)行性能分析。性能分析是性能測(cè)試的最終目的,否則測(cè)試出的指標(biāo)就不會(huì)有實(shí)際意義,這里主要介紹一下性能分析的基本思路。性能分析通常要圍繞三個(gè)方面進(jìn)行:軟件、服務(wù)器、網(wǎng)絡(luò)。
軟件主要是分析具體事務(wù)執(zhí)行時(shí)間,尤其并發(fā)用戶部分,根據(jù)測(cè)試工具測(cè)試出的結(jié)果分析那些事務(wù)執(zhí)行的慢,然后可以分析執(zhí)行較慢的代碼,針對(duì)網(wǎng)頁(yè)可以分析具體的頁(yè)面元素執(zhí)行情況。
服務(wù)器的分析要結(jié)合軟件的運(yùn)行情況進(jìn)行分析,著重分析硬件的執(zhí)行參數(shù),CPU、硬盤(pán)、內(nèi)存、中斷、內(nèi)存等情況,分析尤其要注意對(duì)這些參數(shù)進(jìn)行綜合分析,往往各個(gè)參數(shù)之間會(huì)互相影響,最后在調(diào)查、分析整體系統(tǒng)的基礎(chǔ)上,找出影響服務(wù)器整體性能的瓶頸,確定相應(yīng)的升級(jí)需求:
1. 服務(wù)器硬盤(pán)負(fù)載較重,需增加硬盤(pán)。
2. CPU整體性能偏低,需增加或更新CPU。
3. 網(wǎng)卡性能偏低,需更換光纖網(wǎng)卡。
4. 硬盤(pán)I/O負(fù)載任務(wù)繁重,需使用高轉(zhuǎn)速硬盤(pán)或采用RAID卡。
5. 內(nèi)存資源短缺,需增大內(nèi)存。
6. 其他方面,需要升級(jí)軟件系統(tǒng)、合理進(jìn)行子網(wǎng)劃分、加強(qiáng)管理等。
網(wǎng)絡(luò)性能分析要結(jié)合結(jié)合服務(wù)器和測(cè)試目標(biāo)軟件,通常網(wǎng)絡(luò)傳輸慢會(huì)有軟件和服務(wù)器方面的原因,甚至有時(shí)候會(huì)有客戶端方面的原因。不過(guò)目前網(wǎng)絡(luò)的環(huán)境普遍可以,不管是局域網(wǎng)還是廣域網(wǎng),網(wǎng)絡(luò)的環(huán)境越來(lái)越好。
3用例管理
測(cè)試用例的管理我們可以借鑒開(kāi)發(fā)過(guò)程中對(duì)程序的管理方法,我們可以把測(cè)試用例看成程序––測(cè)試工程師編寫(xiě)的程序,這個(gè)程序也要經(jīng)過(guò)“設(shè)計(jì)”、“開(kāi)發(fā)”、“測(cè)試”、“版本管理”、“發(fā)布”、“維護(hù)”等一系列操作,然后按照管理軟件程序的方法來(lái)管理測(cè)試用例。
用例管理主要包含評(píng)審、修改、執(zhí)行用例、用例版本維護(hù)、用例升級(jí)方面的內(nèi)容。
3.1 用例評(píng)審
測(cè)試用例評(píng)審是測(cè)試用例不可缺少的一個(gè)環(huán)節(jié),這是對(duì)“測(cè)試部門(mén)開(kāi)發(fā)出的產(chǎn)品”進(jìn)行的“測(cè)試”。基本思路是對(duì)測(cè)試準(zhǔn)備階段的成果進(jìn)行分期評(píng)審,依次評(píng)審系統(tǒng)/驗(yàn)收測(cè)試用例、集成測(cè)試用例、單元測(cè)試用例。
評(píng)審用例在比較正規(guī)的公司更容易實(shí)施,要求相應(yīng)的軟件開(kāi)發(fā)團(tuán)隊(duì)必須在實(shí)際工作中對(duì)測(cè)試給予足夠的重視,才可以把這項(xiàng)工作做好,否則只是走走形式。有效的用例評(píng)審?fù)ǔS上旅鎯煞N形式組成:
測(cè)試部門(mén)外部評(píng)審––主要是由開(kāi)發(fā)部、項(xiàng)目實(shí)施部、甚至銷售人員參加的評(píng)審,目的主要是查找測(cè)試工程師編寫(xiě)的用例是否缺少內(nèi)容。建議采用非正式評(píng)審的形式進(jìn)行,因?yàn)槲覀兒茈y把開(kāi)發(fā)人員組織在一起,一般來(lái)說(shuō)他們的開(kāi)發(fā)進(jìn)度壓力很大,能夠抽出時(shí)間看文檔已經(jīng)是“很給面子了”。當(dāng)然不統(tǒng)一進(jìn)行評(píng)審會(huì)耽誤工程的進(jìn)度,所以在實(shí)際工作中如果時(shí)間緊迫,可以提前啟動(dòng)測(cè)試實(shí)施工作,待評(píng)審?fù)瓿珊筮M(jìn)行用例的修改工作。通常測(cè)試工作進(jìn)行一段時(shí)間評(píng)審就會(huì)結(jié)束,這個(gè)時(shí)候測(cè)試執(zhí)行人員可以在工作中對(duì)測(cè)試用例的內(nèi)容進(jìn)行動(dòng)態(tài)的調(diào)整,再次執(zhí)行被修改過(guò)的部分用例(如果能夠采用正式評(píng)審,效果肯定會(huì)更好。)。
外部評(píng)審主要工作方式是用文檔直接記錄評(píng)審結(jié)果,測(cè)試人員根據(jù)評(píng)審結(jié)果對(duì)用例進(jìn)行升級(jí)修改。
測(cè)試部門(mén)內(nèi)部評(píng)審––部門(mén)內(nèi)部同行對(duì)測(cè)試策略的評(píng)審,評(píng)審的核心內(nèi)容是測(cè)試策略和用例編制思路是否正確,以此來(lái)保證測(cè)試用例的有效性。可以組織正式的評(píng)審,由用例的設(shè)計(jì)人員進(jìn)行講解,然后大家共同評(píng)審;也可以把文檔發(fā)給部門(mén)的同事進(jìn)行評(píng)審。內(nèi)部評(píng)審有些象開(kāi)發(fā)人員在單元測(cè)試中的交叉測(cè)試。
內(nèi)部評(píng)審的主要工作方式是項(xiàng)目會(huì)議,大家可以進(jìn)行激烈的討論,共同探討用例編寫(xiě)、交流經(jīng)驗(yàn),這樣用例的編寫(xiě)水平才能提高,同時(shí)可以進(jìn)行一些創(chuàng)新。
評(píng)審方式中的外部評(píng)審最為重要。因?yàn)殚_(kāi)發(fā)人員很容易發(fā)現(xiàn)用例中遺漏了什么內(nèi)容,同時(shí)還可以發(fā)現(xiàn)錯(cuò)誤的用例––因?yàn)榇嬖趯?duì)需求理解的偏差。用例外部評(píng)審可以理解為開(kāi)發(fā)人員在查找測(cè)試人員編寫(xiě)的“程序”缺陷。
通常情況下先執(zhí)行內(nèi)部評(píng)審,然后執(zhí)行外部評(píng)審。很多時(shí)候,內(nèi)部評(píng)審會(huì)被忽略,建議要進(jìn)行內(nèi)部評(píng)審。這樣至少有兩個(gè)好處:集思廣益和提高測(cè)試小組輸出文檔的質(zhì)量。
3.2 管理方案
國(guó)內(nèi)大多數(shù)IT公司在測(cè)試用例的發(fā)展經(jīng)歷了以下幾個(gè)階段:
- 無(wú)用例而執(zhí)行測(cè)試:測(cè)試的初級(jí)階段,完全手工測(cè)試,測(cè)試執(zhí)行工程中沒(méi)有測(cè)試用例作為執(zhí)行依據(jù),可能會(huì)按照需求進(jìn)行測(cè)試;
- 有用例而不使用用例執(zhí)行測(cè)試:已經(jīng)編寫(xiě)測(cè)試用例,但是受各種環(huán)境的影響,例如需求變動(dòng)頻繁、編寫(xiě)的用例過(guò)于簡(jiǎn)單等,測(cè)試用例編寫(xiě)后在實(shí)際工作中不能使用;
- 按照部分用例執(zhí)行測(cè)試:隨著用例編寫(xiě)水平的提高,部分測(cè)試用例可以在測(cè)試中發(fā)揮作用;
- 完全按照用例執(zhí)行測(cè)試:組織建立了規(guī)范的項(xiàng)目管理過(guò)程,對(duì)測(cè)試用例進(jìn)行規(guī)范的管理,執(zhí)行測(cè)試用例以用例為準(zhǔn)則來(lái)執(zhí)行測(cè)試。
完全按照測(cè)試用例執(zhí)行測(cè)試是一個(gè)公司測(cè)試水平的體現(xiàn),測(cè)試用例管理成為這一階段的主要內(nèi)容。測(cè)試用例管理的核心內(nèi)容是版本管理。如果測(cè)試用例是采用文字編輯軟件例如word編寫(xiě),建議采用工具(例如Visual SourceSafe)對(duì)用例進(jìn)行控制。可以參照?qǐng)D2進(jìn)行。
編寫(xiě)用例
用例評(píng)審
進(jìn)入版本控制庫(kù)
用例修改
使用用例&維護(hù)&升級(jí)
圖2 測(cè)試用例管理示意圖
1、 編寫(xiě)用例:測(cè)試工程師根據(jù)需求分析、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)等文檔編寫(xiě)測(cè)試用例。
2、 用例評(píng)審:3.1小結(jié)說(shuō)明了用例的評(píng)審。原則上用例像程序一樣,要經(jīng)過(guò)多次的修改才可以通過(guò),而實(shí)際工作中只進(jìn)行一到兩次。
3、 用例修改:評(píng)審結(jié)束后,需要根據(jù)評(píng)審意見(jiàn)進(jìn)行修改,修改后通常不再進(jìn)行評(píng)審。建議在時(shí)間和人力資源比較充裕的情況下,對(duì)用例的評(píng)審要像測(cè)試開(kāi)發(fā)部門(mén)的產(chǎn)品一樣,經(jīng)過(guò)反復(fù)的評(píng)審和修改,然后正式投入使用,因?yàn)槊看卧u(píng)審可能都有新的發(fā)現(xiàn)。
4、 使用用例:在執(zhí)行任務(wù)時(shí),從版本控制庫(kù)取出用例,執(zhí)行時(shí)建議直接在用例上記錄測(cè)試結(jié)果。這樣做會(huì)帶來(lái)兩個(gè)好處:首先是下次測(cè)試時(shí)可以看見(jiàn)上次測(cè)試的結(jié)果記錄,可以起一個(gè)提醒的作用;其次可以一次性的把發(fā)現(xiàn)的缺陷輸入到缺陷跟蹤數(shù)據(jù)庫(kù)中,在輸入時(shí)可以進(jìn)行綜合統(tǒng)計(jì),避免輸入重復(fù)的缺陷。每次使用后送入版本控制庫(kù)中,進(jìn)行版本的管理。
5、 用例升級(jí)/維護(hù):隨著軟件產(chǎn)品的不斷修改、升級(jí),對(duì)應(yīng)的用例也需要升級(jí)和維護(hù)。針對(duì)同一個(gè)項(xiàng)目,可以根據(jù)需求的變更不斷進(jìn)行維護(hù);如果是產(chǎn)品,用例的維護(hù)則更加重要,要達(dá)到用例和產(chǎn)品的版本一一對(duì)應(yīng)。
測(cè)試用例的管理還可以采用專門(mén)的測(cè)試軟件例如TestDirector等來(lái)進(jìn)行管理,測(cè)試工具通常會(huì)具備上面的功能。如果有條件,建議采用集成華的測(cè)試工具,這樣更容易對(duì)測(cè)試執(zhí)行全程進(jìn)行監(jiān)控,可以把測(cè)試需求、測(cè)試用例、缺陷管理統(tǒng)一起來(lái),大大提高測(cè)試效率。
在測(cè)試用例管理規(guī)范化并成為測(cè)試的執(zhí)行準(zhǔn)則后,管理測(cè)試用例帶來(lái)的巨大好處開(kāi)始逐漸顯現(xiàn)出來(lái),測(cè)試用例成為評(píng)估測(cè)試和改進(jìn)測(cè)試工作的主要依據(jù),可以給工具帶來(lái)巨大的方便。例如可以通過(guò)測(cè)試用例的執(zhí)行情況來(lái)統(tǒng)計(jì)分析執(zhí)行結(jié)果,編寫(xiě)測(cè)試報(bào)告,判斷軟件測(cè)試是否完成,通過(guò)統(tǒng)計(jì)測(cè)試覆蓋率、測(cè)試合格率、重要測(cè)試對(duì)象的合格率是多少來(lái)完成對(duì)軟件質(zhì)量的評(píng)估;尤其是新員工到崗后,可以更容易介入工作。
總之,不管是性能測(cè)試還是其它測(cè)試都要本著“一切從實(shí)際出發(fā)”的原則,根據(jù)不同產(chǎn)品的特性進(jìn)行用例編寫(xiě),最后按照要求完成測(cè)試,達(dá)到提高產(chǎn)品質(zhì)量的目的。在測(cè)試用例的編寫(xiě)過(guò)程中,尤其要記得“創(chuàng)新”,如果長(zhǎng)期依靠某一測(cè)試用例編寫(xiě)模式、采用某些固定的模板,測(cè)試用例編寫(xiě)工作肯定會(huì)停滯在某一層次上不再發(fā)展,一定要跟著測(cè)試對(duì)象的不斷變化來(lái)調(diào)整策略,在具體的工作中改進(jìn)和提高,才能“開(kāi)發(fā)”出優(yōu)秀的測(cè)試用例!