提到自动化测试,相信很多人会比较熟悉,但是,自动化测试在软件测试生命周期中,它的定位及作用,可能有些人并不是十分的了解。本文通过客户的视角,系统的介绍什么是自动化测试,它的意义及优缺点是什么,什么项目适合自动化,什么项目不适合自动化。
当客户对这些概念有了系统的了解后,自动化测试在软件测试生命中的定位及作用便会有了答案。对于自动化测试服务,百度MTC又能做些什么呢?能给客户解决什么测试痛点,又能给客户带来什么价值?小编这里先卖个关子,后面通过问答的方式,相信你会找到你满意的答案!
什么是自动化测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
自动化测试的意义
-
通常,软件测试的工作量很大(据统计,测试会占用到40%的开发时间;一些可靠性要求非常高的软件,测试时间甚至占到开发时间的60%)。而且测试中的许多操作是重复的、非智力性的和非创造性的,并要求做准确细致的工作,计算机就最适合于代替人工去完成这样的任务。
-
软件自动化测试是相对于手工测试而存在的,主要是通过所开发的软件测试工具、脚本等来实现,具有良好的可操作性、可重复性和高效性等特点。
自动化测试的优缺点
什么情况适合自动化测试
-
产品型的项目,每个项目只改进少量的功能,但每个项目必须反反复复的测试哪些没有改动的功能。
-
增量开发、频繁发布、持续集成的项目
-
回归测试
-
多次重复、机械性操作
什么情况不适合自动化测试
-
一次性的项目
-
项目周期很短的项目
-
业务规则复杂的对象
-
美观、声音、易用性测试
-
测试很少运行
-
软件不稳定
-
涉及物理交互,如刷卡的测试等
百度MTC能够给客户提供哪些自动化测试服务解决方案
百度MTC自动化测试服务目前仅针对手机App,根据不同的客户场景和需求,提供相应的自动化测试服务解决方案。以下以客户实际场景为例,提供相应的自动化测试服务。
场景1:客户没有自动化测试团队,也没有主流的众多手机设备,测试目标简单(如只想验证App在不同款的手机终端上安装、启动、运行、不带业务逻辑的点测、卸载等兼容性问题)。
方案:建议客户使用深度兼容性测试服务(在被测App上随机点测)或深度遍历测试服务(按照树状结构,自动遍历App所有控件,覆盖各种异常分支),在选定的机型和时长上,进行自动化Monkey和Smartmonkey测试,记录测试过程中完整日志、截图、录像、捕获CPU、内存、流量、电量等性能数据,帮助客户发现,在不同品牌、型号、分辨率和版本的机型上是否发生闪退、crash、ANR、UI及功能异常等问题。
场景2:客户有自动化测试团队或者自动化测试能力很强,可以独自编写自动化测试脚本,但是没有主流的众多手机设备,期望主要的业务逻辑没有兼容性问题。
方案:建议客户使用功能自动化回放测试服务,我们会提供业界主流的自动化测试框架,如Appium,Robotium和UIAutomator2.0等,客户可以根据自身自动化脚本情况,选择相应的自动化测试框架,被测机型和运行时长,然后执行自动化回放测试。
场景3:客户的版本迭代频繁,测试回归需求量大,人力资源不足,自动化测试能力不足,测试质量要求高。
方案:建议客户针对稳定功能部分,使用功能自动化测试,我们会根据客户提供的测试用例,开发相应的自动化测试脚本,然后在主流的几款机型上执行功能自动化回归测试。随着回归测试次数的增多,回归测试的成本会越来越低,以至于最后为0。大大降低了回归测试成本,提高了测试效率。
以上三种场景,是目前客户需求量比较大的。除以上三种场景外,百度MTC还可以根据客户的实际需求,量身定制归属客户唯有的自动化测试解决方案。
作者介绍
王昊 百度MTC SA负责人
13年测试相关工作经验,10年+管理经验。在手机终端应用、BI财经大数据领域、银行金融领域的测试管理和咨询工作方面有较多经验。对于敏捷管理的框架、流程、方法、思想有很深刻的理解和见解。