策略型产品重构后,怎么测试合理性?

发表于:2019-10-15 17:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:铲子哥    来源:搜狗测试

  前段时间遇到一个策略型产品进行了重构,需要测试重构后的策略合理性,在这里和大家分享一下。
  1、背景介绍:
  表情搜索的主要功能是根据用户的查询词,返回与用户查询词相关的表情图。由于老代码存在性能问题,为了解决性能问题,这次主要对老代码进行了重构。
  2、实现了解:
  分析了下之前的代码,性能瓶颈主要集中在对于关键词相关表情图进行索引、召回和排序上。而本次优化是保证之前召回和排序策略基本不变的情况下,进行性能优化。
  3、确定测试范围:
  根据开发的改动,梳理了下本次重构后的测试范围:
  1、性能测试
  2、接口正确性测试。
  3、接口排序策略合理性测试。
  1和2都是传统意义的测试,而第3点的测试,一开始想到的回归方法是通过线上导流,对比线上结果和测试结果的一致性来测试,因为线上已经运行的策略我们认为是合理的,可以作为参考对比项。
  导流对比的结果并不如人意:对于同一个词,由于排序策略是每次实时计算的,所以每次服务器的返回顺序都有可能不一样。所以通过导流对比测试的方法行不通。?
  不能通过导流对比测试,后面想到了通过评测方式来解决。
  对于评测和传统测试,主要有以下区别:
  4、评测维度:
  针对随机抽取线上5W个请求词,主要考虑以下几维度的评测:
  1、图片数。
  2、重合率。
  3、相似度。
  1、对比每个词线上和测试服务器返回图片的个数。
  a)统计测试比线上少的词占比。
  b)统计测试比线上少50/100/150这3个维度的占比。?
  从这个维度,可以知道测试和线上服务器返回图片数的差距。可以推进开发解决线上服务器返回图片太少的问题。有了这个后,怎么知道测试服务器好的图片是否排在前面呢?
  2、对比每个词线上和测试服务器返回图片重合率。
  a)计算方法:测试服务器前N张图片与线上服务器前N张图片的交集个数/N。
  b)统计前5/12/24/50/100张图的重合率。?
  从这个维度,可以知道好的图片排在前面的比例,通过分析badcase,可以推进开发调整策略,将好的图片尽量排在前面。那么对于线上和测试同样的前5张图片,线上服务器abcde和测试服务器decba这两种顺序,重合率是100%,用什么办法衡量这种情况呢?
  3、对比每个词线上和测试服务器返回图片距离相似度。
  a)采用莱文斯坦(Levenshtein)距离算法,将每张图片格式化成一个唯一字符。进行两个list对比。
  b)分别获取前5/12/20/30张图片的数值。?
  5、评测结果:
  最终对于线上随机取的5W个词,输出以下表格:
  对以上3个维度,可以通过数据化指标,从不同纬度衡量测试服务器和线上服务器的图片排序到底差距有多大。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号