当前位置: 首页 > news >正文

如何快速晋升自动化测试工程师,10年软测工程师分享的一些经验~

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

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

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

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

1)手工测试用例特点

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

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

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

主要用来发现功能缺陷;

2)自动化测试用例特点

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

用例步骤之间关联性强;

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

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

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

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

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

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

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

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

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

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

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

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

02、自动化测试类型

1)测试静态内容

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

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

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

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

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

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

2)测试链接

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

3)功能测试

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

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

4)测试动态元素

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

5)Ajax的测试

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

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

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

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

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

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

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

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

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


四、自动化测试资源

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

​这些资料,对于在从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

相关文章:

  • 基于k8s搭建部署Nexus服务
  • 处理机调度【操作系统学习笔记】
  • 开源SPL,WebService/Restful广泛应用于程序间通讯,如微服务、数据交换、公共或私有的数据服务等。
  • 炔基聚乙二醇巯基 Alkyne-PEG-SH 炔基PEG硫醇
  • 写作纠错?用机器学习实现单词拼写修正器(附Python代码)
  • 【DjangoDRF+缓存 五万字总结】预计在2022.11月份会再次进行更新
  • 猿创征文|实战开发openGauss DataStudio的sql联想结构
  • VMware创建Linux虚拟机之(三)Hadoop安装与配置及搭建集群
  • 在halcon中使用模板匹配助手进行定位真的很好用!!!
  • 青少年python系列 7.函数
  • python入门——m个位置,每个位置有n种可能,求所有排列结果
  • C | 妙用异或
  • 采用uni-app开发的多端圈子社区论坛系统
  • Java语言特点
  • 读书笔记1|深度学习入门:Machine Learning Yearning
  • 自己简单写的 事件订阅机制
  • 2017 前端面试准备 - 收藏集 - 掘金
  • canvas 高仿 Apple Watch 表盘
  • create-react-app项目添加less配置
  • JavaScript设计模式之工厂模式
  • Js基础——数据类型之Null和Undefined
  • JS基础之数据类型、对象、原型、原型链、继承
  • JS专题之继承
  • leetcode讲解--894. All Possible Full Binary Trees
  • LintCode 31. partitionArray 数组划分
  • php ci框架整合银盛支付
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • SegmentFault 2015 Top Rank
  • session共享问题解决方案
  • 翻译--Thinking in React
  • 开源SQL-on-Hadoop系统一览
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 微信小程序开发问题汇总
  • 小程序开发中的那些坑
  • 因为阿里,他们成了“杭漂”
  • 组复制官方翻译九、Group Replication Technical Details
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (16)Reactor的测试——响应式Spring的道法术器
  • (39)STM32——FLASH闪存
  • (4)Elastix图像配准:3D图像
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (排序详解之 堆排序)
  • (转)大型网站架构演变和知识体系
  • (转)关于pipe()的详细解析
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET与 java通用的3DES加密解密方法
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [20150629]简单的加密连接.txt