《一种测试覆盖分析方法与系统》的实践和思考二

新的系统不再用冲天炮,基于react&& spring boot做前后端分离,有web app 微信h5,并用yapi做接口管理。整套研发管理基于ci,第一步代码检查用了eslint&p3c,app端用了360fireline,SQL试soar不过优化建议不太准。通过git hooks使有问题的代码根本不上编译,暴力但是效果不错。

前端ui自动化有过几个尝试,headlness的puperteer,优化后的rf,163的airtest,h5页面试过fautotest,页面变化大维护成本超高,做了一个尝试(谢谢闲鱼大神指导),基于记录页面图像做深度学习,判断文字异常,界面错位,报错信息等页面问题,水平所限,记录图片和自动化脚本有了,但是tensorflow没写出来。

用Android 和 IOS的monkey,除了帮助做app稳定性,在积累图片上也是成功过的,关于app做过基于adb的非功能数据的收集和对比,横向比类似的app,纵向比不同版本,虽没有专业的电表但是发现了几个crash(感谢微信的大神指导,这里有一些机器学习的策略待专研)。接口由yapi管理,直接做了基于结构化数据的管理,接口变化提醒测试、生成测试脚本和数据,当然数据还是难在断言,这个yapi没有版本管理,不过基于里面的mongodb还是可以继续做进一步拓展。

接口还做了一个简单的压力locust尝试,运行没发现太多问题,但转教大神后,他们轻松挖得数据库锁并发低cpu内存高等问题,nmon是个不错的监控工具。

过程中不断强化utdd和bdd的应用,需要很好的单元测试习惯才能做utdd,而bdd在 lettuce和Sikulix已经试过,没把业务拆明白,都是吹牛皮。mock挡板在这个过程中起到重要作用,膜拜一下赵大神自带的mockman,想法和实现是见过开源同类产品的翘楚。

Jenkins的插件和burpsuite插件是好玩意,前者满足ci落地的最后一公里,后者满足屌丝想用一些扫描又没有钱买license.

经历这两类不同插件的开发使我明白好的架构真的很重要。当然2.0流水线还没懂,但是devops aiops不应该只有概念,要实践才能有新知,可惜…

你可能感兴趣的:(《一种测试覆盖分析方法与系统》的实践和思考二)