您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
公司要做软件自动化测试,该如何开展?
测试,操作,任务公司要做软件自动化测试,该如何开展?
发布时间:2016-12-08加入收藏来源:互联网点击:
问题补充: 公司软件产品发展到了一定程度,想要开展自动化测试,该怎么开始,如何做?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
先讨论要不要做,再讨论怎么做。
要不要做自动化
自动化要不要做的问题,应该不是由某个角色决定的,而是由具体的软件产品特点、测试需求所决定的,同时自动化本身开展是有准入条件的。
自动化测试的目的不单纯是为了减少或者替代手工测试,而是为了测试人员能够做更多更有意义的测试(也包含手工测试)。 不是为了自动化而自动化,而是为了实现一套解决方案来解决问题从而开展某种自动化 ,肯定是解决某些测试过程中的问题而引入自动化测试。
同时自动化测试是有失败风险的,了解过几个失败的自动化案例,比如,团队人力充足,自动化测试非"刚需"的情况为了KPI等原因开展自动化;比如产品经常改动,就是做自动化;比如自动化框架或工具选择不当,用例难以维护、扩展等等,这也是比较常见的几种导致自动化失败的原因。
关于自动化的一些认识,可以看下我分享的一篇文章《何为自动化测试,为何自动化测试》。
如何做自动化测试
自动化测试本质上只是区别于手工测试的一种测试执行手段。都是基于需求分析、测试设计的基础上开展的。
首先,根据产品的特点、架构,选择适合的自动化测试框架、工具。比如产品业务包含复杂的流程逻辑(含审批环节、多用户角色),需要进行完整流程的自动化测试。这时候需要选择什么样的方式开展(比如选择 关键字驱动➕数据驱动测试框架,使用Python基于robot framework)进行用例开发。
其次,自动化环境搭建,比如开发环境(如Python+pycharm)、执行环境(如 Jenkins持续集成)、维护环境(如 git)。
最后,用例开发、执行、维护。自动化用例的可维护性、可扩展性对自动化测试可持续性开展起着重要作用,这点在开展过程中需要格外注意。
回答于 2019-09-11 08:43:50
和大家分享下在BAT里做自动化测试的工作经验。
曾经接触过PC浏览器和移动APP/WAP自动化测试。
PC浏览器
这里首先依赖的是selenium强大的自动化测试功能。
这里的架构是Agent-Server结构,每个agent是一台电脑,上面装载了Chrome,Firefox,IE,还有phantomjs。由于我们使用的是selenium2,因此,除了Firefox,其他浏览器都需要driver,必须有driver,selenium才能操作浏览器进行自动化测试,而且随着浏览器的不断升级,这个driver也需要升级,才能操作最新的浏览器,否则会报错。这个driver可以定期到
npm.taobao.org
网站上下载。
selenium3进行了改动,Firefox也需要driver了。
自动化任务会发送给server,然后agent定时到server端拉取任务到本地,通过解析任务,将任务分解为一个个浏览器操作动作,然后操作selenium进行操作,并将每个动作结果记录到一个结果String中,整个操作执行完成之后,将结果String回报到数据库。如果任务执行失败,通常也会有现场截图做证明。这种自动化测试通常用于页面监控以及功能回归测试。
移动APP/WAP自动化测试
此处针对安卓机,使用ADB命令的方式操作设备。
原理与上述PC浏览器相近,只不过一台电脑需要连接多台手机,电脑上安装了一个agent,用于接受任务,将任务解析为独立的adb命令之后,通过有线的方式来操作手机进行自动化测试。这个过程也是会把每步操作记录到结果String,然后对每个步骤进行截图保存证明。如果发现不符合预期的页面,就判断任务失败,并且报警。这个也是很适合APP类任务进行监控以及回归测试。这套操作利用quartz,能够实现定时执行,使连接了电脑的设备在夜间也能自动化运行,曾经帮助某APP在晚上11点发现了服务器挂掉的线上问题。
以上是我的浅见,欢迎各位在下方评论区给我交流点赞。
我是苏苏思量,来自BAT的Java开发工程师,每日分享科技类见闻,欢迎关注我,与我共同进步。
回答于 2019-09-11 08:43:50
一 、了解自动化测试金字塔
在自动化测试落地之前,首先就需要了解自动化测试金字塔。
最下层是单元测试,单元测试是自动化测试策略稳固的根基,因此也是金字塔结构的最底层;最上层是用户界面,通常用户界面是脆弱的,测试和修改的经济成本和时间成本较高;中间服务层是为了过渡用户界面和程序单元而设计的,认为所有应用程序都由各种服务组成,服务是指实现某一具体功能的程序集合,服务通过对输入进行响应而体现。
当然,不同项目的金字塔可能会有所区别,但都大同小异。
二、 分层实现
在了解了自动化测试金字塔之后,我们就需要进行分层实现。
单元测试的实现
单元测试是对软件中最小的测试单元进行验证,在这一层上发现问题时解决成本最低,测试用例的维护成本也不高,具有很好的投入产出比。
一般情况下,需要开发人员在开发的过程中来写单元测试。那么,就需要提前跟团队沟通好单元测试的覆盖率、为开发团队提供用例,并定期回顾这些开发人员写的单元测试。
接口测试的实现
1.功能测试
在写功能测试的过程中,我们可能会和一些其他的模块或第三方API有依赖,在这种情况下,通常可以通过Mock的方法去解决。
2. 性能测试
在功能大致完成后,就要开始做API的性能测试。性能测试在这里的作用主要是获取API现有的性能指标,形成一个对比的基线。在便于进行后期的优化的同时也有可以帮助发现一些潜在的bug。
UI测试的实现
UI层面的自动化影响大、变化多、可维护成本高,所占比例也最少。所以,UI测试的实现应该是一些从高层次上验证,确保核心功能的可用。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |