通用性接口健壮性扫描方案(二)

发表于:2021-9-06 09:41

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

 作者:有赞团队    来源:有赞技术

  2.3 用例执行
  数据用例生成后,即可进行用例的执行。为了和数据源拉取任务错开,也是每隔30MIN执行一次,但是执行的时间段数据比日志拉取的时间早30min。比如数据源拉取时间为当前时间的前30min,则用例执行的时间为当前时间的前60Min。主要是为了避开数据源拉取任务的数据还没拉完,导致用例漏执行。具体执行流程如下:


  根据算法模型生成的用例数据量一般都比较大,为了加速执行过程,采用多任务执行。服务调用可能会出现失败情况,如果失败,则根据补偿机制来重试,最终确保每个数据用例都能执行完成。补偿机制过程如下:

  2.4 结果分析
  通篇最难的是如何进行结果分析,即如何判断执行的结果是有问题的。主要有两种情况:1)返回success的接口实际上是错的不符合预期的;2)返回非success的接口实际上是正确的符合预期的。所以结果判断规则的制定特别重要,直接关系到结果判断的准确性,即整个方案的可行性。
  目前争对方案能解决的问题,主要制定两种类型的错误提炼规则:一、判断错误提示不合理;二、判断后端执行结果不合理。

  1) 错误提示不合理
  问题背景:商家在使用我们的产品的时候,会报一些错误。但是有些错误,商家会看不懂,不明白其中的意思,比如下图的错误提示。

  解决方案:为了解决此类问题,展示给商家的更友好的错误提示,提炼了错误提示不合理的规则,自动判断接口返回结果不符合规则的用例。
  这种规则的前提是基于接口返回的结果是非success。如何确定呈现给商家的错误提示不合理,需要测试、开发、产品人员一起确定出来“什么样的提示规则是合理的、商家易理解的”。比如呈现给商家的错误提示遵循一定的格式,呈现给商家的错误文案里一定不能包括专业性的词汇、不能包括一连串的英文、数字、不能包括传参对象的属性名称,呈现给商家的错误提示文案必须是完整的一个句子等等。根据这些规则,制定代码提炼错误的规则,即可准确判断出接口错误提示是否合理。

  2) 后端执行结果异常
  问题背景:商家在使用我们的产品的时候,系统会出现不可预知的异常,这些异常都是代码逻辑错误导致的。这类异常提示一般都有明显的特征,比如服务器错误、业务异常、远程调用异常等。

  解决方案:为了解决此类问题,抽取了几千条结果数据,这些测试数据基本覆盖了大部分的应用。争对这些数据,找出这类错误的结果提示,制定成一个规则集合。满足规则集合的则认为是有问题的用例。
  这种规则的制定,需要采集各个应用的大量的结果数据,找出这类型错误的提示,加入到规则集合中。一旦抛出这种错误,我们就认定用例结果一定是异常的、不合理的。这种规则的集合,需要持续性的维护,并且需要制定好开发规范。后续开发遵循这种规范,不能随手拈来一个错误提示。

  三、总结与展望
  通篇介绍了通用性接口健壮性扫描的方案,基本能够自动化解决部分接口通用性问题,整个过程无需人工干预,节省了不少人工成本,提高了应用的健壮性等。主要表现在:
  1、自动化获取基线用例
  2、自动化生成用例数据,这个数据量更丰富,数据更完善,基本能够覆盖所有场景的接口参数数据,做到穷尽测试
  3、自动执行用例,输出结果
  4、自动进行结果分析,判断出有问题的用例
  5、自动生成jira,自动推送给开发修复
  6、开发修复后可以人工点击重试,既可验证修复结果,无需重新构建用例,无需人工去调用。
  此方案忽略了业务之间的差异,扫描出的是通用性的逻辑问题。对于结果分析,还存在一定的弊端。比如期望结果是非success的,但是返回的结果却是success的。这种还没有确定的规则去挖掘出这类型的问题。因此,后续还有无限的提升空间。
  后续可以朝着这几个方向优化:

  1)做到业务关联性
  目前是忽略了业务的差异性,但是还有很多和业务相关的通用问题,暂时还无解决方案。是否可以建立业务关联性,来解决更多的问题。

  2)结果精确性规则提炼
  目前的规则制定,都是在有限的用例测试样例数据上提炼出来的。制定完善的规则,需要更多的测试数据来分析。同时,也需要良好的开发规范来保障后续提示遵守这个规则。这两者是相辅相成、相互促进、相互完善的。

  3)解决“返回success的接口实际上是错的不符合预期的”问题
  返回success的接口实际上是错的不符合预期的,目前这类问题还无法判断。

  4)基线用例持续性完善
  最初的基线用例数据可能只覆盖了大部分的参数,但是并不能保证覆盖到全部参数。因此基线用例的完善也是需要一个规则来持续性优化。
  结合现在的设计,最终未来呈现出的方案会包括以下核心的流程:

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

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号