成人免费看黄网站无遮挡,caowo999,se94se欧美综合色,a级精品九九九大片免费看,欧美首页,波多野结衣一二三级,日韩亚洲欧美综合

基于分詞搜索的測試用例復用研究論文

時(shí)間:2021-06-13 14:27:08 論文 我要投稿

基于分詞搜索的測試用例復用研究論文

  摘 要 隨著(zhù)軟件行業(yè)快速發(fā)展,軟件功能的復雜程度隨之提高,軟件質(zhì)量逐漸受到重視。在軟件的整個(gè)生命周期中,軟件測試是一個(gè)非常重要的環(huán)節。軟件質(zhì)量在很大程度上由軟件測試的完整程度所決定。然而,隨著(zhù)軟件復雜度的提高,軟件測試的工作成本在不斷增加。為了減少測試中的冗余現象,提高軟件測試的效率,測試用例復用技術(shù)被應用于各個(gè)軟件測試環(huán)節。本文建立了一套測試用例管理系統,通過(guò)統一存儲并管理測試用例,提出將分詞技術(shù)應用于測試用例復用查詢(xún),提高測試用例查詢(xún)結果的有效性和可復用性。

基于分詞搜索的測試用例復用研究論文

  關(guān)鍵詞 軟件測試,測試用例,復用,分詞

  0 引言

  軟件測試是在規定的條件下對程序進(jìn)行操作,以發(fā)現程序錯誤,由此來(lái)衡量軟件質(zhì)量,并對其是否能滿(mǎn)足設計要求進(jìn)行評估的過(guò)程。作為軟件生命周期中的重要環(huán)節,其成敗直接決定著(zhù)軟件的最終質(zhì)量。軟件測試工作不僅保證了軟件質(zhì)量,而且降低了日后維護成本。隨著(zhù)我國軟件產(chǎn)業(yè)的蓬勃發(fā)展以及對軟件質(zhì)量的重視,軟件測試也逐漸受到軟件企業(yè)的關(guān)注,正逐步成為一個(gè)新興的產(chǎn)業(yè)。測試用例是為某個(gè)特殊目標而編制的一組測試輸入、執行條件以及預期結果,用于測試某個(gè)程序路徑或核實(shí)是否滿(mǎn)足某個(gè)特定需求。

  隨著(zhù)軟件規模越來(lái)越龐大,軟件測試的工作量也與日俱增。軟件測試過(guò)程中,測試用例的設計是軟件測試過(guò)程的核心,直接影響了軟件測試的效率。測試設計的好快直接決定著(zhù)測試結果及其成效,測試用例是最有可能發(fā)現軟件錯誤的測試數據和流程的集合。測試用例復用是將已執行過(guò)的測試用例重復使用或改進(jìn)使用于不同的軟件或軟件測試階段中,以此來(lái)降低測試用例設計環(huán)節的工作成本。為了提高軟件測試的效率,測試用例復用技術(shù)被廣泛地應用于各類(lèi)軟件測試的設計和回歸測試階段,用于減少測試設計階段的成本,以縮短測試周期,提高測試效率。本文通過(guò)對可復用測試用例的收集以及分析,提出了一種以行業(yè)領(lǐng)域和基于分詞搜索策略的測試用例復用思路,以提高測試用例的復用率。但是當測試用例管理系統中的測試用例數量過(guò)于龐大時(shí),則不利于測試用例的篩選,因此有必要設計了推薦算法來(lái)按照一定規則對可能被復用的測試用例進(jìn)行排序推薦。

  1 測試用例復用研究

  1.1 測試用例復用的概念

  測試用例復用是指測試工程師在執行一項新的測試工作時(shí),通過(guò)直接調用或修改現有的、合適的測試用例,并將其應用在測試執行中的過(guò)程。如果搜索后得到的測試用例與需求完全一致,則直接復用現有測試用例,但是一般情況下,直接復用測試用例的情況很少;如果搜索到的測試用例與需求近似,則對其進(jìn)行修改,得到新的測試用例之后再復用。在一定程度上,測試用例復用可以節省重新設計測試用例的時(shí)間,減少測試工程師的工作量,提高軟件測試的效率。

  然而,并非所有的測試用例都適合復用,有些測試用例定制化程度較高,只適合某些特定的測試場(chǎng)景,這樣的測試用例可復用程度不高。由此可知,測試用例要能進(jìn)行復用,須具備一定的可復用特性。

  1.2 可復用測試用例特性

  經(jīng)過(guò)對大量可復用測試用例的收集以及分析,本文認為可復用測試用例需滿(mǎn)足以下5個(gè)特性:標準化、通用性、有效性、獨立性、小粒度1]。

  1) 標準化。測試用例通常用自然語(yǔ)言進(jìn)行描述,但由于自然語(yǔ)言的非結構化特性,無(wú)統一結構的測試用例不利于測試用例復用。因此,測試用例的設計必須使用統一的格式或結構,以消除由于自然語(yǔ)言的表述的差異帶來(lái)的問(wèn)題。標準化不僅強調測試用例的可復用能力,更偏向于測試用例管理。采用明確無(wú)歧義的語(yǔ)言描述測試用例并用統一結構進(jìn)行存儲,如表1測試用例描述案例所示2]。其中,加粗字體表示測試用例的字段,中括號 ]里的內容表示測試用例的具體內容或相關(guān)屬性。

  2) 有效性:測試用例的目標是發(fā)現軟件中的問(wèn)題或者驗證功能是否正確,因此測試用例必須是針對它的'測試目的而設計,并且經(jīng)審核后必須是正確、完整、適用于被測對象并且是可執行的。

  3) 通用性:測試用例不局限于具體的應用,不過(guò)分依賴(lài)于被測軟件的需求、設計、環(huán)境、其他功能以及其他業(yè)務(wù)流程,可復用測試用例可多次適用于不同版本的軟件測試或廣泛應用于某同類(lèi)軟件或類(lèi)似功能模塊的測試。

  4) 獨立性:測試用例不過(guò)分受制于測試環(huán)境、相關(guān)業(yè)務(wù)流程以及前置測試用例。理論上,測試用例與其他因素的耦合度越小,則獨立性也就越高,其測試用例的可復用程度相對較高。

  5) 小粒度:通常指一個(gè)被測模塊的末梢功能,測試用例的粒度設計追求功能的不可分割性。粒度越小并且相對獨立的功能,針對其功能設計的用例,可復用性也就越高。

  以登錄功能舉例,該功能相對于整個(gè)應用系統來(lái)說(shuō)粒度最小,并且與其他功能相對獨立,同時(shí),針對登錄功能設計的測試用例具有較強的通用性,所以通常情況下,登錄功能的測試用例具有較高的可復用性。

  1.3 測試用例復用場(chǎng)景

  然而,并非所有的軟件測試過(guò)程都適合進(jìn)行測試用例復用。測試用例復用是為了避免測試用例的重復設計,提供現有的測試用例給測試工程師直接使用。因此,只有在需要重復執行的測試用例時(shí),測試用例的復用才能真正發(fā)揮作用。通常情況下,測試用例復用主要由三類(lèi)測試場(chǎng)景3]:

  1) 軟件升級:包括版本升級、缺陷修復等升級行為。例如:一家公司的業(yè)務(wù)管理系統的升級,或某個(gè)功能的改進(jìn)。通常不會(huì )引起非常大的業(yè)務(wù)流程變動(dòng)或界面改動(dòng),因此前一個(gè)版本的測試用例可被大量復用。

  2) 產(chǎn)品測試:此類(lèi)場(chǎng)景多存在于軟件研發(fā)公司,多從事于某個(gè)領(lǐng)域的軟件研發(fā)工作,通常此類(lèi)公司有著(zhù)自己的測試用例庫。比如:從事ERP(企業(yè)資源計劃)軟件開(kāi)發(fā)的公司。雖然不同行業(yè)的業(yè)務(wù)流程都不完全一致,但也有存類(lèi)似的可復用業(yè)務(wù)流程,例如員工管理模塊等。

  3) 第三方測評4]:第三方測評機構適用于此類(lèi)測試用例復用場(chǎng)景。由于第三方測試機構會(huì )對大量的軟件進(jìn)行測評,其中不乏相同領(lǐng)域的軟件產(chǎn)品。如果對每個(gè)測試軟件重新設計測試用例,必然增加工作成本。因此,對于第三方測評機構測試用例復用是十分有必要的。測試用例復用在不同領(lǐng)域和場(chǎng)景中有著(zhù)廣泛應用,對于大量測試用例的復用需要建立在大量測試用例基礎上,需要將以往設計的測試用例加以存儲和管理,因此設計一套測試用例管理系統是測試用例復用成為可能的先決必要條件。

  2 測試用例復用庫模型設計與實(shí)現

  測試用例復用就是對已經(jīng)執行的測試用例進(jìn)行重復使用或修改使用。要實(shí)現測試用例復用,則需要對以往設計的測試用例進(jìn)行有效的存儲以及分類(lèi)管理以供后續使用。對測試用例的管理就需要創(chuàng )建一個(gè)測試用例復用庫來(lái)存儲測試用例,在測試用例復用庫中使用統一的規范數據格式對測試用例進(jìn)行管理。當測試工程師要設計測試用例時(shí),可先在測試用例庫中進(jìn)行搜索,查找合適的測試用例進(jìn)行復用。但是,隨著(zhù)時(shí)間的增長(cháng)以及測試項目的增加,測試用例庫也隨之擴充,測試用例數目與日俱增,這就增加了搜索的工作量。為了提高搜索的效率,根據測試用例適用的行業(yè)領(lǐng)域,對測試用例進(jìn)行劃分存儲,并打上行業(yè)領(lǐng)域的標記。其原因在于,相同行業(yè)領(lǐng)域的軟件其測試用例的通用性更高,可復用性也更高。

  為了提高在測試用例庫中的搜索效率和準確度,將分詞技術(shù)應用于測試用例搜索功能中,對用戶(hù)的搜索輸入進(jìn)行分詞、篩選,得出有效的搜索關(guān)鍵字,根據關(guān)鍵字在測試用例復用庫中進(jìn)行搜索,減少了非關(guān)鍵字的干擾,提高了查詢(xún)速度,并且搜索結果更準確。

  通常情況下,測試用例復用分為直接使用以及修改使用,但無(wú)論何種情況,都需要對新測試用例進(jìn)行審核,確定其有效性和唯一性方能進(jìn)入測試用例復用庫,測試用例復用模型如圖1所示。

  3 測試用例復用搜索設計與實(shí)現

  3.1 分詞詞庫

  測試工程師進(jìn)行測試用例復用時(shí),需要對查詢(xún)輸入進(jìn)行處理,常用方法是使用分詞技術(shù)提取其中的關(guān)鍵字進(jìn)行查詢(xún)。分詞技術(shù)中,英文單詞之間以空格作為自然分界符,而中文是以字為基本的書(shū)寫(xiě)單位,詞與詞之間沒(méi)有明顯的區分標記,因此,對中文信息處理相對比較復雜。語(yǔ)義分析是中文信息處理的基礎與關(guān)鍵,常見(jiàn)的分詞算法有兩種:

  算法1:建立詞庫,對待分析字符串逐詞匹配,分離關(guān)鍵字;

  算法2:建立詞庫,對目標串構造全文索引,然后將結果集與詞庫進(jìn)行笛卡爾積匹配,獲取匹配結果。

  以上算法如果用于較大規模詞庫時(shí),存在如下效率問(wèn)題:

  1) 當詞庫較大時(shí),逐詞匹配耗時(shí)較長(cháng);

  2) 采用全文索引方式消耗多余內容,同時(shí)不適用于測試用例復用查詢(xún)功能,因為用戶(hù)輸入的查詢(xún)信息較短,而全文索引多適用于長(cháng)文本字符串搜索功能。

  在測試用例復用查詢(xún)功能中,用戶(hù)查詢(xún)輸入相對簡(jiǎn)單,但需要進(jìn)行精確分詞,因此針對此類(lèi)特點(diǎn),本文對文獻5]中提出的索引方法加以改進(jìn),采用二級索引對中文詞條進(jìn)行分詞(這里只討論中文分詞,英文分詞可使用Lucene工具進(jìn)行分詞),以確保能快速并精確地進(jìn)行分詞。由于長(cháng)度為2的中文詞條占整個(gè)漢字詞條約70%5]以上,同時(shí)假設漢字詞長(cháng)度2、3、4的詞條個(gè)數比例為7:2:1,因此,大約90%的情況下,執行兩次檢索便能定位一個(gè)漢字詞條,以保證較高的分詞效率。同時(shí)為減少磁盤(pán)I/O,在系統啟動(dòng)時(shí),將詞庫載入至內存,使所有計算可在內存中進(jìn)行,進(jìn)一步提高分詞效率。根據《中國大百科全書(shū)》目前收錄約6 000萬(wàn)個(gè)詞條為例,整個(gè)中文詞庫大約適用300MB~400MB內存,因此,常見(jiàn)的主機可滿(mǎn)足其硬件需求。

  3.2 搜索算法

  隨著(zhù)軟件測試項目的日益增加,測試用例復用庫不斷擴充,這勢必會(huì )影響到搜索的效率。本文中,當接收到用戶(hù)的查詢(xún)輸入,程序首先將其與分詞詞庫進(jìn)行匹配,對查詢(xún)輸入進(jìn)行分詞,然后根據被測軟件的行業(yè)領(lǐng)域,查詢(xún)對應領(lǐng)域的測試用例數據,并且根據排序算法對查詢(xún)結果進(jìn)行排序。由于該分詞算法僅用于測試用例查詢(xún),因此對于中文分詞算法中歧義詞的處理可以忽略不計,其偽代碼如下所示:

  由于詞庫在初建之時(shí),未必能覆蓋所有中文詞條,并且隨著(zhù)各個(gè)行業(yè)的高速發(fā)展,每天都可能會(huì )有新詞條出現,因此必然存在無(wú)法匹配的詞條。當出現新詞時(shí),分詞算法將自動(dòng)定位到下一個(gè)可匹配詞條,然后繼續進(jìn)行拆分,而新詞則被單獨作為一個(gè)分詞加載至分詞結果中。同時(shí)存儲該用戶(hù)輸入,待管理員進(jìn)行審核,人工加入到詞庫中。采用人工添加新詞而非程序自動(dòng)添加新詞的原因在于,程序還不夠智能,也無(wú)意義做到足夠智能,同時(shí)對于新詞的理解或判斷的正確率遠低于人判斷的正確率。

  3.3 結果排序

  針對測試工程師進(jìn)行測試用例的復用查詢(xún),其查詢(xún)結果可能是幾條,也可能是幾十條,甚至是幾萬(wàn)條數據,然而并非所有查詢(xún)到的測試用例都是查詢(xún)者所需要的,當查詢(xún)結果數量龐大時(shí),逐條查看篩選所消耗的時(shí)間可能早已超過(guò)了重新設計一個(gè)測試用例所需的時(shí)間,必然導致時(shí)間成本上的浪費,這與測試用例復用的初衷相違背。由此可見(jiàn),根據查詢(xún)到的測試用例與用戶(hù)所需測試用例的相關(guān)性,為用戶(hù)推薦一個(gè)“好”的測試用例是十分必要的。

  可復用測試用例的查詢(xún)結果的排序可以為用戶(hù)提供選擇測試用例的依據,針對查詢(xún)主要針對教育期刊網(wǎng)

  關(guān)鍵詞 的搜索,因此對查詢(xún)結果中的測試用例按照一個(gè)三元組方式排序,其中K表示搜索的教育期刊網(wǎng)

  關(guān)鍵詞 集合,ki是該教育期刊網(wǎng)

  關(guān)鍵詞 集合中的某個(gè)教育期刊網(wǎng)

  關(guān)鍵詞 ,則排序三元組表示如下:

  C(ki)表示當前查詢(xún)結果中是否有與ki匹配的教育期刊網(wǎng)

  關(guān)鍵詞 ,如有,則C(ki)記為1,如沒(méi)有,則C(ki)記為0。

  C(ki)是K中每個(gè)教育期刊網(wǎng)

  關(guān)鍵詞 在本次查詢(xún)中是否匹配的計數之和,始終大于0,因為查詢(xún)結果中顯示的是至少有一個(gè)查詢(xún)關(guān)鍵字匹配的搜索結果。S(ki)表示當前查詢(xún)結果中教育期刊網(wǎng)

  關(guān)鍵詞 ki出現的頻次。S(ki)是K中每個(gè)教育期刊網(wǎng)

  關(guān)鍵詞 在本次查詢(xún)中出現頻次之和。Creuse則表示查詢(xún)結果中該條測試用例被復用的次數。

  通過(guò)上述三元組對測試用例的查詢(xún)結果進(jìn)行排序。首先按照C(ki)列進(jìn)行降序排序,若該列數值相同,則按S(ki)列進(jìn)行降序排序,若此列數值相同,則按Creuse列進(jìn)行降序排列。由此可以發(fā)現,查詢(xún)關(guān)鍵字匹配越完全,其滿(mǎn)足查詢(xún)需求的程度就越高,同時(shí),復用次數越多的測試用例,越具有通用性。

  4 總結

  測試用例復用的核心思想是將以往的測試用例加以收集積累,通過(guò)建立測試用例管理系統來(lái)統一管理測試用例庫。本文提出了將分詞技術(shù)和軟件行業(yè)領(lǐng)域應用于測試用例復用來(lái)提高測試用例復用程度。按領(lǐng)域劃分測試用例可使得查詢(xún)結果更具有可復用性,同時(shí)設計了一套采用二級索引結構的中文分詞詞庫使分詞效率更高效。因此,系統為測試用例設計人員推薦更“好”的可復用測試用例,對查詢(xún)結果順序稍加改進(jìn)便于篩選,便能極大的減少測試用例設計階段的工作量。

【基于分詞搜索的測試用例復用研究論文】相關(guān)文章:

基于lucene的垂直搜索引擎的研究與設計論文04-15

基于視覺(jué)搜索因素的網(wǎng)頁(yè)設計論文04-20

關(guān)于提升課例的研究?jì)r(jià)值的研究論文06-18

關(guān)于搜索引擎的研究論文04-16

基于語(yǔ)義技術(shù)的搜索引擎平臺搭建的可行性研究論文04-13

基于EVA的價(jià)值創(chuàng )造研究論文04-13

基于課堂的教師行動(dòng)研究的論文04-12

小議軟件測試用例的設計論文04-20