基于学术搜索引擎的蜕变测试研究

2021-07-19 23:54李晓玉唐智
电脑知识与技术 2021年13期

李晓玉 唐智

摘要:基于用户查询的搜索和显示数据是大多数软件应用程序的关键功能系统,这些系统管理大量的数据,由于很难确定预期的输出结果,因此使其极难测试,即这个问题被称为“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.

【通联编辑:代影】