小说书架内容质量自动化测试

发表于:2016-7-27 11:39

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

 作者:腾讯TMQ 妞妞    来源:51Testing软件测试网采编

  一.项目背景
  小说书架的产品思路是:在手机QQ浏览器这个平台上,给用户提供一个小说书架这样的小说阅读入口。通过这个入口阅读到的小说,是后台将从其它网页中抽取到小说的目录,内容进行过滤,拼接,存储等加工的,用户可以免费看到纯净的完整小说。小说书架有几个重要的特点:免费,追新能力强,内容完整而且正确。
  “内容完整和正确”反映的是小说内容的质量,而一本网络小说往往有成百上千个章节,一个一章节一个章节,一本书一本书的去人工核对每一章的完整性和正确性是很不现实而且效率低下的,因此我们考虑通过自动化的方式实现小说内容质量的测试
  二.测试目标
  小说内容质量方面常见的有四个方面的问题:章节重复(重章),出现与正文无关的多余章节(多章),章节标题或内容错误(错章),缺少某些章节(缺章)。本次测试目标主要围绕着这四项进行,对测试结果有要求如下:
 
  表1.内容质量测试项和目标
  三.测试思路
  测试的过程中,我们要先弄明白我们要测试的对象,找准对象后就可以比较有针对性的设计测试方法。
  此外,我们测试的内容涉及到错章和缺章,而只有对比,才能发现哪些是“错”,哪些是“缺”。
  理想的情况下,我们将小说书架上的书与始发站点的该书做对比,得到的缺章,错章数据是最准确的,但是由于小说书架上的书来源有很多,每个始发站点上内容的抽取方式都不同,因此将小说书架上的书与始发站点的书做对比不是很现实。
  百度小说是与小说书架比较类似的产品,考虑到百度是以搜索为主要业务的公司,我们认为百度小说在技术方面比如搜索小说的能力,拉取数据的能力是比较可靠的。
  在这种情况下,我们选择将小说书架上的书与百度小说中的该书进行对比,来考量小说书架错章和缺章的情况。我们的主要思路如下:
  测试过程考量的对象
  小说书架的内容质量有两项:目录的质量和正文的质量,这两者其中任何一项有问题,都会影响到小说的整体质量,因此在进行内容质量测试的过程中,我们主要围绕着目录和内容这两点进行。
  小说书架自比发现重章
  
  图1.判断重章的逻辑图
  从上面的逻辑图中我们可以看出,判断小说书架是否有重章只需要小说书架的目录中的章节标题自比即可,不需要与百度小说的目录进行对比。
  与百度小说比较发现错章和缺章
  
  图2.判断错章和缺章的示意图
  我们测试小说书架是否缺章和错章的思路如上图2所示:
  左边的圆代表小说书架中《致青春》这本书目录中章节标题的集合,右边的圆代表百度小说中《致青春》这本书目录中章节标题的集合。
  当两个集合中某两个标题的相似度大于70%的时候,我们认为这两个标题处于两个圆的交集中(区域B),即小说书架和百度小说中都有这一章,而且这一章是正确的。
  余下的区域C代表百度小说中有,但是小说书架中没有的章节,这表明区域C很有可能是小说书架缺少的章节;区域A代表小说书架中有,百度小说中没有的章节,我们判定区域A中可能含有小说书架错误的章节。
  无章节编号的章节为多余章节
  通过对小说书架中Top103本书籍的统计,我们发现小说章节题目的构成方式和每种方式所占的百分比如下表:
  
表2.章节题目的主要构成方式及所占比例
  2由上表我们可以看出,绝大多数书籍的目录中都是有章节号和章节题目的,而且通过观察发现,当这类书籍中出现无章节号的章节时,往往这个章节就是广告等与正文无关的内容。 因此,我们判定:当目录中某一张没有章节号时,这一章为与正文内容无关的章节。
  四.关键技术
  在实现本次内容质量自动化测试的过程中,主要涉及到的几项关键技术如下:
  对百度小说分析抽取百度小说的目录,主要思路如下
 
  图3.获取百度小说目录的逻辑图
  文本相似度分析
  在本次测试中,有两处需要用到文本的相似度:对比百度小说章节标题和小说书架章节标题的相似度,以及对比小说书架中章节题目相同的章节的内容的相似度。
  在进行文本相似度分析的过程中,我们主要用到了文本编辑距离算法(Levenshtein),我们记文本text1和文本text2的相似度为:Levenshtein.ratio(text1,text2)。
  考虑到中文汉字中容易出现同音字,而且现在拼音输入法普及度很高,章节标题中可能会有很大概率出现一些不影响语义的同音字。因此在进行文本相似度分析的时候,我们采取了分析汉字相似度和拼音相似度之后,取平均值的策略。
  小说书架上的小说分析
  小说书架中提取书籍目录的时候,需要用到书名,书的id号,书的总章节数等信息,这些信息都可以通过构造url,发送http请求,并对获取到的json格式的内容进行分析即可得到。
  在进行重章定位的时候,我们需要定位到目录中出现重复章节的章节名,以及这些章节的位置。
  五.实现方法
  在第二部分和第三部分中我们列出了本次自动化测试中的主要思路和涉及到的关键技术,在这里我们给出整个逻辑流程图:
 
  图4.整体逻辑流程图
  六.测试结果
  测试得到的数据我们分别存在不同的文件中,如下图所示,其中“1000020350”是《校花的贴身高手》这本书的id号,在小说书架中,每本书的id号都是独一无二的。
  
  图5.测试结果示意图
  在不同的表格中,我们根据测试目标,写入书名,重复章节号,等信息,如下图所示为重章情况下的表格内容:
  
  图6.重章数据的表格结构
  通过对目前测试结果的分析可以发现输出的表格中重章和多余章节的数据是相当准确的,几乎不需要人工检验即可,但是错章和缺章的数据还需要人工进行校验。
  七.问题与展望
  目前的测试结果中还存在不尽满意的地方:
  错章和缺章的数据还需要进行人工校验,输出的章节中,部分章节并不属于缺章或者错章,而是误判,因此需要人工对输出数据进行检验;
  由于程序中需要发送url的次数比较多,因此会存在某些书籍需要花费较长的时间才能跑出最终结果。
  因此下一步的工作中,希望对程序进行优化和改进,来进一步提高错章和缺章输出的数据的准确率,并且提高程序的效率,缩短输出结果所需要的时间。
转自:腾讯TMQ 
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号