探索式测试:测试自动化实例分析

发表于:2011-5-11 11:21

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

 作者:Liang Shi    来源:51Testing软件测试网采编

  对于搜索用户,自动建议(AutoSuggest)是一项贴心的设计。但是对于测试工程师,这不是一项容易测试的功能。

  1、手工探索式测试无法保证测试抽样可以覆盖用户输入。与必应搜索庞大的用户输入相比,手工测试的覆盖率接近于零。传统的等价类划分等测试抽样方法,对于如此海量的、无规则的输入,也无可奈何。

  2、传统的自动化测试遇到的困难是无法构建测试Oracle。自动建议的核心实现是基于海量数据的人工智能算法。算法的输出受到多个因素的影响,如当前用户的查询、近期的相似查询、自动拼写更正、关键词过滤(如去除色情内容)等。对于特定的输入,很难构造自动建议的“预期结果”。

  面对困难,Harry的测试思路是构造启发式测试Oracle(Heuristic Test Oracles)。所谓启发式Oracle,就是使用规则对测试结果进行一致性检查。开始时,Harry的规则非常简单:

  自动建议的结果应该以输入字符串为作为缀。
  Autosuggestions should have the input string as their prefix.

  Harry编写了一个简单的测试程序。它从必应的服务端日志中获得真实用户的查询,调用自动建议的Web Service API,以获得这些查询的自动建议结果,最后利用上述规则对结果进行检查。

  很快,测试程序发现了不满足规则的案例。当输入是“nestb”,自动建议返回“bestbuy.com”(百思买,财富500强消费电子零售商)。这是自动建议的拼写更正(Spelling Correction)功能,它将用户的“疑似错误输入”,纠正为一个最可能的结果。该行为是可接受的。于是,Harry将规则修正为:

  自动建议的结果应该以输入字符串的合理近似作为前缀。
  Autosuggestions should have a reasonable approximation of the input string as their prefix.

  虽然不知道Harry的具体做法,我能想到若干“合理近似”的判定方法。

  1、将单词看作向量,计算向量之间的距离。距离小于指定阈值的单词对,可以认为相互“近似”。

  2、查询Office Word的拼写更正字典,获得指定单词的所有拼写更正建议。这些建议可以视为单词的“合理近似”。

  3、调用必应的搜索API,获得搜索结果。搜索结果中的高亮关键词可以视作查询的“合理近似”。

  Harry利用修正后的规则又发现了一些违规的案例。如输入“dond”,自动建议返回“nbc.com”。也许这符合某些文化上的约定,但值得进一步调查。再例如,输入“federal trust bank”,自动建议返回“floridalottery.com”。这个建议应该是错误的,需要开发者去调查哪里出了问题。在这个过程中,启发式Oracle更像一个过滤器,它处理海量的数据,过滤出需要测试者人工审查的潜在错误案例。

  通过持续运行测试程序,Harry获得了以下成果。

  1、测试运行了7天,覆盖了2200万个用户查询。

  2、发现了1万个有问题的建议结果。

  3、在建议词条数据库中,发现了1.9万个从未被返回的建议词条。它们应该被剔除。

  当然,真实的测试过程比上述描述要复杂一些。但是,它们都拥有相同的核心:从简单的测试Oracle开始,利用测试反馈持续完善Oracle。Harry将这种迭代式的测试开发过程称作涌现式测试(Emergent Testing)。

42/4<1234>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • jerrygu625
    2014-7-19 20:00:10

    案件3没看懂?

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号