基于分詞搜索的測(cè)試用例復(fù)用研究論文
摘 要 隨著軟件行業(yè)快速發(fā)展,軟件功能的復(fù)雜程度隨之提高,軟件質(zhì)量逐漸受到重視。在軟件的整個(gè)生命周期中,軟件測(cè)試是一個(gè)非常重要的環(huán)節(jié)。軟件質(zhì)量在很大程度上由軟件測(cè)試的完整程度所決定。然而,隨著軟件復(fù)雜度的提高,軟件測(cè)試的工作成本在不斷增加。為了減少測(cè)試中的冗余現(xiàn)象,提高軟件測(cè)試的效率,測(cè)試用例復(fù)用技術(shù)被應(yīng)用于各個(gè)軟件測(cè)試環(huán)節(jié)。本文建立了一套測(cè)試用例管理系統(tǒng),通過統(tǒng)一存儲(chǔ)并管理測(cè)試用例,提出將分詞技術(shù)應(yīng)用于測(cè)試用例復(fù)用查詢,提高測(cè)試用例查詢結(jié)果的有效性和可復(fù)用性。
關(guān)鍵詞 軟件測(cè)試,測(cè)試用例,復(fù)用,分詞
0 引言
軟件測(cè)試是在規(guī)定的條件下對(duì)程序進(jìn)行操作,以發(fā)現(xiàn)程序錯(cuò)誤,由此來(lái)衡量軟件質(zhì)量,并對(duì)其是否能滿足設(shè)計(jì)要求進(jìn)行評(píng)估的過程。作為軟件生命周期中的重要環(huán)節(jié),其成敗直接決定著軟件的最終質(zhì)量。軟件測(cè)試工作不僅保證了軟件質(zhì)量,而且降低了日后維護(hù)成本。隨著我國(guó)軟件產(chǎn)業(yè)的蓬勃發(fā)展以及對(duì)軟件質(zhì)量的重視,軟件測(cè)試也逐漸受到軟件企業(yè)的關(guān)注,正逐步成為一個(gè)新興的產(chǎn)業(yè)。測(cè)試用例是為某個(gè)特殊目標(biāo)而編制的一組測(cè)試輸入、執(zhí)行條件以及預(yù)期結(jié)果,用于測(cè)試某個(gè)程序路徑或核實(shí)是否滿足某個(gè)特定需求。
隨著軟件規(guī)模越來(lái)越龐大,軟件測(cè)試的工作量也與日俱增。軟件測(cè)試過程中,測(cè)試用例的設(shè)計(jì)是軟件測(cè)試過程的核心,直接影響了軟件測(cè)試的效率。測(cè)試設(shè)計(jì)的好快直接決定著測(cè)試結(jié)果及其成效,測(cè)試用例是最有可能發(fā)現(xiàn)軟件錯(cuò)誤的測(cè)試數(shù)據(jù)和流程的集合。測(cè)試用例復(fù)用是將已執(zhí)行過的測(cè)試用例重復(fù)使用或改進(jìn)使用于不同的軟件或軟件測(cè)試階段中,以此來(lái)降低測(cè)試用例設(shè)計(jì)環(huán)節(jié)的工作成本。為了提高軟件測(cè)試的效率,測(cè)試用例復(fù)用技術(shù)被廣泛地應(yīng)用于各類軟件測(cè)試的設(shè)計(jì)和回歸測(cè)試階段,用于減少測(cè)試設(shè)計(jì)階段的成本,以縮短測(cè)試周期,提高測(cè)試效率。本文通過對(duì)可復(fù)用測(cè)試用例的收集以及分析,提出了一種以行業(yè)領(lǐng)域和基于分詞搜索策略的測(cè)試用例復(fù)用思路,以提高測(cè)試用例的復(fù)用率。但是當(dāng)測(cè)試用例管理系統(tǒng)中的測(cè)試用例數(shù)量過于龐大時(shí),則不利于測(cè)試用例的篩選,因此有必要設(shè)計(jì)了推薦算法來(lái)按照一定規(guī)則對(duì)可能被復(fù)用的測(cè)試用例進(jìn)行排序推薦。
1 測(cè)試用例復(fù)用研究
1.1 測(cè)試用例復(fù)用的概念
測(cè)試用例復(fù)用是指測(cè)試工程師在執(zhí)行一項(xiàng)新的測(cè)試工作時(shí),通過直接調(diào)用或修改現(xiàn)有的、合適的測(cè)試用例,并將其應(yīng)用在測(cè)試執(zhí)行中的過程。如果搜索后得到的測(cè)試用例與需求完全一致,則直接復(fù)用現(xiàn)有測(cè)試用例,但是一般情況下,直接復(fù)用測(cè)試用例的情況很少;如果搜索到的測(cè)試用例與需求近似,則對(duì)其進(jìn)行修改,得到新的測(cè)試用例之后再?gòu)?fù)用。在一定程度上,測(cè)試用例復(fù)用可以節(jié)省重新設(shè)計(jì)測(cè)試用例的時(shí)間,減少測(cè)試工程師的工作量,提高軟件測(cè)試的效率。
然而,并非所有的測(cè)試用例都適合復(fù)用,有些測(cè)試用例定制化程度較高,只適合某些特定的測(cè)試場(chǎng)景,這樣的測(cè)試用例可復(fù)用程度不高。由此可知,測(cè)試用例要能進(jìn)行復(fù)用,須具備一定的可復(fù)用特性。
1.2 可復(fù)用測(cè)試用例特性
經(jīng)過對(duì)大量可復(fù)用測(cè)試用例的收集以及分析,本文認(rèn)為可復(fù)用測(cè)試用例需滿足以下5個(gè)特性:標(biāo)準(zhǔn)化、通用性、有效性、獨(dú)立性、小粒度1]。
1) 標(biāo)準(zhǔn)化。測(cè)試用例通常用自然語(yǔ)言進(jìn)行描述,但由于自然語(yǔ)言的非結(jié)構(gòu)化特性,無(wú)統(tǒng)一結(jié)構(gòu)的測(cè)試用例不利于測(cè)試用例復(fù)用。因此,測(cè)試用例的設(shè)計(jì)必須使用統(tǒng)一的格式或結(jié)構(gòu),以消除由于自然語(yǔ)言的表述的差異帶來(lái)的問題。標(biāo)準(zhǔn)化不僅強(qiáng)調(diào)測(cè)試用例的可復(fù)用能力,更偏向于測(cè)試用例管理。采用明確無(wú)歧義的語(yǔ)言描述測(cè)試用例并用統(tǒng)一結(jié)構(gòu)進(jìn)行存儲(chǔ),如表1測(cè)試用例描述案例所示2]。其中,加粗字體表示測(cè)試用例的字段,中括號(hào) ]里的內(nèi)容表示測(cè)試用例的具體內(nèi)容或相關(guān)屬性。
2) 有效性:測(cè)試用例的目標(biāo)是發(fā)現(xiàn)軟件中的問題或者驗(yàn)證功能是否正確,因此測(cè)試用例必須是針對(duì)它的'測(cè)試目的而設(shè)計(jì),并且經(jīng)審核后必須是正確、完整、適用于被測(cè)對(duì)象并且是可執(zhí)行的。
3) 通用性:測(cè)試用例不局限于具體的應(yīng)用,不過分依賴于被測(cè)軟件的需求、設(shè)計(jì)、環(huán)境、其他功能以及其他業(yè)務(wù)流程,可復(fù)用測(cè)試用例可多次適用于不同版本的軟件測(cè)試或廣泛應(yīng)用于某同類軟件或類似功能模塊的測(cè)試。
4) 獨(dú)立性:測(cè)試用例不過分受制于測(cè)試環(huán)境、相關(guān)業(yè)務(wù)流程以及前置測(cè)試用例。理論上,測(cè)試用例與其他因素的耦合度越小,則獨(dú)立性也就越高,其測(cè)試用例的可復(fù)用程度相對(duì)較高。
5) 小粒度:通常指一個(gè)被測(cè)模塊的末梢功能,測(cè)試用例的粒度設(shè)計(jì)追求功能的不可分割性。粒度越小并且相對(duì)獨(dú)立的功能,針對(duì)其功能設(shè)計(jì)的用例,可復(fù)用性也就越高。
以登錄功能舉例,該功能相對(duì)于整個(gè)應(yīng)用系統(tǒng)來(lái)說(shuō)粒度最小,并且與其他功能相對(duì)獨(dú)立,同時(shí),針對(duì)登錄功能設(shè)計(jì)的測(cè)試用例具有較強(qiáng)的通用性,所以通常情況下,登錄功能的測(cè)試用例具有較高的可復(fù)用性。
1.3 測(cè)試用例復(fù)用場(chǎng)景
然而,并非所有的軟件測(cè)試過程都適合進(jìn)行測(cè)試用例復(fù)用。測(cè)試用例復(fù)用是為了避免測(cè)試用例的重復(fù)設(shè)計(jì),提供現(xiàn)有的測(cè)試用例給測(cè)試工程師直接使用。因此,只有在需要重復(fù)執(zhí)行的測(cè)試用例時(shí),測(cè)試用例的復(fù)用才能真正發(fā)揮作用。通常情況下,測(cè)試用例復(fù)用主要由三類測(cè)試場(chǎng)景3]:
1) 軟件升級(jí):包括版本升級(jí)、缺陷修復(fù)等升級(jí)行為。例如:一家公司的業(yè)務(wù)管理系統(tǒng)的升級(jí),或某個(gè)功能的改進(jìn)。通常不會(huì)引起非常大的業(yè)務(wù)流程變動(dòng)或界面改動(dòng),因此前一個(gè)版本的測(cè)試用例可被大量復(fù)用。
2) 產(chǎn)品測(cè)試:此類場(chǎng)景多存在于軟件研發(fā)公司,多從事于某個(gè)領(lǐng)域的軟件研發(fā)工作,通常此類公司有著自己的測(cè)試用例庫(kù)。比如:從事ERP(企業(yè)資源計(jì)劃)軟件開發(fā)的公司。雖然不同行業(yè)的業(yè)務(wù)流程都不完全一致,但也有存類似的可復(fù)用業(yè)務(wù)流程,例如員工管理模塊等。
3) 第三方測(cè)評(píng)4]:第三方測(cè)評(píng)機(jī)構(gòu)適用于此類測(cè)試用例復(fù)用場(chǎng)景。由于第三方測(cè)試機(jī)構(gòu)會(huì)對(duì)大量的軟件進(jìn)行測(cè)評(píng),其中不乏相同領(lǐng)域的軟件產(chǎn)品。如果對(duì)每個(gè)測(cè)試軟件重新設(shè)計(jì)測(cè)試用例,必然增加工作成本。因此,對(duì)于第三方測(cè)評(píng)機(jī)構(gòu)測(cè)試用例復(fù)用是十分有必要的。測(cè)試用例復(fù)用在不同領(lǐng)域和場(chǎng)景中有著廣泛應(yīng)用,對(duì)于大量測(cè)試用例的復(fù)用需要建立在大量測(cè)試用例基礎(chǔ)上,需要將以往設(shè)計(jì)的測(cè)試用例加以存儲(chǔ)和管理,因此設(shè)計(jì)一套測(cè)試用例管理系統(tǒng)是測(cè)試用例復(fù)用成為可能的先決必要條件。
2 測(cè)試用例復(fù)用庫(kù)模型設(shè)計(jì)與實(shí)現(xiàn)
測(cè)試用例復(fù)用就是對(duì)已經(jīng)執(zhí)行的測(cè)試用例進(jìn)行重復(fù)使用或修改使用。要實(shí)現(xiàn)測(cè)試用例復(fù)用,則需要對(duì)以往設(shè)計(jì)的測(cè)試用例進(jìn)行有效的存儲(chǔ)以及分類管理以供后續(xù)使用。對(duì)測(cè)試用例的管理就需要?jiǎng)?chuàng)建一個(gè)測(cè)試用例復(fù)用庫(kù)來(lái)存儲(chǔ)測(cè)試用例,在測(cè)試用例復(fù)用庫(kù)中使用統(tǒng)一的規(guī)范數(shù)據(jù)格式對(duì)測(cè)試用例進(jìn)行管理。當(dāng)測(cè)試工程師要設(shè)計(jì)測(cè)試用例時(shí),可先在測(cè)試用例庫(kù)中進(jìn)行搜索,查找合適的測(cè)試用例進(jìn)行復(fù)用。但是,隨著時(shí)間的增長(zhǎng)以及測(cè)試項(xiàng)目的增加,測(cè)試用例庫(kù)也隨之?dāng)U充,測(cè)試用例數(shù)目與日俱增,這就增加了搜索的工作量。為了提高搜索的效率,根據(jù)測(cè)試用例適用的行業(yè)領(lǐng)域,對(duì)測(cè)試用例進(jìn)行劃分存儲(chǔ),并打上行業(yè)領(lǐng)域的標(biāo)記。其原因在于,相同行業(yè)領(lǐng)域的軟件其測(cè)試用例的通用性更高,可復(fù)用性也更高。
為了提高在測(cè)試用例庫(kù)中的搜索效率和準(zhǔn)確度,將分詞技術(shù)應(yīng)用于測(cè)試用例搜索功能中,對(duì)用戶的搜索輸入進(jìn)行分詞、篩選,得出有效的搜索關(guān)鍵字,根據(jù)關(guān)鍵字在測(cè)試用例復(fù)用庫(kù)中進(jìn)行搜索,減少了非關(guān)鍵字的干擾,提高了查詢速度,并且搜索結(jié)果更準(zhǔn)確。
通常情況下,測(cè)試用例復(fù)用分為直接使用以及修改使用,但無(wú)論何種情況,都需要對(duì)新測(cè)試用例進(jìn)行審核,確定其有效性和唯一性方能進(jìn)入測(cè)試用例復(fù)用庫(kù),測(cè)試用例復(fù)用模型如圖1所示。
3 測(cè)試用例復(fù)用搜索設(shè)計(jì)與實(shí)現(xiàn)
3.1 分詞詞庫(kù)
測(cè)試工程師進(jìn)行測(cè)試用例復(fù)用時(shí),需要對(duì)查詢輸入進(jìn)行處理,常用方法是使用分詞技術(shù)提取其中的關(guān)鍵字進(jìn)行查詢。分詞技術(shù)中,英文單詞之間以空格作為自然分界符,而中文是以字為基本的書寫單位,詞與詞之間沒有明顯的區(qū)分標(biāo)記,因此,對(duì)中文信息處理相對(duì)比較復(fù)雜。語(yǔ)義分析是中文信息處理的基礎(chǔ)與關(guān)鍵,常見的分詞算法有兩種:
算法1:建立詞庫(kù),對(duì)待分析字符串逐詞匹配,分離關(guān)鍵字;
算法2:建立詞庫(kù),對(duì)目標(biāo)串構(gòu)造全文索引,然后將結(jié)果集與詞庫(kù)進(jìn)行笛卡爾積匹配,獲取匹配結(jié)果。
以上算法如果用于較大規(guī)模詞庫(kù)時(shí),存在如下效率問題:
1) 當(dāng)詞庫(kù)較大時(shí),逐詞匹配耗時(shí)較長(zhǎng);
2) 采用全文索引方式消耗多余內(nèi)容,同時(shí)不適用于測(cè)試用例復(fù)用查詢功能,因?yàn)橛脩糨斎氲牟樵冃畔⑤^短,而全文索引多適用于長(zhǎng)文本字符串搜索功能。
在測(cè)試用例復(fù)用查詢功能中,用戶查詢輸入相對(duì)簡(jiǎn)單,但需要進(jìn)行精確分詞,因此針對(duì)此類特點(diǎn),本文對(duì)文獻(xiàn)5]中提出的索引方法加以改進(jìn),采用二級(jí)索引對(duì)中文詞條進(jìn)行分詞(這里只討論中文分詞,英文分詞可使用Lucene工具進(jìn)行分詞),以確保能快速并精確地進(jìn)行分詞。由于長(zhǎng)度為2的中文詞條占整個(gè)漢字詞條約70%5]以上,同時(shí)假設(shè)漢字詞長(zhǎng)度2、3、4的詞條個(gè)數(shù)比例為7:2:1,因此,大約90%的情況下,執(zhí)行兩次檢索便能定位一個(gè)漢字詞條,以保證較高的分詞效率。同時(shí)為減少磁盤I/O,在系統(tǒng)啟動(dòng)時(shí),將詞庫(kù)載入至內(nèi)存,使所有計(jì)算可在內(nèi)存中進(jìn)行,進(jìn)一步提高分詞效率。根據(jù)《中國(guó)大百科全書》目前收錄約6 000萬(wàn)個(gè)詞條為例,整個(gè)中文詞庫(kù)大約適用300MB~400MB內(nèi)存,因此,常見的主機(jī)可滿足其硬件需求。
3.2 搜索算法
隨著軟件測(cè)試項(xiàng)目的日益增加,測(cè)試用例復(fù)用庫(kù)不斷擴(kuò)充,這勢(shì)必會(huì)影響到搜索的效率。本文中,當(dāng)接收到用戶的查詢輸入,程序首先將其與分詞詞庫(kù)進(jìn)行匹配,對(duì)查詢輸入進(jìn)行分詞,然后根據(jù)被測(cè)軟件的行業(yè)領(lǐng)域,查詢對(duì)應(yīng)領(lǐng)域的測(cè)試用例數(shù)據(jù),并且根據(jù)排序算法對(duì)查詢結(jié)果進(jìn)行排序。由于該分詞算法僅用于測(cè)試用例查詢,因此對(duì)于中文分詞算法中歧義詞的處理可以忽略不計(jì),其偽代碼如下所示:
由于詞庫(kù)在初建之時(shí),未必能覆蓋所有中文詞條,并且隨著各個(gè)行業(yè)的高速發(fā)展,每天都可能會(huì)有新詞條出現(xiàn),因此必然存在無(wú)法匹配的詞條。當(dāng)出現(xiàn)新詞時(shí),分詞算法將自動(dòng)定位到下一個(gè)可匹配詞條,然后繼續(xù)進(jìn)行拆分,而新詞則被單獨(dú)作為一個(gè)分詞加載至分詞結(jié)果中。同時(shí)存儲(chǔ)該用戶輸入,待管理員進(jìn)行審核,人工加入到詞庫(kù)中。采用人工添加新詞而非程序自動(dòng)添加新詞的原因在于,程序還不夠智能,也無(wú)意義做到足夠智能,同時(shí)對(duì)于新詞的理解或判斷的正確率遠(yuǎn)低于人判斷的正確率。
3.3 結(jié)果排序
針對(duì)測(cè)試工程師進(jìn)行測(cè)試用例的復(fù)用查詢,其查詢結(jié)果可能是幾條,也可能是幾十條,甚至是幾萬(wàn)條數(shù)據(jù),然而并非所有查詢到的測(cè)試用例都是查詢者所需要的,當(dāng)查詢結(jié)果數(shù)量龐大時(shí),逐條查看篩選所消耗的時(shí)間可能早已超過了重新設(shè)計(jì)一個(gè)測(cè)試用例所需的時(shí)間,必然導(dǎo)致時(shí)間成本上的浪費(fèi),這與測(cè)試用例復(fù)用的初衷相違背。由此可見,根據(jù)查詢到的測(cè)試用例與用戶所需測(cè)試用例的相關(guān)性,為用戶推薦一個(gè)“好”的測(cè)試用例是十分必要的。
可復(fù)用測(cè)試用例的查詢結(jié)果的排序可以為用戶提供選擇測(cè)試用例的依據(jù),針對(duì)查詢主要針對(duì)教育期刊網(wǎng)
關(guān)鍵詞 的搜索,因此對(duì)查詢結(jié)果中的測(cè)試用例按照一個(gè)三元組方式排序,其中K表示搜索的教育期刊網(wǎng)
關(guān)鍵詞 集合,ki是該教育期刊網(wǎng)
關(guān)鍵詞 集合中的某個(gè)教育期刊網(wǎng)
關(guān)鍵詞 ,則排序三元組表示如下:
C(ki)表示當(dāng)前查詢結(jié)果中是否有與ki匹配的教育期刊網(wǎng)
關(guān)鍵詞 ,如有,則C(ki)記為1,如沒有,則C(ki)記為0。
C(ki)是K中每個(gè)教育期刊網(wǎng)
關(guān)鍵詞 在本次查詢中是否匹配的計(jì)數(shù)之和,始終大于0,因?yàn)椴樵兘Y(jié)果中顯示的是至少有一個(gè)查詢關(guān)鍵字匹配的搜索結(jié)果。S(ki)表示當(dāng)前查詢結(jié)果中教育期刊網(wǎng)
關(guān)鍵詞 ki出現(xiàn)的頻次。S(ki)是K中每個(gè)教育期刊網(wǎng)
關(guān)鍵詞 在本次查詢中出現(xiàn)頻次之和。Creuse則表示查詢結(jié)果中該條測(cè)試用例被復(fù)用的次數(shù)。
通過上述三元組對(duì)測(cè)試用例的查詢結(jié)果進(jìn)行排序。首先按照C(ki)列進(jìn)行降序排序,若該列數(shù)值相同,則按S(ki)列進(jìn)行降序排序,若此列數(shù)值相同,則按Creuse列進(jìn)行降序排列。由此可以發(fā)現(xiàn),查詢關(guān)鍵字匹配越完全,其滿足查詢需求的程度就越高,同時(shí),復(fù)用次數(shù)越多的測(cè)試用例,越具有通用性。
4 總結(jié)
測(cè)試用例復(fù)用的核心思想是將以往的測(cè)試用例加以收集積累,通過建立測(cè)試用例管理系統(tǒng)來(lái)統(tǒng)一管理測(cè)試用例庫(kù)。本文提出了將分詞技術(shù)和軟件行業(yè)領(lǐng)域應(yīng)用于測(cè)試用例復(fù)用來(lái)提高測(cè)試用例復(fù)用程度。按領(lǐng)域劃分測(cè)試用例可使得查詢結(jié)果更具有可復(fù)用性,同時(shí)設(shè)計(jì)了一套采用二級(jí)索引結(jié)構(gòu)的中文分詞詞庫(kù)使分詞效率更高效。因此,系統(tǒng)為測(cè)試用例設(shè)計(jì)人員推薦更“好”的可復(fù)用測(cè)試用例,對(duì)查詢結(jié)果順序稍加改進(jìn)便于篩選,便能極大的減少測(cè)試用例設(shè)計(jì)階段的工作量。
【基于分詞搜索的測(cè)試用例復(fù)用研究論文】相關(guān)文章:
基于lucene的垂直搜索引擎的研究與設(shè)計(jì)論文04-15
基于視覺搜索因素的網(wǎng)頁(yè)設(shè)計(jì)論文04-20
關(guān)于提升課例的研究?jī)r(jià)值的研究論文06-18
關(guān)于搜索引擎的研究論文04-16
基于語(yǔ)義技術(shù)的搜索引擎平臺(tái)搭建的可行性研究論文04-13
基于柔性內(nèi)部控制研究論文04-14
基于EVA的價(jià)值創(chuàng)造研究論文04-13
基于課堂的教師行動(dòng)研究的論文04-12