葉素梅 肖寒
摘要:測(cè)試用例的復(fù)用能夠節(jié)約產(chǎn)品開(kāi)發(fā)的成本,特別是在重復(fù)率較高的儀器制造類(lèi)軟件測(cè)試中,能夠大大提高軟件測(cè)試的效率。在“測(cè)試任務(wù)”→“測(cè)試組”→“測(cè)試用例”三層復(fù)用模型基礎(chǔ)上,設(shè)計(jì)并優(yōu)化了測(cè)試用例數(shù)據(jù)庫(kù),實(shí)現(xiàn)了測(cè)試用例的復(fù)用。通過(guò)測(cè)試用例庫(kù)的復(fù)用,對(duì)測(cè)試任務(wù)生成、測(cè)試用例復(fù)用執(zhí)行、測(cè)試報(bào)告生成和測(cè)試用例的批量導(dǎo)入等進(jìn)行了討論。
關(guān)鍵詞:測(cè)試用例;復(fù)用模型;用例庫(kù);業(yè)務(wù)邏輯
中圖分類(lèi)號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)32-0272-02
Abstract: The reuse of test cases can save the cost of product development, especially in the instrument manufacturing software test with high repetition rate, which can greatly improve the efficiency of software testing. Based on the "test task"-"test group"-"test case" three-layer reuse model, the test case database is designed and optimized to realize the reuse of test cases. Through the reuse of the test case database, the test task generation, test case reuse execution, test report generation, and batch import of test cases are discussed.
Key words: Test case; Reuse model; Database; Business logic
軟件測(cè)試是對(duì)項(xiàng)目開(kāi)發(fā)生成的產(chǎn)品進(jìn)行差錯(cuò)審查,包括軟件代碼和技術(shù)文檔等。它是軟件開(kāi)發(fā)過(guò)程中的重要環(huán)節(jié),也是保證軟件質(zhì)量的主要手段。嚴(yán)格的軟件測(cè)試,能夠減少產(chǎn)品的缺陷,有效地降低后期項(xiàng)目維護(hù)成本[1]。隨著軟件質(zhì)量意識(shí)的提高,在整個(gè)軟件工程中,軟件測(cè)試費(fèi)用的比重越來(lái)越高。通過(guò)軟件測(cè)試用例的復(fù)用,能夠大大節(jié)約軟件測(cè)試的成本[2]。在一些與硬件結(jié)合比較緊密的儀器制造行業(yè),比如光刻機(jī)制造業(yè)等,軟件測(cè)試中測(cè)試用例重復(fù)度較高,測(cè)試用例的復(fù)用能顯著提高測(cè)試的效率。此外,測(cè)試用例的復(fù)用還可以規(guī)范軟件測(cè)試行為,避免軟件測(cè)試過(guò)多依賴于測(cè)試人員的個(gè)人經(jīng)驗(yàn),導(dǎo)致用例編寫(xiě)的格式不統(tǒng)一,給測(cè)試帶來(lái)較大的盲目性的情形[3]。
在與硬件結(jié)合緊密的儀器制造業(yè)的軟件開(kāi)發(fā)中,軟件測(cè)試用例的重復(fù)率比較高[4]。雖然產(chǎn)品的版本不斷更新,但是測(cè)試用例的重復(fù)率有時(shí)高達(dá)60%。本文在前期已有大量測(cè)試用例的基礎(chǔ)上,通過(guò)建立數(shù)據(jù)庫(kù)復(fù)用模型,對(duì)測(cè)試用例進(jìn)行管理,提出了基于測(cè)試用例庫(kù)的復(fù)用方法,大大提高了軟件測(cè)試的效率。
1 測(cè)試用例復(fù)用模型
1.1 總體分析
對(duì)于一些儀器制造業(yè)的軟件測(cè)試項(xiàng)目,因?yàn)橹黧w軟件程序相對(duì)固定,在對(duì)新增功能或者升級(jí)版本進(jìn)行測(cè)試時(shí),有很大一部分測(cè)試用例是以前已經(jīng)編寫(xiě)好的用例。在用例復(fù)用之前,需要規(guī)范這些用例的格式,每個(gè)用例使用統(tǒng)一的編號(hào),以便唯一標(biāo)識(shí),便于訪問(wèn)。
根據(jù)業(yè)務(wù)邏輯,生成若干個(gè)測(cè)試組,如水平向測(cè)試組,軸向?qū)?zhǔn)測(cè)試組等。每一測(cè)試組擁有唯一的組號(hào)。一個(gè)業(yè)務(wù)邏輯可以包含一個(gè)或若干個(gè)測(cè)試組。根據(jù)實(shí)際業(yè)務(wù)需要,每個(gè)測(cè)試組包含一個(gè)或若干個(gè)已編號(hào)測(cè)試用例。
通過(guò)“測(cè)試任務(wù)”→“測(cè)試組”→“測(cè)試用例”三層模型,可以實(shí)現(xiàn)測(cè)試用例的復(fù)用。該模型從左到右,都是一對(duì)多的關(guān)系。
1.2 測(cè)試用例數(shù)據(jù)的流轉(zhuǎn)過(guò)程
圖1給出了測(cè)試用例庫(kù)中,測(cè)試用例的添加和復(fù)用的過(guò)程。測(cè)試用例庫(kù)中新增用例時(shí),首先要確保測(cè)試用例格式規(guī)范,且擁有唯一的測(cè)試用例編號(hào)。同時(shí),必須將測(cè)試用例與對(duì)應(yīng)的業(yè)務(wù)邏輯分組表進(jìn)行關(guān)聯(lián),更新測(cè)試用例分組表信息。完成了這些操作后,可以將測(cè)試用例加入當(dāng)前測(cè)試用例庫(kù)中。
測(cè)試用例在復(fù)用時(shí),根據(jù)測(cè)試的任務(wù)要求,將任務(wù)分解成對(duì)應(yīng)的測(cè)試用例組信息,然后通過(guò)數(shù)據(jù)庫(kù)查詢功能,對(duì)當(dāng)前用例庫(kù)進(jìn)行查詢,對(duì)返回的測(cè)試用例進(jìn)行直接復(fù)用。如果某個(gè)特定測(cè)試需求,用例庫(kù)中沒(méi)有合適的用例返回或者臨時(shí)需要新增測(cè)試用例,測(cè)試人員可以手動(dòng)增加測(cè)試實(shí)例,該實(shí)例可以通過(guò)例化添加的形式新增到當(dāng)前測(cè)試用例庫(kù)中。測(cè)試用例編號(hào)也是唯一的,用例組編號(hào)為當(dāng)前測(cè)試組編號(hào)。
2 測(cè)試用例數(shù)據(jù)庫(kù)的設(shè)計(jì)與優(yōu)化
2.1 核心表格的設(shè)計(jì)
在測(cè)試用例庫(kù)數(shù)據(jù)中,主要有業(yè)務(wù)邏輯信息表、測(cè)試用例分組信息表、測(cè)試用例信息表等。業(yè)務(wù)邏輯信息表給出了每一種業(yè)務(wù)邏輯所包括的用例分組號(hào),它包含業(yè)務(wù)編號(hào)、業(yè)務(wù)名稱(chēng)、業(yè)務(wù)描述、用例分組號(hào)等字段。一個(gè)業(yè)務(wù)編號(hào)可以對(duì)應(yīng)多個(gè)用例分組號(hào),如表1所示。測(cè)試用例分組信息表給出了分組與測(cè)試用例的對(duì)應(yīng)關(guān)系。它包含用例分組號(hào)、分組名稱(chēng)、分組描述、測(cè)試用例號(hào)等字段。每一個(gè)測(cè)試用例分組包含多個(gè)測(cè)試用例。測(cè)試用例信息表主要是維護(hù)測(cè)試用例的編號(hào)和部分測(cè)試用例數(shù)據(jù)。很多測(cè)試用例的數(shù)據(jù)通過(guò)測(cè)試用例編號(hào)從外部程序中導(dǎo)入到測(cè)試系統(tǒng)中。
2.2 數(shù)據(jù)庫(kù)性能優(yōu)化
測(cè)試用例數(shù)據(jù)庫(kù)系統(tǒng)可采用開(kāi)源的MySQL數(shù)據(jù)庫(kù)。隨著測(cè)試用例數(shù)據(jù)規(guī)模的擴(kuò)大,以及測(cè)試連接數(shù)的增加,數(shù)據(jù)庫(kù)的響應(yīng)速度會(huì)下降。為了改善系統(tǒng)的性能,除了計(jì)算機(jī)硬件和網(wǎng)絡(luò)設(shè)備的升級(jí)擴(kuò)容以外,也需要通過(guò)查詢優(yōu)化來(lái)提高系統(tǒng)性能。查詢是整個(gè)數(shù)據(jù)庫(kù)操作中最常見(jiàn)的操作,占了很大的比重[5]。在查詢時(shí),應(yīng)該盡量避免全表查詢,任何地方都不使用select * from [表],而是用具體的字段代替“*”。通過(guò)這些查詢優(yōu)化措施,提高系統(tǒng)的性能。
3 業(yè)務(wù)應(yīng)用
3.1 批量導(dǎo)入工具開(kāi)發(fā)
在測(cè)試用例庫(kù)構(gòu)建時(shí),對(duì)于前期已有的規(guī)模較大的成熟測(cè)試用例,都需要規(guī)范化后加入用例庫(kù)內(nèi)。通過(guò)手動(dòng)逐條輸入效率比較低,而且也容易出錯(cuò)。此時(shí),可以通過(guò)編寫(xiě)專(zhuān)用工具進(jìn)行測(cè)試用例的批量導(dǎo)入。比較簡(jiǎn)單的做法是通過(guò)建立EXCEL表格進(jìn)行用例導(dǎo)入,該表格中有三個(gè)關(guān)鍵字段,分別是用例編號(hào)、用例分組號(hào)和業(yè)務(wù)編號(hào)。批量導(dǎo)入時(shí),數(shù)據(jù)庫(kù)會(huì)根據(jù)關(guān)鍵字段自動(dòng)在用例庫(kù)內(nèi)添加記錄。
3.2 測(cè)試任務(wù)生成
使用測(cè)試用例庫(kù)進(jìn)行復(fù)用測(cè)試時(shí),拿到測(cè)試任務(wù)后,首先需要根據(jù)業(yè)務(wù)邏輯生成測(cè)試任務(wù)表。這個(gè)表格中記錄了測(cè)試任務(wù)所覆蓋的所有業(yè)務(wù)編號(hào)。通過(guò)業(yè)務(wù)編號(hào)進(jìn)行查詢,能夠自動(dòng)獲得所有可復(fù)用的測(cè)試用例。目前,測(cè)試任務(wù)表的生成還需要人工干預(yù),由測(cè)試人員判斷具體的測(cè)試內(nèi)容,手動(dòng)勾選業(yè)務(wù)編號(hào)。
3.3 測(cè)試用例復(fù)用執(zhí)行
測(cè)試用例復(fù)用執(zhí)行時(shí),一個(gè)測(cè)試任務(wù)被分解為多個(gè)業(yè)務(wù)編號(hào)的測(cè)試子任務(wù),多名測(cè)試人員可以協(xié)同工作。拿到一個(gè)業(yè)務(wù)編號(hào)后,通過(guò)SQL查詢,自動(dòng)在測(cè)試用例庫(kù)內(nèi)匹配相關(guān)的測(cè)試分組,一般每個(gè)業(yè)務(wù)編號(hào)下有5-7個(gè)不等的測(cè)試分組。測(cè)試人員對(duì)每個(gè)測(cè)試分組再次查詢,逐一調(diào)出組內(nèi)記錄的測(cè)試用例進(jìn)行復(fù)用測(cè)試。測(cè)試用例的數(shù)據(jù)調(diào)入有兩種形式:用例庫(kù)直接調(diào)入和外部程序?qū)?。?duì)于簡(jiǎn)單類(lèi)型(文本型、數(shù)字類(lèi)型)的測(cè)試用例數(shù)據(jù),直接記錄在用例數(shù)據(jù)庫(kù)內(nèi)的,測(cè)試是數(shù)據(jù)直接導(dǎo)入。對(duì)于復(fù)雜數(shù)據(jù)類(lèi)型,測(cè)試用例庫(kù)內(nèi)記錄了數(shù)據(jù)的路徑,通過(guò)外部程序可以導(dǎo)入測(cè)試數(shù)據(jù)。
對(duì)于個(gè)別用例庫(kù)內(nèi)的測(cè)試用例無(wú)法覆蓋測(cè)試任務(wù)的情形,適用例化添加和例化復(fù)用。例化添加時(shí),由測(cè)試人員編寫(xiě)規(guī)范的測(cè)試用例,并提交審核。測(cè)試用例通過(guò)審核以后,可以加入當(dāng)前測(cè)試用例庫(kù)中,供其他測(cè)試人員復(fù)用。
3.4 測(cè)試報(bào)告生成
測(cè)試人員根據(jù)業(yè)務(wù)編號(hào)查詢后,測(cè)試用例庫(kù)會(huì)自動(dòng)返回可復(fù)用的所有測(cè)試用例列表。每個(gè)測(cè)試用例都必須記錄測(cè)試結(jié)果(勾選測(cè)試是否通過(guò))。如果測(cè)試發(fā)現(xiàn)缺陷,該項(xiàng)測(cè)試用例的數(shù)據(jù)會(huì)附在測(cè)試報(bào)告中。測(cè)試報(bào)告會(huì)自動(dòng)統(tǒng)計(jì)沒(méi)有通過(guò)的缺陷數(shù)目。目前,測(cè)試報(bào)告中還不支持缺陷分級(jí)。
4 結(jié)論
測(cè)試用例的復(fù)用可以大大提高測(cè)試效率,特別是在測(cè)試用例重復(fù)率較高的儀器制造業(yè)相關(guān)軟件測(cè)試中,能夠節(jié)約產(chǎn)品開(kāi)發(fā)的成本。本文通過(guò)建立“測(cè)試任務(wù)”→“測(cè)試組”→“測(cè)試用例”三層復(fù)用模型,并使用測(cè)試用例數(shù)據(jù)庫(kù)進(jìn)行管理,實(shí)現(xiàn)了對(duì)測(cè)試用例的復(fù)用。
參考文獻(xiàn):
[1] 楊波,吳際,徐珞,等. 一種軟件測(cè)試需求建模及測(cè)試用例生成方法[J].計(jì)算機(jī)學(xué)報(bào), 2014, 37(3): 522-538.
[2] 肖寒,顧春華.一種基于Z規(guī)格說(shuō)明的測(cè)試用例復(fù)用機(jī)制[J].計(jì)算機(jī)應(yīng)用與軟件, 2009, 26(12): 135-138.
[3] 趙杰,張晶,高繼森. 基于XML的測(cè)試用例復(fù)用[J].重慶理工大學(xué)學(xué)報(bào),2007,21(9): 40-43.
[4] 王暉,張凱.艦船裝備軟件測(cè)試用例復(fù)用技術(shù)研究[J].船舶標(biāo)準(zhǔn)化與質(zhì)量,2016, 4): 39-44.
[5] 袁佰順,朱擁軍,李曉鶴,等.基于ORACLE的隴東南區(qū)域自動(dòng)氣象站數(shù)據(jù)庫(kù)設(shè)計(jì)及應(yīng)用[J].干旱氣象,2014, (3): 475-480.
【通聯(lián)編輯:梁書(shū)】