前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《测试开发方法论》之 失败处理

《测试开发方法论》之 失败处理

作者头像
我去热饭
发布2022-05-19 13:49:12
2700
发布2022-05-19 13:49:12
举报
文章被收录于专栏:测试开发干货

测试开发的领域中,我们做的最多的就是 生产测试数据的工具,还有自动化脚本,工作流自动化等等提效工具。

今天要说的就是在制作这些工具的时候,要留个心眼,留什么心眼呢?当然不是坏心眼,而是要做好脚本代码执行失败的 处理办法。

执行失败后,确保不生成脏数据。这个意思很简单,比如你做一个自动注册的脚本:原来需要很多恶心的实名认证/验证码/邮箱/昵称设计/推荐码等等一些功能,但是你做的工具可以自动化的去执行这些步骤。但是你要想一下,万一在执行中途,因为某些原因脚本意外中止了。那么之后怎么办?

比如到了昵称设计的接口,接口报错导致脚本终止了。那时,使用者的看到你的平台工具提示说 注册失败。然后她还想重试的时候,却被第一个接口告知,该手机号已被注册! 她有什么办法呢?这个没有昵称的手机号账户,是否算作一个脏数据呢?

当然,这里的修复办法很简单,比如让她用手机号登陆下,然后自己手动修改昵称,或者你去数据库去手动删除用户表的这个半截数据。

不过,这里举例的是一个很简单的场景,如果遇到比较难的呢?比如构造某个产品。从入库,商标,价格,库存,优惠,活动,然后自动提交审核,自动审核,自动上线等等好几十个维度去构造的时候,如果中途构造一半报错了,那后果可是很严重的,比如脚本执行到 自动提交审核这步,结果报错中止。然后使用者看到的结果是商品正在审核中,他没办法重新再次执行脚本,也没法自己去审核等等,还是需要报告你,让你这个测试开发去手动审核等等,这种事一旦数量上来了,会把自己累死。

不要说什么 只要脚本写的好就不会有报错。这是不可能的,实际中,引发错误的原因太多,完全不可控,很多时候是开发那边的接口服务器的错误甚至网络问题,我们要做的不能只是确保不出现错误,而是要同时做好一旦出现错误,要如何最低代价的修复。这正是和isoo9126中的 可维护性/健壮性等不谋而合。

那么所以我们在一开始设计这个脚本的时候,就要想好一旦出现这种情况要怎么办?

1.报错日志 和 错误提示,要非常清晰明了,让使用者知道目前是因为什么原因在哪一步出错了,要去理智的报告问题或者自行解决不要慌不要着急。

2. 统计报错日志,按照错误频率排序,从最高开始进行异常处理,比如重试该步骤,自动删除/复原,自动报警给负责人等等。

3. 确保好排查,也就是易测试/易修复性,这个主要看你的代码风格和架构算法功底了。高内聚/低耦合 不是一句口号,pep8风格,单双驼峰,类和函数命名最好都规定上,代码注释,函数调用,架构设计都要经过深思熟虑。

4. 成本控制,著名的page-object设计模式就是基于成本的控制角度提出的,把元素定位和元素业务逻辑操作 完全分开,以便之后维护方便。pip可下载的wqrfnium也是基于成本控制,在元素定位失败后自动排查锁定最接近的新元素,试出来后会覆盖原来的定位方式。这些技术都是针对成本控制出发,用来进行失败处理的算法工具。

5.成本转移,出了问题的时候,能不能把这个维护的成本,修复的任务转移给更适合的人呢?比如谁对这业务比较了解,谁目前比较需要这些任务来升职加薪。就给谁去做。但是你作为主程测开,要把其他人维护的门槛成本降到最低,比如底层代码,逻辑能放到页面维护;各种复杂的组件你都封装好,让人简单调用;不重要的边缘技术比如前端开发能给自动生成等等。

好了关于失败重试的问题就探讨到这里来,这也是我总结的做好一个合格的测试开发的方法论的重要一环,希望大家喜欢。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档