zoukankan      html  css  js  c++  java
  • 测试比对工具,辅助型QA转型之路

    作者|王程展

    前 言

    随着行业的发展,QA已不仅仅定位于通过功能测试保证代码质量或需求的顺利上线,而是开始探索如何通过技术手段辅助开发自测,从而实现从传统类型向更高效的辅助型转型。基于此种大背景下,转转优品QA团队开始了转型方式&方法的探索。

    转 型 之 路

    在探索转型的过程中,我们发现开发测试工具或使用技术手段不是盲目的,要有针对性。针对不同需求的不同特性使用对应的技术手段,从真正意义上做到提升效率以及辅助的目的。接下来将介绍目前优品对两种不同类型需求使用的不同技术手段。

    1、运营类需求:

    优品是面向用户的B2C业务,对于面向实际用户的业务部来说,运营活动是必不可少的。此类需求的特点主要有以下三个:

    • 业务流程短;

    • 页面变化多;

    • 改动点少;

    正因这三个特点,我们以此类需求作为转型的切入点。针对此类需求我们探索使用HTTP DIFF以及基于视觉效果的UI自动化这两种工具。

    HTTP DIFF

    由于http diff适用于以下两类需求:

    • 业务流程短,对接口依赖高;

    • 相比新功能更关注老功能的回归;

    运营类需求的特点也正是这两点,故我们使用http diff作为第一个工具。

    下图是工具实现的一个简单流程图:

    以下是工具实际页面的截图:

    接口列表页:

    接口新增页:

    diff结果页:

    基于视觉效果的UI自动化:

    HTTP DIFF是基于接口层的校验工具,运营活动除了接口是一个关注点之外,页面的展示也是此类项目的关注重点。那如何对前端展示进行校验,就是我们探索的另一个问题。

    起初,我们有讨论过传统UI自动化的可能性,如使用Appium、puppeteer等工具进行前端自动化的用例编写从而实现校验。但是传统的UI自动化大多更适用于页面不改动或改动点较少的情况,对于页面更新频率高或改动很多的情况,case的高维护成本是个严重问题。由于运营类活动每次页面的样式均是根据运营氛围特点而定制的,改动点往往很多,传统的UI自动化并不适合。

    后来我们发现了基于视觉效果的UI自动化,此类工具的实现方式是,首先通过对特定页面或位置进行页面截图,然后通过一些方式将图片分类汇总发送给相关同学,然后相关同学通过观察截图进行人工校验。通过半自动化+半人工的方式实现前端样式的精准校验。此类工具的好处在于:

    • 不受页面结构变动影响;

    • 可以对页面细节进行更准确的校验;

    这两个特点正是我们想要的。下图是一次自动化结果邮件截图:

    以上就是我们针对于运营类需求所探索的工具。接下来将介绍另一种类型的需求。

    2.订单相关需求:

    由于订单流程和金钱&收入相关,目前此类需求还是多由QA介入测试,此类项目关键点主要有两个:

    • 在测试阶段如何快速的构造订单或者商品;

    • 对于复杂的订单收费逻辑如何能够回归覆盖全部分支;

    针对这两个点,我们准备探索数据构造以及线上订单逻辑巡检两种方式。

    数据构造:

    什么是数据构造?我们在接口测试的基础上,将多个接口进行合并串行从而形成一个流程,并将这个流程封装成RPC接口或者http接口,当我们调用接口时就可以得到一个想要节点的数据,这就是数据构造。

    数据构造工具阶段图:

    线上订单巡检:

    由于订单逻辑的复杂度较高,所以每次都进行全流程的回归成本较大。我们计划探索线上巡检的可能性,通过定时抓取线上所有不同类型的订单并且进行各个钱款相关逻辑点校验的方式作为项目的兜底回归。目前此工具还处于设计&探索阶段,经调研,我们觉得此工具是一种可行的方式。

    计划实现流程图:

    总 结

    转型之路我们才刚刚开始,我们开发了一些工具,也有了一些想法,但是最重要的还是如何推动现有工具的使用以及落地。转型的大潮是必然的,作为一名QA如何能跟上转型的大潮,适应未来新的模式,才是我们当下最应该思考的。


    ----end----


    推荐阅读:
    浅谈如何自动化生成测试脚本...
    有没有好到简历模版可以参考一下
    

  • 相关阅读:
    我cnblogs的主题
    Scala Error: error while loading Suite, Scala signature Suite has wrong version expected: 5.0 found: 4.1 in Suite.class
    Spark之路 --- Scala用JFreeChart画图表实例
    Spark之路 --- Scala IDE Maven配置(使用开源中国的Maven库)和使用
    Spark之路 --- Windows Scala 开发环境安装配置
    epoll函数
    Linux网络编程目录
    函数wait和waitpid
    会话
    进程组
  • 原文地址:https://www.cnblogs.com/finer/p/14127761.html
Copyright © 2011-2022 走看看