前言:
大家好,我是一菲,今天和大家一起分析一下自动化测试的优势和弊端,希望给大家带来一些帮助。
正文:
自动化测试的优势:
1、反馈快速
自动化测试对于软件项目的各个阶段的验证来说是一种解脱。这改善了程序员、设计师和产品所有者之间的沟通,并且可以快速的纠正潜在的故障,保证了开发团队更高的效率。
2、可以更快的看到结果
由于自动化测试的快速实现,即使对于复杂而庞大的系统,也节省了大量的时间。这使得测试可以重复执行,每次都以更少的努力和时间交付更快的结果。
3、降低项目成本
尽管初始投资可能更高,但自动化测试为公司节省了很多钱,这并不令人意外。这主要是因为运行测试所需的时间急剧减少。它有助于提高工作质量,从而减少了发布后修复故障的必要性,并降低了项目成本。
4、改善测试效率
测试占据了整个应用程序开发生命周期的重要部分。这表明,即使是最微小的整体效率的提高,也会对项目的总体时间框架产生巨大的影响。尽管初始设置时间较长,但自动化测试最终占用的时间要少得多。实际上,它们可以在无人看管的情况下运行,从而在流程结束时监视结果。
5、整体测试覆盖率高
通过实现自动化测试,可以执行更多与应用程序相关的测试,这样可以很大的提供测试覆盖率。而在手工测试中,则恰好相反,时间非常有限。因而,测试覆盖率的增加意味着可以测试更多的特性和更高质量的应用程序。
6、可重复使用
由于自动化测试测试用例的重复性,除了设置相对容易的配置外,软件开发人员还有机会评估程序反应。自动化测试用例是可重复使用的,因此可以通过不同的方法来使用。
7、更早的发现缺陷
对于测试团队来说,软件缺陷的文档化变得相当容易。这有助于提高总体开发速度,同时确保跨区域的正确功能。发现缺陷越早,修复缺陷的成本效益就越高。
8、完全测试
测试人员倾向于使用不同的测试方法,并且由于他们的暴露程度和专业知识的不同,他们关注的领域可能会有所不同。随着自动化的包含,有一个有保证的重点放在所有领域的测试,从而确保最好的质量。
9、更快的上市时间
自动化测试通过允许不断地执行测试用例,极大地帮助减少应用程序的上市时间。一旦自动化,测试库执行将比手工测试更快,运行时间更长。
10、信息安全
测试的有效性将在很大程度上取决于使用的测试数据的质量,手工创建质量测试数据需要一定的时间,因此,测试常常在活动数据库的副本上执行。自动化解决方案可以帮助创建、操作和保护你的测试数据库,允许你一次又一次地重复使用你的数据。在这方面可以节约的时间和成本是巨大的。
自动化测试存在的弊端
1.自动化很贵
想要使用自动化测试的一个原因是省时省力,但事实可能有所偏差。所谓的自动化测试是自动化测试人员编写一段代码去测试研发编写的另一段代码,这中间需要花费的成本其实并不比开发一个产品少。 首先,开发自动化脚本需要花费不少的时间,若自动化脚本的质量无法保证,健壮性不够,很多时候都是运行几次就被丢弃了,造成成本的浪费。 其次,自动化测试需要由懂自动化技术的人来操作。自动化测试其实也是开发代码,也需要专业人才才能胜任此项工作。 时间成本、人力成本和技术成本,都是自动化中需要考虑的成本。自动化测试真的很贵,在部署之前,一定要考虑团队的消费能力。
2.自动化脚本并没有想象中的可靠
想要使用自动化测试的另一个原因是自动化测试忠实可靠。但自动化结果为success的可能只是幻象—脚本只会按照制订好的步骤去运行和确认结果,不会去全面捕捉一些突发的异常。而我们在测试中发现的缺陷有一部分是在步骤外“意外”发现的。 除此之外,自动化测试工具或者自动化测试环境可能并不是那么可靠,自动化测试环境或者工具也会导致自动化测试“失败”,也就是说结果为failure的测试用例也不一定就是真的存在错误。 因此,无论是正确的自动化测试结果,还是错误的自动化测试结果,都需要人再去确认。
3.自动化测试不是单靠测试就能搞定的事
编写自动化测试脚本并不是单依靠测试就能搞定的,前期需要产品确认好需求,确定好输入、输出;需要研发确定具体的实现方法(如后端研发需要确认接口的入参及输出结果结构,前端研发需要确认页面元素的标识),有了这样的前提测试人员才能输出详细的测试用例,最后才能根据测试用例编写自动化测试脚本。 在自动化测试脚本开发的过程中还要随时关注每个环节,无论是哪个环节的变动都会影响自动化测试的正常开展,使得自动化测试停滞不前,甚至返工。
评估自动化的收益
1.自动化测试的实施成本
自动化测试的实施成本,可以通过计算公式进行评估:自动化实施成本=前期开发成本+后期的维护成本 其中,前期开发成本主要包含如下内容:
人力成本:和自动化开发人员相关的费用成本。 时间成本:自动化准备时间、开发时间、调试时间的成本 金钱成本:工具购买、开发、维护的费用成本。 影响后期维护成本的是: 产品变更引起的自动化测试脚本变更的成本 定位、修复自动化运行环境的可靠性问题的成本 定位、修复自动化运行环境引起的脚本的健壮性问题的成本 其他任何未知的引起测试脚本变更的因素引发的成本
2.自动化测试的运行次数
自动化测试的运行次数是指在自动化测试脚本的生命周期内,这个脚本能够被执行的次数。显然,自动化测试的收益和自动化测试运行的次数是成正比的,脚本能够被运行得越多,自动化测试的收益才会越高。
3.自动化测试实施成本比
自动化测试实施成本比的计算公式如下:
p=(k x n) / (c1 + c2)
k:手工执行自动化用例所花费的时间成本; n:自动化测试用例执行的次数; c1:花费在自动化测试前期的成本(时间成本+人力成本+金钱成本); c2:花费在自动化测试后期的成本(时间成本+人力成本+金钱成本)。
4.准确度不高
自动化测试是工具执行,没有思维,无法进行主观判断,对界面色彩、布局和系统的奔溃现象无法发现,这些错误通过人眼很容易发现。
5.测试结果易受外界影响
自动化测试工具本身是一个产品,在不同的系统平台或硬件平台可能会受影响,在运行时可能影响被测程序的测试结果。
6.维护和设计工作比较困难
对于需求更改频繁的软件,测试脚本的维护和设计比较空难。
7.发现的问题比手工测试的少
自动化测试是机器执行,发现的问题比手工测试要少很多,通过测试工具没有发现缺陷,并不能说明系统不存在缺陷,只能通过工具评判测试结果和预期效果之间的差距。
8.自动化测试比较难
自动化测试要编写测试脚本,设计场景,这些对测试人员的要求比较高,测试的设计直接影响测试的结果。
鸡汤环节:
撑不住的时候,可以对自己说声“我好累”,但永远不要在心里承认说“我不行”。不要在最该奋斗的年纪选择了安逸,没什么好说的,一无所有就是奋斗的理由,我们试着长大,一路跌跌撞撞,然后遍体鳞伤,总有一天,你会站在最亮的地方,活成自己曾经渴望的模样。
所以当你感到疲惫的时候,不如稍作休息,但是不要忘了,在休息过后,及时背起行囊,不忘初心,努力坚持,相信努力的你最终会绽放出一朵属于自己的花儿来。
絮叨
在这里推荐一个我自己创建的软件测试交流群,QQ:642830685,群中会不定期的分享软件测试资源,测试面试题以及测试行业资讯,大家可以在群中积极交流技术,还有大佬为你答疑解惑,风里雨里,我在群中等你。
大家也可以关注我的微信公众号:程序媛一菲,有更多资源与你一起分享。