千家信息网

细分自动化测试

发表于:2024-10-03 作者:千家信息网编辑
千家信息网最后更新 2024年10月03日,资源推荐:视频资源: 软件测试相关系列视频社区资源: 自动化测试交流群背景介绍本章话题是"如何细分自动化测试?",关于自动化测试很多测试领域新人可能会有所疑惑,自动化测试没有明确的方向和概念,本文就常
千家信息网最后更新 2024年10月03日细分自动化测试

资源推荐:

视频资源: 软件测试相关系列视频

社区资源: 自动化测试交流群


背景介绍

本章话题是"如何细分自动化测试?",关于自动化测试很多测试领域新人可能会有所疑惑,自动化测试没有明确的方向和概念,本文就常见问题带领大家一起揭露软件自动化测试。

常见问题

1.我们需要做什么样的自动化测试?

2.系统是否适合怎样的自动化测试?

3.自动化测试该选择什么样的测试工具较为合适?

4.自动化测试覆盖程度应该如何?

。。。,还有很多类似的问题,我们就不一一列举了。

我们先概括列举下我们本篇文章讨论的内容,如下:

1.自动化测试分类。

2.what,why,when实施自动化测试。

3.常见自动化测试工具的适用范围。

自动化测试分类

按测试目的分类大致可划分为:功能自动化测试,性能自动化测试

按测试对象可以划分为:Web应用测试,APP测试,接口测试,单元测试等

功能自动化

测试目的是发现软件中实现功能是否符合用户需求规格,很多新人可能会片面的认为是针对用户界面功能是否满足需求的测试,其实不然,功能自动化的测试的入口点有很多,不要将思维局限于用户界面,而应该放眼于软件系统的各个组成部分,实践证明,基于系统UI的自动化测试只能发现软件中极少的缺陷,往往我们实施UI自动化测试的目的不是去发现软件系统中的缺陷,更多的是为了验证系统是否可以正常运行,这句对大家实施自动化测试工作尤为重要。

除了可以基于UI进行自动化测试,我们还可以基于网络服务接口提供者进行测试,比如Grpc服务,Webservice接口,Restfull等,基于接口进行功能测试较为常见,也是非常有效的手段。

另外还可以基于系统基础代码进行测试,比如单元测试,集成测试阶段,这一阶段的测试也称白盒测试,我们可以直接对DAOService服务进行测试,这里常用的测试技术包括Junit, TestNG, Mock, Stub等,关于mockstub很多测试朋友经常混淆两者的差别,限于篇幅和文章的准确性,这里不再过多解释mockstub的区别,大家可以参照 Mocks Aren't Stubs. 测试新同学需要注意的是,由于企业所应用的软件开发模型所限,本阶段的测试在实际工作场景中应用较少,更多的是有开发同学亲自完成。

性能自动化

性能自动化测试是通过测试工具模拟高并发负载进行压力测试,以发现软件系统在高负载情况下运行瓶颈,这里的系统瓶颈包含多部分,应用程序本身的性能瓶颈,网络瓶颈,服务器硬件资源瓶颈(CPU,MEM,DISK),数据存储服务器等,这一测试活动通常唯有借助自动化测试工具来完成,常见的性能测试工具包括,Loadrunner, Jmeter, Ngrinder, Gatling等,不管哪一款测试工具,基本有三大部分组成:测试脚本管理,测试场景配置,监控结果。

与功能自动化类似的是,性能测试工作对象也可以面向用户UI层,或者服务接口提供方,甚至可以直接面向底层基础业务逻辑层,绝大多数通过用户层进行性能测试模拟的是最接近真实用户场景的测试,也是性能测试必然实施的阶段,另外面向接口的性能测试也是发现系统性能瓶颈很有效的阶段,我们应当结合实际工作需求有选择性的开展。

3W原则

面对自动化测试种类繁多,我们在实施自动化测试之前需要做深入的调研工作,以免造成不必要的工作负担,或者造成工作得不到预期的效果,这也是测试团队成员非常关心的问题,为了能更有效的开展自动化测试,我们最好开展测试前认真解答如下几个问题。

what)我们需要实施什么样的自动化测试?

是基于功能还是性能为目的呢?不同目的性的自动化测试会直接影响我们后续开展的工作,比如测试介入时间,测试场景设计,人员、机器资源等。

另外值得注意的是,不是所有系统都适合功能自动化或者性能自动化,我们应该结合实际需求来选择,比如面对UI自动化测试,当系统前端频繁变动时,或者迭代周期有限的项目(外包测试中常见)时,就不适合开展UI自动化测试。

why)为什么需要自动化测试?

为了提升测试效率,节约人力,测试时间或者为了发现更多的软件缺陷等等,在这里还是要再次提醒大家一句,对于功能测试来说,软件的缺陷发现80%以上来自于手工测试工作,不要妄图通过UI自动化去代替手工测试,UI自动化测试更多的目的是验证软件系统可以按预期正常运行,而不是去发现软件系统的缺陷这里,性能测试比较特殊,无法通过人工方式测试或者说人工方式进行测试代价太大,自动化测试可以解决人工方式难以解决的问题。

when)什么时候开展自动化测试?

在前文已经提到,不管是功能还是性能自动化,我们测试面向的对象可以是用户层,服务接口提供者甚至是基础业务代码,大家都非常清楚缺陷越早的暴露,解决成本就越低,因此,根据实际工作需要,自动化测试工作也应当及早开展,比如性能测试,我们可以在基础业务代码功能测试通过后就进行性能测试,以发现代码级别造成的性能问题。

总结,基于3W原则,可以使我们的测试工作更加具有针对性,准确性,前期的工作可以使日后的工作开展更加顺利、高效。

常见自动化测试工具

业界有各种各样的测试工具,不同的测试工具适用范围存在很多差异,很多新人经常存在工具抉择上的问题,或者不清楚使用各种工具完成什么样的任务,比如有很多测试新人曾经向我提问:Loadrunner能做接口功能自动化吗?Selenium可以做性能测试吗?等,面对各种各样的问题,有时也很难回答,这些问题在某些时候可以是肯定的回答,但这些场景使用这样的工具不是你的最佳选择,这需要工具使用的经验慢慢积累体会,同时多向前辈们请教,学习。

下面简要的罗列下常见的测试,以及适合其最佳的测试工具。

性能测试工具:LoadrunnerJmeterNgrinderGatling,每款测试工具存在一定的差异及其局限性,可以参考相关文档详细了解。

功能测试工具: Selenium, QTP

APP自动化测试工具Appium, UI Automator, MonkeyRunner, Android UI测试推荐使用UI Automator, Android提供的自动化测试框架,基本上 支持所有的Android事件操作。IOS应用程序可以选择使用Appium

接口自动化测试工具JunitTestNG, OKhttp, HttpClientSpring Restful等,需要有一定的编码经验,当然也有现成的工具,比如 PostmanHttpRequesterSoapUI 等。

单元测试工具Junit, TestNG, EasyMock, Mockito, JMockit


点击链接加入群【悦分享测试联盟】:https://jq.qq.com/?_wv=1027&k=5DiePik


测试 自动化 工具 性能 测试工具 功能 系统 工作 软件 接口 问题 常见 用户 服务 瓶颈 目的 缺陷 场景 资源 软件系统 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库中排序默认为 办公系统软件开发定制费用 行业网络安全培训课程 H3C网络技术大赛初赛试题 汽车网络安全SHE 湛江旅游软件开发定制 微信小程序前后端数据库 奔爱 电影票房数据库 网络安全防范供应链风险 保护企业网络安全ppt 建帐套需要什么数据库 竖与横网络技术 软件开发注册商标多少类 厦门虚拟直播软件开发 用键值数据库构建货运订单 普陀区咨询软件开发要多少钱 手机账号服务器异常怎么解决 北京互联网网络技术服务口碑推荐 ibm服务器导轨安装 网络安全防护措施一般不包括 SCV数据库去哪sousuo 数据库查询速度跟字段多少 新炬网络技术是外包吗 建帐套需要什么数据库 南安普顿网络安全怎么样 嘉定区软件开发技术服务前景 信息系统 网络安全 浙大兰德网络技术有限公司 福建电信网络服务器虚拟主机 国家安全局管是管网络安全
0