自动化测试中的实施

发表于:2011-1-28 14:05

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

 作者:qinguang    来源:TaoBao QA Team

  自动化实施,可以理解为脚本的编写与维护。在实际操作中,编写只有一次,而维护的次数远不止一次,维护比编写更重要,因此自动化实施中最重要的部分便是脚本的维护。

  维护成本是测试是否需要自动化的一个焦点议题。如何降低脚本的维护成本?

  不依赖基础数据

  不依赖基础其实做不到,但是要尽量的减少依赖。

  比如发布宝贝,它依赖到了类目、spu;比如查看宝贝详情,它依赖到了类目、spu、评价、拍卖记录、订单。

  减少对数据的依赖是基于这么一个现实:数据是不可靠的,是会被人修改的。

  减少对数据的依赖,最好的办法就是自己维护。小的数据、数据库的数据,比如spu、评价、拍卖记录、订单,这些都可以在脚本中维护,每次运行的时候刷新,保证在需要的时候,它都是我想要的。

  但也有一些数据是无法自己维护的,比如类目很复杂,涉及8张表,而且它不使用数据库中的数据,使用forest本地包中的数据,即便维护了类目的8张表,在运行的时候刷新这些数据,依然不能避免数据被修改的风险。

  这种情况可以做什么?

  不使用标准类目,使用自己建的类目,可以一定程度上减少被修改的风险,但无法杜绝。

  同时,结合使用tdbank中的类目save&load功能,在类目建好以后save,以后每次运行前2小时load,并推送forest。二者结合可以很好的解决基础数据依赖的问题,并降低维护成本。

  不影响基础数据

  不影响基础数据是指在脚本运行过后,基础数据与脚本运行前是一致的,从基础数据的角度来看,脚本是否运行过是透明的。

  这样做有一个很大的好处是脚本failed的时候,能够迅速的排查问题,因为脚本运行时的基础数据与排查时的基础数据是一致的。可以在脚本结束的时候,将基础数据刷新成运行前的状态。

  用例解耦

  用例解耦要求脚本数据独立,脚本间没有依赖关系。

  可能有时候会面临一些相似的业务使用同一份数据的诱惑,可以节省编写的成本,但却把成本转嫁到了维护阶段,当脚本failed的时候,可能需要额外check相关用例是否有影响,从长远来看,实际成本是相当高的。

  特别的,当在不同的机器上同时运行2个不同的脚本时,可能会互相影响运行结果,如果用例数据独立的话,就不会出现这种额外的影响了。

  脚本间没有依赖关系是指没有哪一个脚本的运行结果是依赖于另一条脚本的,所有的脚本是一个独立的、完整的业务逻辑。即便是一个很长的流程中的不同阶段的校验,最好拆成不同的脚本来实现,这也是减少依赖应该做的。

  自动化测试中的实施,其实就是与维护成本作斗争,以上是一些个人经验,可以从一定程度上降低维护成本。当然,还有一个完美的解决方案就是搭建一套完整的、独立的自动化运行环境,目前来看这个是不太可能的@_@。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号