美文网首页TDD(测试驱动开发)
自动化测试良好实践 v0.3

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

作者: 程序员吾真本 | 来源:发表于2019-02-27 22:25 被阅读0次

    要编写多少自动化测试?

    测试金字塔

    • 用户界面测试

      • 只覆盖主流程,少而精
    • 接口测试

      • 数量适中
    • 单元测试

      • 数量最多。不能访问诸如数据库、网络、文件系统等外部系统,只测试待测代码的内部逻辑
    • 用风险驱动自动化测试的编写,而不是所有需求都用自动化测试覆盖

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

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

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

    • 运行时间太长、误报太多和缺乏维护的自动化测试,就会遭到废弃

      • 运行时间太长,就没人有耐心运行

      • 测试误报太多,就没人关注测试结果

      • 测试缺乏维护,就让人弃之不用

    自动化测试该跑多久?

    • 单元测试

      • 几分钟
    • 接口测试

      • 十几分钟
    • 用户界面测试

      • 几十分钟

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

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

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

    • 主流程的验收测试(回归测试)

      • 用户界面测试

      • 接口测试

    • 严重的生产事故

      • 单元测试

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

    • 如果(准备测试条件)……,当(调用待测行为)……,则(判断实际结果是否符合期望)……

    • Given..., when..., then....

    • 例如:如果系统有10万注册用户,
      当创建一个新用户后,
      则能在5毫秒内进入该用户的管理页面。

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

    • 每个测试都能独立运行,不会依赖其他测试

    • 每个测试即使重复运行,也不会影响测试结果

    • 每个测试都有断言语句

    • 每个测试都能自己准备测试数据,并在测试执行完成后,能自己清理数据

    • 代码评审时要查看自动化测试代码

    • 在CI流水线中频繁运行

    • 改进架构,使其更具可测试性

    • 频繁维护

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

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

    何时更新自动化测试?

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

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

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

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

    • 自动化测试覆盖的主流程用例数占比

    • 相同功能的手工测试与自动化测试用时对比

    • 自动化测试运行的时长

    • 自动化测试运行的频度

    • 自动化测试维护的频度

    相关文章

      网友评论

        本文标题:自动化测试良好实践 v0.3

        本文链接:https://www.haomeiwen.com/subject/sjequqtx.html