原始查询A = A1 + A2 + A3 + A4 + A5 + A6 + A7,由于到在淘宝搜索中并不适用双引号,因此仅用空格连接限定词。故原始查询A表示为[A1 A2 … Ai],后续查询B为[Ai … A2 A1],其中(3≤i≤7)。
3。5。2 Reverse的有效性定义
在两个查询语句含义相同的基础上,不同排序算法在计算单词权重时,会因词序的变化产生不同的返回排序列表[29],但却不应该出现返回内容的差异。为了提高搜索引擎的鲁棒性,搜索引擎本身应尽量提高搜索集合之间内容的重叠程度。来*自~优|尔^论:文+网www.youerw.com +QQ752018766*
从用户体验和确认的角度出发,当买家用户发现词序的调整会导致返回商品集的内容变化时,买家用户对于搜索引擎的信任度将会降低,买家用户体验将变差。同样,从软件验证的角度出发,淘宝网作为一个开放式电商交易平台,应当把满足查询条件的所有商品全部返回,这样才能保证卖家的合法权益。当返回商品集出现不完整时,也会导致卖家用户体验变差。
综合上述缘由,该类蜕变关系的有效性定义为:当原始查询A中的任一返回商品也出现在后续查询B的返回商品列表中,则认定该返回商品有效。
需要注意的是,本次实验只是评估淘宝搜索引擎的鲁棒性,并不是为了检测失效。
4 测试用例的设计与实施
4。1 蜕变关系And\Or\Exclude
4。1。1 And\Or\Exclude 测试用例的设计
如图4。1所示,And\Or\Exclude操作均能在原始查询和后续查询中得到搜索结果数目,从而进行比较,来判断是否有失效发生。因为本次实验注重评估搜索引擎定义规则的可靠性,所以仅执行英文模式。故而各个蜕变关系分别有N(待测搜索引擎数)*1=N种工作模式。
在本次实验中使用随机值和特殊值构建测试用例[5][6]。为了获得足够大的搜索结果集,使得前后搜索结果数目之间的差距较大,便于比较。特殊值采用了谷歌发布的2015年度热门搜索排行榜中的英文查询词,随机值则从英语词典中随机选取使用。原始用例集由特殊值组成,后续测试用例集则由50个随机值与每个特殊值组合形成。然后按照具体规则设计查询语句。最后结合And \Or\Exclude的有效性定义来判断单个测试用例是否成立。