到底有哪些类型的测试可以被自动化呢?

  • 功能验收测试
  • 单元测试
  • 组件测试
  • 系统集成测试

自动化测试的优势

  1. 减少失误率,提高准确性。
  2. 节省时间和执行成本。
  3. 提升测试覆盖度。
  4. 做手工无法完成的测试。
  5. 为开发人员提高质量反馈速度。
  6. 提高团队士气。

自动化测试所需的投入

  1. 工具投入成本。
  2. 用例维护成本。
  3. 专业技能人员的成本。
  4. 设备资源的投入。

自动化测试的分层

“快、捷、时、信” 成为持续集成实践对自动化测试建设的 4 个基本衡量维度。

一、“快速” 是指自动化测试用例的执行速度要快。

二、“便捷” 是指团队中的每名工程师都能够随时随地很方便地执行自动化测试用例,而且不需要他人帮助,也不会影响到他人。

三、“及时” 是指一旦功能发生了改变,就能够通过自动化测试用例的运行,告知本次代码变更对软件质量的影响,包括对原有功能的影响,以及新增功能的质量情况。

四、“可信” 是指自动化测试用例运行后的结果可以信赖,不存在随机失败(或 成功)的现象。

自动化测试的实施策略

增加自动化测试用例的着手点

针对一个遗留系统,开始启动自动化测试实践,要从哪里入手呢?

  1. 针对代码热区补充自动化测试用例
  2. 跟随新功能开发的进度
  3. 从测试金字塔的中间层向上下两端扩展
  4. 自动化测试用例的质量比数量重要

提高自动化测试的执行次数

  1. 共享自动化测试用例
  2. 开发人员是自动化测试的第一用户

良好自动化测试的特征

  1. 用例之间必须相互独立
  2. 测试用例的运行结果必须稳定
  3. 测试用例的运行速度必须快
  4. 测试环境应该统一

共享自动化测试的维护职责

必须让自动化测试尽可能与生产代码同步变化。而最好的同步方式就是当开发人员运行自动化测试失败后,就可以自己动手修改对应的代码。这也是判断自动化测试意识是否深入人心的一个指示器。

代码测试覆盖率

经常有人问类似 “测试覆盖率到底达到多少合适?”

这个问题可以说“非常重要”,也可以说“非常不重要”。写自动化测试不是为了测试覆盖率的数值,而是运行这些自动化测试以后,对自己正在开发的软件质量到底有多少信心。

其他质量检查方法

  1. 差异批注测试方法
  2. 代码规范检查与代码动静态检测