前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自动化测试良好实践 v0.3

自动化测试良好实践 v0.3

作者头像
程序员吾真本
发布2019-03-11 11:34:55
3930
发布2019-03-11 11:34:55
举报
文章被收录于专栏:程序员吾真本程序员吾真本

要编写多少自动化测试?

测试金字塔

  • 用户界面测试
    • 只覆盖主流程,少而精
  • 接口测试
    • 数量适中
  • 单元测试
    • 数量最多。不能访问诸如数据库、网络、文件系统等外部系统,只测试待测代码的内部逻辑
  • 用风险驱动自动化测试的编写,而不是所有需求都用自动化测试覆盖

自动化测试案例和代码该由谁编写?

  • 先由开发、测试、业务人员共同讨论主流程(即用户旅程)验收条件,再由开发人员编写自动化测试代码

什么样的自动化测试会遭废弃?

  • 运行时间太长、误报太多和缺乏维护的自动化测试,就会遭到废弃
    • 运行时间太长,就没人有耐心运行
    • 测试误报太多,就没人关注测试结果
    • 测试缺乏维护,就让人弃之不用

自动化测试该跑多久?

  • 单元测试
    • 几分钟
  • 接口测试
    • 十几分钟
  • 用户界面测试
    • 几十分钟

如果自动化测试数量多到难以维护该怎么办?

  • 一个系统要测试的功能太多,可视作该系统职责过多的坏味道,可以考虑进行架构演化,把系统拆分成几个微服务,让每个微服务的测试数量减少

没有自动化测试的遗留系统,该从何开始做自动化测试?

  • 主流程的验收测试(回归测试)
    • 用户界面测试
    • 接口测试
  • 严重的生产事故
    • 单元测试

自动化测试的格式是什么?

  • 如果(准备测试条件)……,当(调用待测行为)……,则(判断实际结果是否符合期望)……
  • Given..., when..., then....
  • 例如:如果系统有10万注册用户, 当创建一个新用户后, 则能在5毫秒内进入该用户的管理页面。

编写自动化测试的原则是什么?

  • 每个测试都能独立运行,不会依赖其他测试
  • 每个测试即使重复运行,也不会影响测试结果
  • 每个测试都有断言语句
  • 每个测试都能自己准备测试数据,并在测试执行完成后,能自己清理数据
  • 代码评审时要查看自动化测试代码
  • 在CI流水线中频繁运行
  • 改进架构,使其更具可测试性
  • 频繁维护

自动化测试是否可以删除?

  • 可以。要及时删除那些过时业务行为的自动化测试及其对应代码

何时更新自动化测试?

  • 当业务行为和接口行为发生变化时,就及时更新相应的自动化测试及其对应代码

如何有效统计自动化测试的覆盖率?

  • 在不及时删除过时业务代码的情况下,片面追求代码测试覆盖率是有害的。此时,业务主流程和生产事故的测试覆盖率,要高于已有代码的测试覆盖率。

搜集哪些有关自动化测试的数据?

  • 自动化测试覆盖的主流程用例数占比
  • 相同功能的手工测试与自动化测试用时对比
  • 自动化测试运行的时长
  • 自动化测试运行的频度
  • 自动化测试维护的频度
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.02.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 要编写多少自动化测试?
    • 测试金字塔
    • 自动化测试案例和代码该由谁编写?
    • 什么样的自动化测试会遭废弃?
    • 自动化测试该跑多久?
    • 如果自动化测试数量多到难以维护该怎么办?
    • 没有自动化测试的遗留系统,该从何开始做自动化测试?
    • 自动化测试的格式是什么?
    • 编写自动化测试的原则是什么?
    • 自动化测试是否可以删除?
    • 何时更新自动化测试?
    • 如何有效统计自动化测试的覆盖率?
    • 搜集哪些有关自动化测试的数据?
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档