10分钟入门自动化测试

如果大家想快速入门自动化测试,那么请把你的宝贵时间借给我十分钟!这十分钟你将会了解自动化测试的概念、她的好处和弊端、哪些项目适合自动化测试而哪些又不适合、执行自动化测试的过程、她的投资回报率以及自动化测试工具的选择

自动化测试概念

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。

在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。我们熟知的UI测试、接口测试、白盒测试、性能测试、安全测试都可以用自动化的方式来代替!

由于历史因素(自动化测试创建的初衷是代替人工点击软件的测试工作),通常所说的自动化测试,泛指UI自动化测试。我们这里所谈及的主要知识点也是UI自动化测试。

1.好处

自动化测试可以替代大量的手工机械重复性操作,测试工程师可以把更多的时间花在更全面的用例设计和新功能的测试上;

自动化测试可以大幅提升回归测试的效率;

自动化测试适合在非工作时间执行测试,工作时间分析失败用例;

自动化测试可以高效地实现某些手工测试无法完成或者代价巨大的测试类型,比如关键业务 7×24 小时持续运行的系统稳定性测试和高并发场景的压力测试等;

自动化测试能够保证每次测试执行的操作以及验证的一致性和可重复性,避免人为想当然的遗漏或疏忽,例如:这个功能之前运行都是OK的,这次我就可以不测试了,结果这次悲剧却发生了。

2.弊端

自动化测试比较脆弱,无法快速的应对软件的需求变化。

自动化测试初期效率往往不高,开发自动化测试用例的成本比手工测试成本高很多。

优秀的自动化测试工程师薪酬很高,加大了企业的人员成本。

3.本质

编程测试,即编写一个程序测试另一个程序。所以,编写自动化测试用例属于开发工作,需要测试人员投入大量的时间和精力。当后期产品的页面元素和业务发生变化时,还需要付出维护自动测试脚本的成本。

4.过程

通常UI自动化测试的开发过程如下:

录制脚本>修改录制脚本>回放脚本>查看报告

入门自动化测试都是从录制脚本开始的,录制脚本就是在手工操作软件的时候,你的操作过程被自动化测试工具完整的记录了下来,然后工具把这一系列动作转化成与其对应的API。优秀的自动化测试工具都有自己的录制脚本工具,例如,Web

UI自动化测试的代表性工具Selenium就使用Katalon Recorder或者Selenium IDE进行脚本录制工作。

录制的脚本往往都不够稳定,我们在实际工作中要对录制的脚本进行修改,即二次开发。

回放脚本的过程就是运行在录制过程中录制工具生成的测试脚本。

自动化脚本运行完毕后会生成测试报告,以便于我们查看自动化测试脚本运行的实际情况。

自动化测试与手工测试对比投资回报率

从下图中可以看到,从第6次回归测试以后,自动化测试回报率开始显现(第6次是个经验值)。

 

适合做自动化测试的项目

(1) 软件需求变动不频繁;

自动化测试最怕的就是需求不稳定,需求的频繁变更会导致自动化测试用例的维护成本直线上升。刚刚开发完成的脚本可能因为产品页面的变化和业务的变化,不得不重新开发。因此自动化测试要从需求稳定的功能模块入手。

(2) 项目周期足够长,需要频繁执行回归测试;

开展自动化测试要选择产品生命周期足够长并有多个持续版本发布计划的项目,通常在有6次回归测试以上的项目中自动化测试的优势才会大于手工测试。

(3) 需要在多个平台上重复执行相同测试的场景。

如果你公司的产品符合如下需求,那么投入自动化测试会带来良好的收益。

产品支持多浏览器;

移动端应用需要在近千台手机中运行;

对于一些企业级软件,如果对于不同的客户有不同的定制版本,各个定制版本的主体功能绝大多数是一致的,可能只有个别功能有轻微差别。

(4) 无法通过手工实现或者手工实现成本过高的项目

通常在执行关键业务 7×24 小时持续运行的系统稳定性测试和高并发场景的压力测试时必须使用自动化测试,因为人工测试几乎不可能完成测试任务。

不适合做自动化测试的项目

除了需求变动频繁、项目周期短这种典型的不适合做自动化测试的项目,在以下列举的体验类的项目中也不适合做自动化测试,包括:

视频体验、美观体验、声音体验、易用性体验和多用户交互体验。

Windows、Android、IOS、Web自动化工具选择策略

不同的平台做自动化测试需要选择不同的工具,在这里介绍一下目前最为主流的几个自动化测试工具

Windows平台中应用UI自动化测试解决方案

AutoIT是开源工具,该工具识别windows的标准控件效果不错,但是当它遇到应用中非标准控件定义的UI元素时往往就无能为力了,这个时候选择silktest或者UFT都是不错的选择,遗憾的是二者都需要购买产品license。

Web应用UI自动化测试解决方案

选择Selenium即可,无需考虑其他方案

Android应用UI自动化测试解决方案

选择Appium即可,Appium使用Android系统的UIAutomator框架来操控Android应用中的UI元素。

IOS应用UI自动化测试解决方案

选择Appium即可,Appium使用WebDriver的json wire协议来驱动Apple系统的UIAutomation库来操控IOS应用中的UI元素。

最后的总结

了解自动化测试的知识比较容易,大家只要认真阅读这篇文章就可以了。上手自动化测试只要选对了工具也会非常轻松,做过一两个项目也就熟练了。但是当我们做自动化测试时遇到某个问题而工具不能解决,我们必须进行编码处理时,这才算是真正的挑战!另外自动化脚本运行起来容易,想稳定的运行却很难,想解决这个问题也必须具备一定的编码能力!总之,自动化开展的成功与否,最后决定的因素是大家的coding能力!所以,不断提升代码能力才是重中之重,而非你会使用了某某工具!

https://mp.weixin.qq.com/s/5k1X1bujvrPeM7HVF_utEA 来源于鲁德,作者鲁德-kevin

你可能感兴趣的:(大数据,编程语言,java,软件测试,人工智能)