毛片一区二区三区,国产免费网,亚洲精品美女久久久久,国产精品成久久久久三级

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

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

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

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

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

  關鍵詞 軟件測試,測試用例,復用,分詞

  0 引言

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

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

  1 測試用例復用研究

  1.1 測試用例復用的概念

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

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

  1.2 可復用測試用例特性

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

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

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

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

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

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

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

  1.3 測試用例復用場景

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

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

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

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

  2 測試用例復用庫模型設計與實現

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

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

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

  3 測試用例復用搜索設計與實現

  3.1 分詞詞庫

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

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

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

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

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

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

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

  3.2 搜索算法

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

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

  3.3 結果排序

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

  可復用測試用例的查詢結果的排序可以為用戶提供選擇測試用例的依據,針對查詢主要針對教育期刊網

  關鍵詞 的搜索,因此對查詢結果中的測試用例按照一個三元組方式排序,其中K表示搜索的教育期刊網

  關鍵詞 集合,ki是該教育期刊網

  關鍵詞 集合中的某個教育期刊網

  關鍵詞 ,則排序三元組表示如下:

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

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

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

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

  關鍵詞 ki出現的頻次。S(ki)是K中每個教育期刊網

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

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

  4 總結

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

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

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

基于視覺搜索因素的網頁設計論文04-20

關于提升課例的研究價值的研究論文06-18

關于搜索引擎的研究論文04-16

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

基于柔性內部控制研究論文04-14

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

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

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