电影|阿里自动化测试工程师教你怎么提高测试效率!( 二 )


  • 在定时任务的背景下 , 快 →时间缩短
  • 在定量任务的背景下 , 快 →人数减少
我们可以尝试以效率提升最本质的目标作为驱动 , 也许将更有效、更直接 。
在具体指标设定时 , 除了“定性”、不可避免的还要“定量” , “定量”一方面是为了度量其绝对值 , 另一方面是与其“定性”相互佐证 。
  • 定性:时间缩短→ 例如 , 平均项目测试周期缩短 X %。
  • 定量:累计节省人力投入(或累计节省额外人力投入) → 例如 , 累计节省额外人力投入X 人月 。
如何去做
这是万事俱备 , 只欠东风的一步 , 当然这也是最重要的一步 。 有一些项目可能会有疑问 , 上述的问题 , 我们都一定程度解决掉了 , 但自动化测试仍然没有达到预期的效果 。
大概可能是以下原因导致:
  • 缺乏整体测试用例执行设计 , 用例覆盖目的性弱 , 具有随机性、随意性 , 低覆盖 , 无法真正的缩短执行效率 。
  • 只做到了自动执行 , 但没有做到自动验证 , 无法真正的在保证质量的提前下 , 提高执行效率 。
  • “自动化孤岛” , 缺乏持续性、未引入到流程当中 。
“缺乏整体测试用例执行设计”的问题 解决思路
我们在手动执行测试用例时 , 为了缩短执行时间 , 避免某些操作的重复执行 , 通常 , 我们会先设计执行场景 , 一个场景下 , 尽可能根据执行顺序 , 覆盖更多的测试用例 。


比如 , 结合上述业务流程Demo我们需要自动化测试覆盖所有功能服务接口 , 我们的会怎样设计测试用例?从单接口的角度还是场景的角度?
对于这种包含业务流程或是用户使用场景的功能测试分析 , 建议从场景的角度去覆盖 , 通过场景的流程分解 , 逐步拆分 , 然后对拆分后的流程环节进行测试分析 , 提取测试点 。
最后 , 根据流程串联各个环节的测试点 , 最大程度地复用流程 , 降低测试覆盖过程的重复性操作 , 以覆盖一个场景为最小有效单位 。 例如 , 1-2-4-5-7 1-3-6-7。
假如 , 我们在自动化覆盖的时候 , 不按照场景的方式 , 单个接口逐一覆盖 , 此时若“关注商品”暂时没有进行覆盖 , 还是采用手动执行的方式验证该功能 , 单从自动化覆盖率、用例数量等指标看 , 与场景的方式无异 。 但在实际手动执行时 , 会发现在有意或无意地在操作自动化已经覆盖的“查询商品”等功能 , 那么从提效的角度来看 , 手动执行自动化已经覆盖的测试点 , 相当于自动化的提效作用被抵消 。
因此 , 无论我们在冒烟测试、回归测试的用例设计中 , 尽可能保障覆盖功能点在操作上的闭环 , 以覆盖一个场景为最小有效单位 , 这个场景的定义就是连续性操作的闭环 , 可能是N个功能、也可能是一个功能 。
只做到了自动执行 , 但没有做到自动验证
翻阅平台的自动化用例 , 不乏只有验证响应状态的用例出现 , 也许是在手动测试的时候 , 只是关注了下状态 , 剩余的一扫而过 。
一条严谨有效的测试用例 , 需要对响应内容全面覆盖 , 考虑到响应内容可能存在一些非幂等性的属性 , 比如当前时间 , 目前提供的关键字中 , 也灵活的支持过滤掉哪些属性不校验的功能 。

相关经验推荐