基于分词搜索的测试用例复用研究论文(2)

时间:2021-08-31

2 测试用例复用库模型设计与实现

  测试用例复用就是对已经执行的测试用例进行重复使用或修改使用。要实现测试用例复用,则需要对以往设计的测试用例进行有效的存储以及分类管理以供后续使用。对测试用例的管理就需要创建一个测试用例复用库来存储测试用例,在测试用例复用库中使用统一的规范数据格式对测试用例进行管理。当测试工程师要设计测试用例时,可先在测试用例库中进行搜索,查找合适的测试用例进行复用。但是,随着时间的增长以及测试项目的增加,测试用例库也随之扩充,测试用例数目与日俱增,这就增加了搜索的工作量。为了提高搜索的效率,根据测试用例适用的行业领域,对测试用例进行划分存储,并打上行业领域的标记。其原因在于,相同行业领域的软件其测试用例的通用性更高,可复用性也更高。

  为了提高在测试用例库中的搜索效率和准确度,将分词技术应用于测试用例搜索功能中,对用户的搜索输入进行分词、筛选,得出有效的搜索关键字,根据关键字在测试用例复用库中进行搜索,减少了非关键字的干扰,提高了查询速度,并且搜索结果更准确。

  通常情况下,测试用例复用分为直接使用以及修改使用,但无论何种情况,都需要对新测试用例进行审核,确定其有效性和唯一性方能进入测试用例复用库,测试用例复用模型如图1所示。

3 测试用例复用搜索设计与实现

3.1 分词词库

  测试工程师进行测试用例复用时,需要对查询输入进行处理,常用方法是使用分词技术提取其中的关键字进行查询。分词技术中,英文单词之间以空格作为自然分界符,而中文是以字为基本的书写单位,词与词之间没有明显的区分标记,因此,对中文信息处理相对比较复杂。语义分析是中文信息处理的基础与关键,常见的分词算法有两种:

  算法1:建立词库,对待分析字符串逐词匹配,分离关键字;

  算法2:建立词库,对目标串构造全文索引,然后将结果集与词库进行笛卡尔积匹配,获取匹配结果。

  以上算法如果用于较大规模词库时,存在如下效率问题:

  1) 当词库较大时,逐词匹配耗时较长;

  2) 采用全文索引方式消耗多余内容,同时不适用于测试用例复用查询功能,因为用户输入的查询信息较短,而全文索引多适用于长文本字符串搜索功能。

  在测试用例复用查询功能中,用户查询输入相对简单,但需要进行精确分词,因此针对此类特点,本文对文献5]中提出的索引方法加以改进,采用二级索引对中文词条进行分词(这里只讨论中文分词,英文分词可使用Lucene工具进行分词),以确保能快速并精确地进行分词。由于长度为2的中文词条占整个汉字词条约70%5]以上,同时假设汉字词长度2、3、4的词条个数比例为7:2:1,因此,大约90%的情况下,执行两次检索便能定位一个汉字词条,以保证较高的分词效率。同时为减少磁盘I/O,在系统启动时,将词库载入至内存,使所有计算可在内存中进行,进一步提高分词效率。根据《中国大百科全书》目前收录约6 000万个词条为例,整个中文词库大约适用300MB~400MB内存,因此,常见的主机可满足其硬件需求。

3.2 搜索算法

  随着软件测试项目的日益增加,测试用例复用库不断扩充,这势必会影响到搜索的效率。本文中,当接收到用户的查询输入,程序首先将其与分词词库进行匹配,对查询输入进行分词,然后根据被测软件的行业领域,查询对应领域的测试用例数据,并且根据排序算法对查询结果进行排序。由于该分词算法仅用于测试用例查询,因此对于中文分词算法中歧义词的处理可以忽略不计,其伪代码如下所示:

  由于词库在初建之时,未必能覆盖所有中文词条,并且随着各个行业的高速发展,每天都可能会有新词条出现,因此必然存在无法匹配的词条。当出现新词时,分词算法将自动定位到下一个可匹配词条,然后继续进行拆分,而新词则被单独作为一个分词加载至分词结果中。同时存储该用户输入,待管理员进行审核,人工加入到词库中。采用人工添加新词而非程序自动添加新词的原因在于,程序还不够智能,也无意义做到足够智能,同时对于新词的理解或判断的正确率远低于人判断的正确率。

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列进行降序排列。由此可以发现,查询关键字匹配越完全,其满足查询需求的程度就越高,同时,复用次数越多的测试用例,越具有通用性。4 总结

  测试用例复用的核心思想是将以往的测试用例加以收集积累,通过建立测试用例管理系统来统一管理测试用例库。本文提出了将分词技术和软件行业领域应用于测试用例复用来提高测试用例复用程度。按领域划分测试用例可使得查询结果更具有可复用性,同时设计了一套采用二级索引结构的中文分词词库使分词效率更高效。因此,系统为测试用例设计人员推荐更“好”的可复用测试用例,对查询结果顺序稍加改进便于筛选,便能极大的减少测试用例设计阶段的工作量。

【基于分词搜索的测试用例复用研究论文】相关文章:

1.小议软件测试用例的设计论文

2.基于Struts的网上商城系统研究论文

3.基于手持设备的智能球研究与设计论文

4.基于EVA的价值创造研究论文

5.基于课堂的教师行动研究的论文

6.基于易学的朱熹理气关系研究论文

7.基于研究生主体的创业教育研究论文

8.穷搜博采成语