从功能测试到自动化测试,待遇翻倍,我整理的超有用工作经验分享~

news2024/12/28 19:54:51

我想应该有很多测试人员应该有这样的疑虑,自动化测试要怎么去做,现在我把自己的一些学习经验分享给大家,希望对你们有帮助,有说的不好的地方,还请多多指教!

对于测试人员来说,不管进行功能测试还是自动化测试还是性能测试都是需要编写测试用例,所以我们必须先要了解清楚手工测试用例与自动化测试用例的一些特点,才能更好地开展自动化测试工作。

01、手工测试和自动化测试用例

手工测试用例是针对功能测试人员的,而自动化测试用例是针对自动化测试用例框架或工具的。

1)手工测试用例特点

较好的异常处理能力,能通过人为的逻辑判断校验当前步骤是否正确实现;

人工执行用例具有一定步骤跳跃性;

人工测试步步跟踪,能够细致定位问题;

主要用来发现功能缺陷;

2)自动化测试用例特点

执行对象是脚本,任何一个盘算都需要编码定义;

用例步骤之间关联性强;

主要用来保证产品主体功能正确和完整,让测试人员从繁琐重复的工作中解脱出来;

目前自动化测试阶段定位在冒烟测试和回归测试。

(注意:通过对比发现,自动化测试不能完全替代手工测试,自动化测试的目的仅仅在于让测试人员从繁琐重复的测试流程中解脱出来,把更多的时间和精力放在更有价值的测试中,例如探索性测试。)

3)自动化测试用例注意事项

①不是所有手工测试用例都要转为自动化测试用例;

②考虑到脚本开发成本,不要选择流程太复杂的用例,如果有必要,可以考虑把流程拆分成多个用例来实现脚本;

③选择的用例最好可以构建场景。例如,一个功能模块,分成多个用例,多个用例使用同一个场景,这样的好处在于方便构建关键字测试模型;

④选择用例可以带有目的性。例如,这部分用例作冒烟测试等,当然,会存在重叠关系,如果当前用例不满足需求,那么唯有修改用例来适应脚本和需求;

⑤选取的用例可以是主体流程,这部分用于冒烟测试(如果不了解专业术语,下来要花费功夫哦);

⑥选取的测试用例可以是你认为重复执行,很猥琐的部分。例如字段验证、提示信息验证之类,这部分适用于回归测试;

⑦自动化测试也可以用来做配置检查、数据库检查。这些可能超过了手工用例,但也算用例拓展的一部分,项目负责人可以有选择地增加;

⑧平时在手工测试时,如果需要构造一些复杂的数据或重复一些简单的机械式动作,则告诉脚本,让它来帮你,或许你的效率会因此提高。

02、自动化测试类型

1)测试静态内容

静态内容测试是最简单的测试,用于验证静态的、不变的ui元素的存在性,例如:

①每个页面都有预期的页面标题,这可以用来验证链接指向一个预期页面;

②应用程序的主页包含一个应该在页面顶部的图片;

③网站的每个页面是否包含一个页脚区域来显示公司的联系方式、隐私政策以及商标信息等;

④每一页的标题文本都使用标签吗?每个页面是否都有正确的头部文本;

你可能需要(也可能不需要)对页面内容进行自动化测试。如果你的网页是不易受到影响的,则手工对内容进行测试就足够了。假设你的应用文件的位置移动了,则内容测试就非常有价值。

2)测试链接

web站点的一个常见错误为失效的链接或链接指向无效页。链接测试涉及各个链接和验证预期的页面是否存在。如果静态链接不经常更改,则手动测试就足够了。但是,如果你的网页设计师经常修改链接或者文件不时被重定向,则链接测试应该实现自动化。

3)功能测试

在你的应用程序中,需要测试应用的特定功能,需要一些类型的用户输入,并返回某种类型的结果,通常一个功能测试涉及多个页面,一个基于表单的输入页面,其中包含若干输入字段,提交和取消操作,以及一个或多个响应页面。用户输入可以通过文本输入域、复选框、下拉列表,或任何其他浏览器所支持输入。

功能测试通常是需要自动化测试的 最复杂的测试类型,但通常也是最重要的。典型的测试是登录,注册网站账户用户账户操作、账户设置变化、复杂的数据检索操作等等。功能测试通常对应着你的应用程序的描述应用特性或设计的使用场景。

4)测试动态元素

通常网页元素都有唯一的标识符,用于唯一的定位该网页的元素。通常情况下,唯一标识符用html标记的id属性或name属性来实现。

5)Ajax的测试

Ajax是一种支持以及动态改变用户界面元素的技术。页面元素可以动态更改,但不需要浏览器重新载入页面,如动画,RSS源、其他实时数据更新等。

Ajax有无数更新网页上元素的放大,最简单的方式是在Ajax驱动的应用程序中,数据可以从应用服务器检索,然后显示在页面上,而不需要重新加载整个页面,只有一小部分的页面,或者只有元素本身重新被加载。

03、自动化测试用例编写原则

最后,跟大家分享一下自动化测试用例编写原则:

①一个用例为一个完整的场景,从用户登录系统到 最终退出并关闭浏览器

②一个用例只验证一个功能点,不要试图在用户登录系统后把所有功能都验证一遍;

③尽可能少地编写逆向逻辑用例。一方面因为逆向逻辑的用力很多(例如,手机号输错有几十种情况),另一个方面自动化脚本本身比较脆弱,复杂的逆向逻辑用例实现起来比较麻烦且容易出错。

④用例与用例之间尽量避免产生依赖。

⑤一条用例完成测试之后需要对测试场景进行还原,以免影响其他用例的执行。

04、写在最后

以上就是我的一些经验分享,作为测试员,只有不断地提升自我技术能力才能让我们在长久的职业生涯中提高自身价值,也是升值加薪的重要依仗


绵薄之力

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走

​这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/75753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从股票市场选择配对的股票:理论联系实际

我们有了计算距离的方法,即共同因子相关系数的绝对值就是衡量协整性的一个好方法。现在看一些实际应用中会遇到的问题。 整合的特定回报的平稳性(Stationarity of Integration Specific Returns) 两个时间序列协整的必要条件是整合的特定回报时序是平稳…

k8s安装3节点集群Fate v1.7.2

采用k8s,而非minikube, 在3个centos系统的节点上安装fate集群。 集群配置信息 3节点配置信息如下图: 当时kubefate最新版是1.9.0,依赖的k8s和ingress-ngnix版本如下: Recommended version of dependent software: Kubernetes:…

Java编码的坑你知多少?

货币计算坑: 这段代码你认为结果是多少? 我们期望的结果是0.4,也应该是这个数字,但是打印出来的却是0.40000000000000036,这是为什么呢? 这是因为在计算机中浮点数有可能(注意是可能&#xff0…

Flask从入门到放弃(介绍、模版语法案例、配置文件、路由本质、CBV整体流程)

文章目录一、Flask介绍二、Flask快速使用三、Flask展示用户信息案例四、Flask配置文件五、路由系统1)路由系统2)路由本质3)Add_url_rule的参数六、Flask的CBV1)CBV的写法2)CBV添加装饰器3)as_view的执行流程…

排名前十的仓库管理系统大盘点(真实测评)!

通过本篇文章,您将了解以下问题:1、国内适合企业的仓库管理系统软件有哪些,排名怎么样?2、企业在选择仓库管理系统时应考虑哪些因素? 目前市场上有多种仓库管理系统,不同的仓库管理系统由于目标市场的不同…

dumi 如何使用?一文教你使用,高效写出你的博客、组件库文档

文章目录一、dumi介绍二、使用 dumi 的两种方式(着重在已成型项目中使用dumi)2.1、基于 dumi 官网带有的脚手架去进行开发2.2、在已成型的项目中引用 dumi 插件,运行项目2.3、dumi中使用scss2.4、如何在组件内写 tsx | md 文档2.4.1、button/…

DataX 二次开发支持 Oracle 更新数据

文章目录1、原理2、源码修改2.1 OracleWriter注释对writeMode的限制2.2 WriterUtil,增加oracle逻辑2.3 CommonRdbmsWriter.Task修改2.4 测试前文回顾: 《DataX 及 DataX-Web 安装使用详解》 《DataX 源码调试及打包》 《DataX-Web 源码调试及打包》 目前…

2022年四川建筑八大员(土建施工员)考试试题及答案

百分百题库提供建筑八大员(土建)考试试题、建筑八大员(土建)考试预测题、建筑八大员(土建)考试真题、建筑八大员(土建)证考试题库等,提供在线做题刷题,在线模拟考试&…

RabbitMQ基础概念

文章目录RabbitMQ介绍AMQPErlang架构模型PublisherConnectionChannelVirtual HostExchangeBindingConsumerRabbitMQ介绍 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Er…

Qt-数据库开发-事务提交(3)

Qt-数据库开发-通过QSqlTableModel显示和修改数据,开启事务 文章目录Qt-数据库开发-通过QSqlTableModel显示和修改数据,开启事务1、概述2、实现效果3、主要代码4、完整源代码更多精彩内容👉个人内容分类汇总 👈👉数据库…

毕设选题推荐基于python的django框架的疫苗预约接种管理系统

💖🔥作者主页:计算机毕设老哥🔥 💖 精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻 Java实战项目专栏 Python实…

新型网络接入控制技术

1.NAC技术 1.1简介 网络接入控制(Network Access Control,简称NAC)是由思科(Cisco)主导的产业级协同研究成果,NAC可以协助保证每一个终端在进入网络前均符合网络安全策略。NAC技术可以提供保证端点设备在接入网络前完全遵循本地网络内需要的安全策略&a…

list容器模拟实现

📋 个人简介 💖 作者简介:大家好,我是菀枯😜 🎉 支持我:点赞👍收藏⭐️留言📝 💬格言:不要在低谷沉沦自己,不要在高峰上放弃努力&am…

布局福建市场,维也纳酒店欧暇·地中海酒店能否为投资人带来信心与底气?

近日,锦江酒店(中国区)“一城一海,暇享好时光”——欧暇地中海漳州长泰凯悦广场店开业典礼隆重举办。 与此同时,锦江酒店(中国区)维也纳酒店&欧暇地中海酒店品牌厦门推介会也圆满落地。在本…

Able2Extract Professional识别引擎经过微调

Able2Extract Professional识别引擎经过微调 改进的表格检测-现在,您可以在自定义PDF到Microsoft Excel转换过程中更准确地确定类似表格结构和内容的位置。 改进了表与列标题的分离-表识别引擎经过改进,可以检测和识别具有单个标题的多列表。 改进的PDF文…

echarts map地图中绘制浙江省市区县乡镇多级联动边界下钻的最新geojson数据文件获取和更新

文章目录ECharts Map地图的显示GeoJSON数据文件获取在ECharts中绘制浙江省的数据ECharts Map地图的显示 ECharts支持地理坐标显示,专门提供了一个geo组件,在setOption中提供option.geo配置即可显示地图。 option.geo配置中有个map属性,取值…

HBase中的Compaction详解

Compaction的作用 由于memstore每次刷写都会生成一个新的HFile,且同一个字段的不同版本(timestamp)和不同类型(Put/Delete)有可能会分布在不同的 HFile 中,因此查询时需要遍历所有的 HFile。为了减少 HFile…

PHPMYADMIN 无法编辑 MYSQL 解决方法

本想通过镜像重新把老站点搭建起来拷贝点文章内容,登录后台时发现忘记了密码,想着通过 PHPMyAdmin 修改 Mysql 数据库内容是非常简答的,万万没想到如下图提示错误:#1030 Get error -1 from storage engine,当时就想到可能因 InnoDB 引擎问题导致,查看在 Mysql 的 my.cnf …

C#学习记录——Windows计算器的制作【实例】

参考《C#从入门到项目实践》边学习,边练习实现。 Windows计算器的制作 此次练习的计算器应用软件在Visual Studio 2019编程环境中开发,是一个简单的窗体应用程序,实现简单的计算器功能。 1、系统功能描述 Windows计算器是利用C#程序设计编…

InputStreamReader构造函数的四种方式实现

InputStreamReader类的构造函数 InputStreamReader(InputStream in) //创建InputStreamReader对象,构造方法中传递输入流,使用默认字符集InputStreamReader(InputStream in, String charsetName) //创建InputStreamReader对象,构造方法中传递…