一、什么是自动化
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。本质上,自动化与软件开发过程从本质上来讲是一样的。自动化测试的本质是先写一段代码,然后去测试另一段代码。
自动化测试和手工测试是一个相对的概念,更通俗点讲:手工测试好比人靠双腿走路,自动化就是代步车。
二、自动化测试流程
不管是自动化测试也好,还是功能测试、性能测试等,流程上都大同小异,下图是自动化测试流程图及不同阶段的负责人和输出文档信息:
三、自动化分层概念
分层自动化是为了解决测试成本问题。传统的自动化测试更关注的产品UI层的自动化测试,而分层的自动化测试倡导产品的不同阶段(层次)都需要自动化测试。
相信测试同学对下面的金字塔并不陌生,这不就是对产品开发不同阶段所对应的测试么!我们需要规范的来做单元测试同样需要相应的单元测试框架,几乎所有的主流语言,都会有其对应的单元测试框架。如:
python 的unittest、pytest
java的Junit、testNG
C#的NUnit
至于在金字塔中三种测试的比例要根据实际的项目需求来划分。在《google 测试之道》一书,对于google产品,70%的投入为单元测试,20%为集成、接口测试,10% 为UI层的自动化测试。