国产精品成人一区二区在线_日本淫妇xxww老女人,_黑人让我高潮的视频_欧美亚洲高清在线一区_国产丝袜久久久久之久_国产精品这里有精品_亚洲aⅴ男人的天堂t在线观看_免费黄色片一级毛片

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

2021-06-13 論文

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

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

  0 引言

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

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

  1 測試用例復(fù)用研究

  1.1 測試用例復(fù)用的概念

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

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

  1.2 可復(fù)用測試用例特性

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

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

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

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

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

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

  以登錄功能舉例,該功能相對于整個應(yīng)用系統(tǒng)來說粒度最小,并且與其他功能相對獨立,同時,針對登錄功能設(shè)計的測試用例具有較強的通用性,所以通常情況下,登錄功能的測試用例具有較高的'可復(fù)用性。

  1.3 測試用例復(fù)用場景

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

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

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

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

  2 測試用例復(fù)用庫模型設(shè)計與實現(xiàn)

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

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

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

  3 測試用例復(fù)用搜索設(shè)計與實現(xiàn)

  3.1 分詞詞庫

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

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

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

  以上算法如果用于較大規(guī)模詞庫時,存在如下效率問題:

  1) 當詞庫較大時,逐詞匹配耗時較長;

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

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

  3.2 搜索算法

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

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

  3.3 結(jié)果排序

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

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

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

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

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

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

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

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

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

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

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

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

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

  4 總結(jié)

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

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

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

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

關(guān)于提升課例的研究價值的研究論文06-18

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

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

基于柔性內(nèi)部控制研究論文04-14

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

基于課堂的教師行動研究的論文04-12

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

额尔古纳市| 榆林市| 竹山县| 汶上县| 休宁县| 常宁市| 汝南县| 开封市| 鹰潭市| 阳西县| 淮阳县| 科技| 梁河县| 石屏县| 贡嘎县| 宁化县| 定襄县| 额敏县| 合江县| 清河县| 嘉鱼县| 定南县| 湘潭县| 中山市| 连平县| 西藏| 新泰市| 武威市| 白河县| 华蓥市| 抚州市| 宁德市| 海宁市| 孝义市| 伊通| 两当县| 同心县| 富锦市| 金川县| 韶山市| 共和县|