目前互联网测试中,几乎全部团队、全部测试人员都在作自动化测试。但要评价自动化测试实现的优劣,就须要拿具体的数据来讲话了。究竟自动化测试的效果如何呢?自动化测试有没有真正发挥出来其做用,又如何来评价一个团队自动化测试工做作得好坏呢?如下就跟你们分析一下自动化测试实现的优劣。面试
从自动化测试方法论层面来讲,之因此要实现自动化测试,大体有如下几个方面的缘由:测试
一、提高测试效率调试
二、提高测试覆盖度,包括深度和广度blog
三、提高测试发现问题后的解决效率接口
四、补充手动测试没法覆盖/不易覆盖的场景自动化
以上是一些实现自动化测试方向性的指导原则,但要评价自动化测试实现的优劣,就须要拿具体的数据来讲话了。下面就本身的一点经验,来讲说本身对自动化测试优劣的一些体会,不足之处,欢迎你们交流指正。io
互联网公司中,因为绝大多数团队都在重点攻克自动化测试,于是每一个团队都指定了相应的评价指标。虽然各个公司,各个团队对指标的侧重不一样,但几乎都会关注以下指标。class
一、自动化运行经过率/成功率效率
这里排除了代码bug致使的失败。为了不自动化运行常常失败,大部分团队都会将自动化运行经过率做为一项重要指标,来评判不一样模块/业务线自动化实现的好坏。还将这个指标设置必定的阈值,例如,经历过的有个团队要求自动化运行成功率要大于90%+,最好能100%运行成功。自动化测试
这个指标是几乎全部团队都会强调的一个指标了,由于自动化运行经过率/成功率是自动化发挥做用的前提条件。但看这个指标,其实也没法评估自动化实现效果,只能说明自动化运行的比较稳定。
二、自动化执行频率
这里的执行频率,排除业务测试,特指天天定时的自动执行。不一样团队,根据实际状况不一样,有不一样的要求。例如,有的团队要求迟早至少各一次,有的团队则要求天天至少执行一次,但不管哪种,几乎都会造成这样一种现象:各个团队为了让定时自动执行时都经过,天天都要花费必定时间来维护自动化代码。
这个指标其实也是一种评估自动化运行是否稳定的指标。执行的频率越高,加上执行的经过率/成功率越高,说明自动化运行的越稳定。
三、自动化case数量/覆盖场景数
这个指标不一样业务线之间,其实没有太大的可比性。但同一个业务线上,仍是能够做为参考指标的。自动化case多、覆盖的场景多,至少必定程度上说明了自动化的覆盖范围。这个指标能够必定程度上来评估自动化测试的广度、深度。
四、自动化发现bug比例
若是说自动化运行经过率/成功率、自动化执行频率、自动化case数量/覆盖场景数仍是评价自动化优劣的过程指标,那么自动化发现bug比例就是最有力的结果性指标了。试想一种极端状况,若是一个自动化项目,跑了N久后,尚未发现过bug,那么这个自动化的价值是否是要打一个大大的问号呢?
本身经历的团队,以及曾经接触过的团队,其实对自动化发现bug比例的侧重反而不是那么高。
这个指标能够说是众多指标中,最能立竿见影的说明自动化实现效果的指标了。自动化发现bug的比例越高,说明自动化在实际的项目中发挥的做用越大。甚至能够用自动化发现bug率是100%,来做为自动化测试的终极目标。
若是对软件测试、接口测试、自动化测试、面试经验交流。感兴趣能够加软件测试交流:1085991341,还会有同行一块儿技术交流。
关于评价自动化测试的优劣,除了上述常见指标外,还有一些不太容易拿数听说话的指标,这里叫作隐性指标。
隐性指标主要包括:自动化的维护成本、自动化的运行成本
一、自动化的维护成本
针对同一个业务,不一样的自动化测试实现方案,对应的维护成本可能天壤之别。诚然,自动化的维护成本,受业务成熟度、迭代速度、项目规范程度影响,但不妨考虑如下状况下,你的维护成本如何:
新增了一些逻辑(如,接口/服务/应用),对新增部分维护自动化,你须要多长时间;
删除了一些逻辑(如,接口/服务/应用),对删除部分维护自动化,你须要多长时间;
修改了一些逻辑(如,接口/服务/应用),对修改部分维护自动化,你须要多长时间;
在项目迭代速度加快时,并伴有增删改逻辑时,你的自动化脚本还能跟得上吗?其实,这是很多团队都会面临的严峻考验。 一个正处于快速发展的业务,每次业务测试、回归时,可能都会想放弃自动化测试,转而来手工执行测试。由于,自动化测试还要不断调试自动化代码,大几率来不及此次的测试,还不如直接手动测试的效率高。
二、自动化运行成本
这里的自动化运行成本是说,从想执行自动化 ~?执行结束 须要符合的人力&时间成本。通常的自动化运行过程大体以下:
1)创造一些自动化执行条件。好比,找运行数据,设置运行环境等等,这一步若是没有被自动化掉,须要花费人力&时间;
例如,实现的自动化只能”一条腿走路“,即只实现了半自动化,并无实现100%的自动化,运行前/中/后可能须要人为参与。
2)执行自动化。这里主要是自动化运行所需时间,时间越长,致使的等待时间越长。可能你会说,自动化执行的时候,你能够去干别的事情啊,不必一直等待执行结束。但既然执行了自动化,确定想像手工测试同样,”立刻“看到执行结果,获得及时反馈,才能避免在不一样工做间来回切换。
3)验证自动化结果。通常结果的验证都包含在上一个步骤里面了,但不排除有些验证仍然须要人工来check的状况。这种状况,其实也属于半自动化的一种实现形式。
4)自动化失败问题排查。各类各样的缘由,都会致使自动化运行失败了,好比,数据问题、环境问题、自动化维护不及时、第三方问题等等。自动化失败后,可否比较清晰的给出失败缘由,甚至能根据自动化失败结果,直接定位到失败缘由,这些作到位了,会让你对自动化爱不释手。
以上内容但愿对你有帮助,有被帮助到的朋友欢迎点赞,评论。