自动化测试(Automation Test)需要策略吗?

序言

我们知道,自动化测试是为了代替人工的测试,同时可以和持续集成整合到一起,尽快的发现代码隐藏的bug,根据软件生命周期理论,bug发现的越早,我们fix这个bug需要花费的成本就越少。自动化测试代替部分人工测试,这也可以减少人工成本。为什么我这里这么强调成本,做生意控制成本很重要,相同的赚钱能力的公司,谁的成本控制的好,谁的利润就高,谁就更容易活下来。总结一下,自动化测试有两个方面明显的优点。
- 尽快发现代码隐藏bug,减少返工的成本。
- 代替部分人工的测试,减少人工测试的成本。
自动化测试有这么大的优点,我们实现自动化测试的过程中需不需要什么策略呢?

实现自动化测试过程中的策略

实现自动化测试的过程就是实现测试金字塔的过程,测试金字塔大致分为四层。
这里写图片描述
金字塔的每部分形状的大小,也表示了每部分需要实现的test的数量。
从底部-》顶部,
- UT: 包括后端UT和前端的JS UT,这部分数量是最多的
- IT: 这个是集成测试,会串联UT,但是它会连接数据库,以及webservice
- API:这个涉及前端和后端的API
- UI:这个是UI测试的一些脚本,可以使用Robot, Sahi等等,这部分数量是最少的

实现这个测试金字塔的过程一般有两种策略:
我们假设一个系统有A,B,C,D四个模块。它们四个实现上面的金字塔都是需要100h。
1. 广撒网
广撒网是指,加测试的时候A,B,C,D四个模块雨露均沾,没有什么特别的规则,你只要能报证覆盖率是增加的就行了。
2. 集中某个业务流程
这种策略优先关注于A,B,C,D中的某一个,完成其中某一个之后,再去实现别的模块。

从宏观上面看,这两种策略最终需要的时间应该是一样的,既然是两种策略,肯定有不一样的地方。

策略对比

策略名 成本 发现bug收益(覆盖率) 代替人工收益
广撒网 400h 相同 从400h才开始代替人工
集中某个 400h 相同 从100h开始代替人工

通过上面的对比可以发现,集中某个业务的策略收益更早一些,对于广撒网这种策略,因为某个业务模块的金字塔没有完全实现,所以我们是不敢用它代替人工的,只能等所有的都完成了,我们才敢使用它代替人工测试。但是,集中某个业务是先完成某个业务流程,当这个业务流程完成了,我们就可以使用它代替人工测试,因为不是广撒网,所以我们收益的更早一些。

总结

做事是需要策略的,我们不能接到任务就埋头苦干,我们需要分析一下任务,找出对我们比较有利的方式。不能让战术上的勤奋代替战略上面的懒惰。

猜你喜欢

转载自blog.csdn.net/qisibajie/article/details/80550386
今日推荐