李曉玉 唐智
摘要:基于用戶查詢的搜索和顯示數據是大多數軟件應用程序的關鍵功能系統,這些系統管理大量的數據,由于很難確定預期的輸出結果,因此使其極難測試,即這個問題被稱為“oracle問題”蛻變測試(Metamorphic testing,MT)是一種旨在通過設置一系列稱為蛻變關系(metamorphic relation,MR)來緩解此問題的方法。該文通過面向用戶檢索習慣和搜索引擎的功能屬性,定義MR來應用MT,選取知網、百度學術等學術搜索引擎(Academic Search Engines,ASE)作為驗證對象,實驗結果表明最可靠的服務是中國知網,最不可靠的服務是谷歌學術。從用戶的角度來看,ACM在用于查找商品時表現更好,可以滿足他們的需求。
關鍵詞:蛻變測試;蛻變關系;學術搜索引擎;Oracle問題
中圖分類號:TP3? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)13-0227-02
1概述
軟件測試是軟件質量保證和驗證的主流方法,但是它面臨兩個基本問題:Oracle問題和可靠測試集問題。在本文中,我們關注第一個問題。 “Oracle問題”是指很難驗證給定測試用例的測試結果的情況。
與大多數其他軟件測試技術不同,蛻變測試可用于測試用例的生成和測試結果的驗證,從而解決了測試的兩個基本問題。盡管最初它是一種基于成功案例生成新測試用例的方法,但很快就發現MT也是緩解Oracle問題的有效方法,MT的核心元素是一組蛻變關系(MR),這是目標函數或算法相對于多個輸入及其預期輸出的必要屬性。在實施MT時首先會生成一些程序輸入作為源測試用例,然后可以在此基礎上使用MR生成新的輸入作為后續測試用例用以驗證測試結果。與傳統方式不同,MT會根據相應的MR驗證源和后續測試用例以及它們的輸出來進行對比驗證。
搜索引擎是指根據一定的策略,在Internet上收集、發現信息,并對其進行理解、提取、組織和處理,為用戶提供檢索服務,從而起到信息導航作用的系統[1],它是用戶從Internet獲得信息的主要方式。但是用戶在面對海量的互聯網信息無從驗證搜索引擎返回結果是否正確。因此搜索引擎通常是存在Oracle問題的軟件,目前許多學者已經將蛻變測試應用于搜索引擎的測試中。
在MT中成功地應用了檢測搜索引擎,周[2]等提出了一種緩解Oracle問題的方法,用于搜索引擎的測試和質量評估。本文從用戶的角度提出了MR以評估搜索引擎。結果表明不同的搜索引擎可能會顯示有關功能特征的各種結果。它們直接有助于用戶的感知和滿意度。
2蛻變測試
當測試用例的預期輸出未知或難以與實際輸出進行比較時,蛻變測試提供了一種測試程序的替代方法。蛻變測試不是檢查單個測試的輸出,而是檢查多個測試執行是否滿足某些蛻變關系。該關系將兩個或多個輸入數據與其預期輸出相關聯。例如考慮數學函數[min (a,b)],該函數計算兩個整數a和b的最小值。輸入的順序不會影響輸出,可以將其表示為以下蛻變關系:[mina,b=min (b,a)] 在這種蛻變關系中[(a,b)]稱為源輸入,而[(b,a)]稱為后續輸入。如果源測試用例及其后續測試用例的輸出違反了蛻變關系,則蛻變測試已失敗,表明被測程序包含錯誤。
3蛻變關系在搜索引擎上的應用
本文在周[2]的基礎研究上提出了一組蛻變關系,即MPublished使用該MR來測試學術搜索引擎并對其進行質量評估,旨在評估學術搜索引擎中科學文獻的檢索功能。在檢索僅包含一個單詞或短語的科學文檔時,它著重關注其可靠性。其中原測試用例由關鍵字組成,然后執行后續測試用例。通過提取稱為“MPublished”的參數來構建的,該參數引用了原測試用例的結果列表中第一項的發布源。
此MR的主要目標是通過專門處理原始查詢來評估搜索引擎的行為。通過給出執行的示例,提取了源查詢的第一個結果的發布地點,希望在后續查詢中包含此信息,在原始關鍵字內,搜索引擎至少返回從原測試用例中提取信息的文件。如果搜索引擎無法返回本文,則可能表明負責查詢專門化機制的算法存在故障或失敗。
MPTitle 是對學術搜索引擎通過研究結果的標題理解和抽象科學著作的測試。它是評估搜索引擎返回科學文獻能力的一部分。通過用于搜索的原測試用例來完成,然后創建后續測試用例,該查詢將包含原測試用例和原測試用例中返回的第一篇論文的標題。因此在執行原測試用例時發現至少一個結果。否則觀察到MR錯誤,該引擎中存在故障。
此MR描述如下:如果后續測試用例的搜索詞由原測試用例的搜索詞組成,并且還包含原測試用例返回的第一篇論文的標題;那么后續測試用例的至少一個結果應等于從原測試用例提取的第一個結果。通過基于原測試用例構建后續測試用例,添加返回的第一篇論文的名稱,指定的論文查詢不會返回。這表明搜索引擎可能存在缺陷。
4實驗與結果分析
在本小節中,我們將描述實驗步驟。首先使用提供的數據集,該數據集收集了DBLP5中可用的計算領域的科學論文的出版物,它提供了有關主要計算機科學期刊和論文集的公開書目信息。本文從其中隨機提取一些關鍵字,將在實驗中使用學術搜索引擎:中國知網、谷歌學術、IEEE、百度學術和BASE。收集每次執行的結果,然后繼續執行該過程,直到達到所需的數量為止。
本文研究提出的MR是否能夠識別所評估的搜索引擎中存在的可能故障或意外行為,為此我們評估了MR關于它們檢測意外故障行為的能力。確定了MR是否對其測試有用,還評估了哪種學術搜索引擎的行為更適合最終用戶。本文從實驗中所有觀察得到的數據的合并值進行了假設,合并數據由每個引擎的30個觀測值的平均值形成。對于每個MR收集了33個觀察值,相當于總共執行了990次。
對于所有實驗,控制兩個自變量中第一個是學術搜索引擎中執行搜索的字符串,第二個是學術搜索引擎本身。通過處理收集的因變量使用度量ROCOF來衡量,該指標反映了系統中故障或異常的發生率。ROCOF為0.06意味著在每33個觀測值中都可能出現兩個故障或異常。換句話說,ROCOF接近1表示系統中發現故障或異常的比率很高。
MPublished專注于引擎檢索僅包含一個單詞或短語的科學文檔的可靠性?;诖?,較低的ROCOF值表示該引擎的可靠性較高。在圖1中,我們可以看到中國知網、谷歌學術、IEEE和BASE呈現出更高的ROCOF值。這些值表明這三個搜索引擎有更多的機會發生故障。最可靠的搜索引擎是百度學術,而最不可靠的服務是IEEE搜索,在最壞的情況下,ROCOF高達0.4左右。
在MPTitle中可以很清楚地看出檢測是否可能存在缺陷或不良行為。根據ROCOF的值在衡量檢測結果,ROCOF得分高意味著失敗率很高,MPTitle的結果在每個故障檢測中表現不同。在給定的執行間隔內都會產生故障。在此MR中最可靠的服務是中國知網,最不可靠的服務是谷歌學術??梢杂^察到通過升級后IEEE表現得更好,與百度學術的性能相當。從用戶的角度來看,中國知網在用于查找商品時表現更好,可以滿足他們的需求
根據給出的結果和統計測試,可以證明提出的MR能夠檢測出學術搜索引擎中可能發生的意外行為,并且對該類引擎排序算法中的潛在問題保持警惕。使用始終返回有效查詢的隨機選擇關鍵字進一步提高了該研究問題的數據的可靠性。
5結束語
在實驗中分析搜索引擎的能力時,實驗顯示百度學術是提供最佳結果的搜索引擎。當搜索的關鍵字是觀察能夠最好地返回結果的搜索引擎時,根據所需的關鍵字和論文標題,表現最佳的搜索引擎是中國知網。關于搜索引擎在返回類似查詢的相似結果的能力方面的穩定性,與其他查詢相比,百度學術是表現最佳的查詢。
以后的工作,我們計劃在每個搜索引擎中增加實驗中的查詢數量,計劃添加新的MR,以分析ASE的其他功能,例如通過應用搜索過濾器來優化搜索結果來檢查其行為。我們還計劃評估其他搜索引擎,并將其與第一次分析中獲得的結果進行比較,以更好地了解這些搜索引擎的操作,并在將來創建一個指南,以支持用戶在使用時獲得更好的結果。
參考文獻:
[1] 印鑒,陳憶群,張鋼.搜索引擎技術研究與發展[J].計算機工程,2005,31(14):54-56,104.
[2] Zhou Z Q,Xiang S W,Chen T Y.Metamorphic testing for software quality assessment:astudy of search engines[J].IEEE Transactions on Software Engineering,2016,42(3):264-284.
【通聯編輯:代影】