记录阿里巴巴QA架构组成长点滴。2008年关键词为效率,技术,影响力!QA/测试架构师定义:开发和设计测试框架测试库;纵横全局的考虑产品的功能,设计复杂的测试系统;负责研发某一项特定的测试技术;为公司考虑如何提高测试效率。领导公司测试技术的发展和测试策略上的方向,关注整个公司的测试部门的问题,前瞻性的考虑未来的版本的测试策略和技术。测试架构师计划/设计测试平台,关注着产品的测试过程,提供咨询服务,影响到公司内的测试机构测试社区,以及开发机构等,对产品各个方面施加深远而正确的影响,最终提高整体软件质量。

搜索引擎测试的难点

上一篇 / 下一篇  2008-02-26 23:56:08 / 个人分类:搜索引擎测试

衡量搜索引擎系统功能质量方面有2大指标,查询率、查准率。

性能方面从吞吐率、响应时间、系统资源消耗等多方面综合考虑。

搜索引擎应用参与运作的角色划分:分发请求/合并查询结果的merger,以及查询服务的searcher.

 

搜索引擎系统部署可以划分为:

1)     1MergerNsearchersearcher上数据一样 (分布式单个集群多台机器) N>=1且为整数

2)     1个机器同时充当Merger以及searcher (单机版)

3)     为避免2)单点故障,几台机器同时为merger/searcher,机器的数据一样。

4)     M个分布式单个集群多台机器组成1个大型的分布式多集群多机器的复杂环境

 

实践中3)4) 2种部署模式都是存在的。

 

大数据量、高吞吐率的都采用4),避免单点故障

小型的数据采用3),节约成本。

 

单机上搜索引擎的模块划分一般有:

Ø       索引模块:为海量数据(数据库导出的文件数据)建立索引文件(依照一定数据结构格式保存为二进制文件)

Ø       查询模块:接收http请求,查询本机硬盘上的索引文件,返回文档ID以及第二次查询时返回具体的内容

Ø       即时更新模块:加入新的数据,可以从0开始重新建索引,也可以在原有基础上增加索引。

Ø       分布式模块:merger/searcher多台机器的网络通信。

Ø       CACHE模块:这里可以做查询请求的缓存,也可以做查询结果的缓存,但缓存后者的话,将极大消耗系统内存。

Ø       其他管理模块

Ø       外部接口

 

 

基于如上复杂的系统架构,尤其是4)模式,我们在测试当中也碰到相当多棘手的技术问题

1)     海量数据是否都按预期的分词算法建立索引了呢?

2)     机器分词的效果与手工分词相差有多大呢?

3)     海量查询的返回结果是否多查了

4)     海量查询的返回结果是否漏查了

5)     海量查询的返回结果的加亮、标注如期加了?

6)     海量查询的返回结果中相关性分数计算是否正确?

7)     海量查询的返回结果积分计算是否正确了呢

8)     海量查询的返回结果积分相同时,排序的先后依据唯一么?

9)     加入即时更新模块后,每次查询结果都不同,新建的索引内容是否都反馈到查询结果里面了呢

10) 海量数据时CACHE是否预期CACHEcache的内容?

11) 海量数据时CACHE是否依照一定的过时算法令cache的内容失效呢?

12) 应用程序在32LINUX操作系统64位的LINUX的索引、查询结果是否依然一样?

13) 应用程序在不同的OS上索引、查询结果是否依然一样?

 

 

我们在实践中,针对查询结果正确性有3类方法处理以上问题

第一类基于人工肉眼对比,极度耗费脑细胞

1)     少量数据单机测试准确性

2)     少量数据1个集群,搭建1merger 1searcher测试准确性

3)     少量数据1个集群,搭建1mergersearcher测试准确性

4)     少量数据多个集群,搭建1mergersearcher测试准确性

 

第二类,经过人工对比确认基本功能无大问题后,开发linux shell脚本或者loadrunner脚本比较部署方式不同但测试返回结果理当相同的。这个方法也帮我们发现了一些BUG

 

第三类方法,

直接测试大量数据多个集群,搭建1mergersearcher测试准确性。

这个时候采用loadrunner施加高峰压力,抽样检查查询请求的正确性。

 

对于分词结果、相关性的结果,有人可能建立另外按照同样的算法以及输出格式,由2个不同的开发工程师实现,再对比同样的数据分词、相关性是否相同。在项目开发时间从容的情况下,可以考虑这么做的,但现实中有几个项目时间从裕?呵呵,我没有这么好运气遇上。

 

针对搜索引擎测试的困难,欢迎各位各抒己见。


相关阅读:

TAG: 测试 搜索引擎 性能测试与容量规划 难点 搜索引擎测试

引用 删除 lanxin0226   /   2013-03-12 16:03:55
1
evergreen_wang 引用 删除 evergreen_wang   /   2010-02-20 17:07:38
比较关注
evergreen_wang 引用 删除 evergreen_wang   /   2010-02-20 17:07:23
6)     海量查询的返回结果中相关性分数计算是否正确?

7)     海量查询的返回结果积分计算是否正确了呢

8)     海量查询的返回结果积分相同时,排序的先后依据唯一么?

你都没有写具体如何实现的呢?
引用 删除 lk349129337   /   2009-08-21 14:17:08
你说的人工肉眼对比结果具体是指什么?还有就是merger和searcher的部署看不明白,能具体说下吗?我最近在测类似的搜索引擎,头都大了。
genius-hao的个人空间 引用 删除 genius-hao   /   2009-03-02 14:59:22
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2019-08-28  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 85867
  • 日志数: 163
  • 文件数: 1
  • 建立时间: 2008-02-26
  • 更新时间: 2008-12-10

RSS订阅

Open Toolbar