之前有朋友问过这个问题:什么样的项目适合做自动化测试?这个问题也是很多面试自动化测试工程师时经常被问到的一个问题,下面我就简单说下自己的看法:
首先,为什么要进行自动化测试?
这个也是个老生常谈的问题了。为什么要进行自动化测试呢?最根本的原因就是测试员们花费太多的时间去重复执行一些测试而导致项目进度延误,并且,由于大量的重复执行,使得很多测试员在后期的执行测试中往往会忽略很多东西,从而导致测试的整体质量和水平下降。自动化测试就是把我们需要花费大量时间去重复执行的测试操作用脚本实现,从而让测试人员从枯燥的重复执行中解放出来去做一些其他事情。
看到上面的说明,我想我们现在对自动化测试应该有个大致的概念了。既然概念有了,那继续回到最初的问题:什么样的项目适合做自动化测试?
在回答之前,我们先来看几个场景,用场景来说明下什么样的项目适合做自动化测试(为了方便场景中均未开发完成后测试正式介入执行;场景的时间是自己随便写的,大家别太纠结了)。
Scenario 1:
项目A为一个长期性的项目。每10个月有个大版本,对程序5%~30%的布局进行更改,期间可能会增删一些功能;每1个月有个小版本,修改量很小,一般为页面元素和资源的替换,偶尔会有一些小功能修改。
Scenario 2:
项目B为一个周期比较长的项目,持续时间为2年。项目为持续集成模式,预计开始集成起始时间为6月到次年3月,交付时间为次年12月,一次性交付。
Scenario 3:
项目C为一个中期项目,持续时间6个月,预计测试时间2月。
Scenario 4:
D为同类型的若干项目,功能相似,页面元素资源不一致
Scenario 5:
项目E为一个短期项目,时间一个月,测试时间2~3星期。
在以上的项目中,项目A、B是最适合做自动化测试的,首先,测试时间足够充分;其次,测试为分期执行,中间有很多需要重复执行的测试部分。项目C如果技术能力足够,也是可以实现自动化测试。项目D需要根据测试时间和技术能力来决定是否需要做自动化测试。项目E就算了,时间太赶,而且只有一期,投入跟产出不成正比。
综上所述,我们可以大致得出以下必要条件:项目测试时间较长或项目周期较长,需要大量重复执行测试的情况下。
项目角度说完了,下面从技术角度来说下。
自动化测试主要是通过代码或脚本模拟手工测试的执行,所以要实现自动化测试必须满足以下几点:
1. 测试操作可明确用脚本实现;
2. 操作结果明确可以验证;
不过现在测试技术发展这么快,很难说哪些一定不能用技术手段实现,所以,技术这块我还是silence吧,毕竟,我也才是个新人。