一、自动化测试介绍
什么是自动化测试,自动化测试有哪些,自动化测试的意义以及什么样的项目适合做自动化,作为自动化测试人员我们应该具备哪些素质?了解自动化测试框架对于测试从业者的职业发展具有重要意义。
二、自动化测试的定义
自动化测试是通过一些自动化测试工具模拟人工操作验证其结果完成整个测试过程。自动化测试属于测试但是又不局限于测试,也是将软件开发过程中手动重复度高的,机械化的,容易出错的步骤用自动化实现,再将这类工作的人力释放出来做、有成长性或者创造性的工作。
三、自动化测试现状
近年来随着我国软件产业的蓬勃发展以及对软件质量的重视,软件测试行业随之兴起。软件测试在国内已经成为一个较为成熟的产业,逐步与国际水平拉近距离。具体表现在:
1)软件测试门槛低,薪资相对其他行业高,可谓是低报酬高回报的行业;
2)软件质量问题的影响越来越大,而软件测试就是保证软件质量的一个重要并且有效的手段,因此现在软件公司越来越重视软件测试;
3)软件测试行业发展势头良好,测试行业依旧处于供不应求阶段,自动化测试的发展整体上仍处于起步阶段。
四、自动化测试的分类
提到自动化测试,大多数人的第一反应就是UI的自动化测试,其实不然,它还包括了接口测试,安全测试,性能测试等,具体分类情况和每一类的测试的体系及工具如下如图所示:
五、自动化测试的意义
为什么要进行自动化测试?因为自动化测试的优点显而易见:
提高测试效率,节省时间和人力成本;
每次新的build发布之前,可以通过自动化进行BVT测试,大大节省了时间和人力成本。对于回归测试的效果也非常明显。
可以执行难以或不可能用手工完成的测试;
比如网站的压力测试,同时找很多人去测试不现实。便可以以自动化的方式通过机器去模拟。
一致性和可重复性强
由于测试是自动执行的,每次的执行内容和测试的结果的一致性是可以得到保障,从而达到可重复的结果。
项目质量流程需要
比如测试工具的开发,自动化在DevOps中的贡献。
自动化在DevOps中很重要因为它提供了准确性和速度。应用交付需要高效,而手动安全测试难以满足进度要求。更重要的是,第三方在外部手动测试中往往会遗漏测试错误。
六、什么样的项目适合做自动化
我们可以通过以下几方面来判断当前的项目适合做自动化:
1)项目维护周期长。如果维护周期太短,自动化框架有可能还没开发完,产品已经下线了。
2)比较频繁的回归测试。如果选用手工测试,第一轮可能还没完,第二轮就开始了。
3)产品比较稳定,不会频繁变动。如果产品不稳定,维护自动化用例成本太大,自动化测试投资回报率太低。
七、自动化测试人员应具备的能力
在早期,大多企业对测试人员的能力要求较低,导致人们的测试行业的认知都是:门槛低,水平低,能轻松胜任。而自动化测试,作为进阶,在测试基础欠缺的情况下,即使写出测试脚本也不能从根本解决问题。自动化测试人员应具备的能力可分为如下几个方面,这几方面在各个职业生涯发展阶段的要求也不尽相同,下一节会详细介绍各个阶段的要求。
1)基础能力。基础能力是测试能力和代码能力的基础,是对自动化测试人员的基础要求,包括细心,耐心,责任心,学习能力,分析问题和解决问题的能力,沟通能力,团队协作的能力以及总结问题的能力。外企或者国外的项目同时也会有外语能力的要求。
2)测试能力。测试能力是做自动化测试的基础,能够很好的帮助自动化促使决定什么时候引入自动化,有效的设计自动化测试用例,很好的发现bug,很好的理解自动化测试的目的与价值。测试能力主要包括业务分析能力,bug的洞察能力以及基本的软件测试知识(bug的生命周期,测试理论及方法等)。
3)代码能力。良好的代码能力是自动化测试人员写出高质量的自动化测试脚本的前提,开发自动化测试脚本的过程中,需要考虑代码的稳定性,健壮性和可扩展性,同时结合数据结构和算法来减少后期的维护成本。代码能力主要包括自动化脚本的设计能力,框架开发能力,框架设计能力。
八、自动化测试的发展前景
纵观人类发展方向,感应灯,扫地机器人,智能家具等的出现无一不诠释着自动化就是人类社会发展的大方向,软件测试行业也不例外,自动化测试一定是未来的方向。目前流行的敏捷、持续集成等都是以自动化为基础。所以说自动化测试的发展前景是乐观的,至少大部分测试从业者是这么认为的,而且他们希望提高自己的自动化测试技能,从而获得职业价值。