了解初级测试人员从测试自动化开始需要什么?

news2024/11/18 5:31:16

文章目录

前言

将测试自动化视为软件开发

选择一种编程语言开始

学习干净的代码实践和原则

了解自动化中有用的设计模式

学习干净的代码实践和原则

学习网络工作原理的基础知识

选择一个 UI 自动化工具开始

了解 HTTP 协议以及如何自动化 API 测试

熟悉数据库基础知识

选择一个测试管理工具以便于报告

始终牢记测试的手动方面

结论


前言

        软件发布变得比以往任何时候都快。他们正在添加新功能,更快地响应缺陷,尤其是在生产中发现的缺陷,还有什么不是!这导致对自动化测试人员的需求大幅增加,“手动”和“自动化”测试人员之间存在巨大的薪酬差距。此外,自动化测试通过重复测试(例如回归测试)帮助公司节省时间。

  如果您不熟悉软件测试或没有机会学习测试自动化,那么本文适合您。因此,事不宜迟,让我们看看我们需要学习什么才能开始使用测试自动化!

将测试自动化视为软件开发

  测试自动化应该被视为软件开发的一个组成部分,这意味着它意味着编程知识。这个想法主要是通过敏捷方法推广的,例如 XP(极限编程)。自动化测试不仅涉及单元和集成级别的自动化测试(主要由开发人员完成),还涉及 API 和 UI 自动化。还有其他思想流派,例如全团队质量方法和现代测试原则,它们规定每个人都应该以自己的权利参与测试。软件开发知识对测试自动化有很大帮助,因为(除了编码)自动化中使用了许多技能,就像在“常规”功能开发中一样——比如使用版本控制、创建构建、使用数据库、API、CI/CD 管道、和更多。

选择一种编程语言开始

  如果你刚开始学习如何编码,你可能会想从一种语言跳到另一种语言——因为趋势在不断变化。然而,要擅长编程,需要像解决问题的人一样思考,而不是记住特定的语法。因此,您应该在开始时选择一种语言并坚持很长时间,直到您变得非常熟悉为止。在处理 C 系列的高级语言时尤其如此。这是因为这些语言共享许多相似的概念并且具有语法相似性。因此,当您不再是最初开始使用的语言(假设是 Java)的初学者时,学习另一种语言将非常简单——只需习惯语法差异——就像了解一种语言的新方言你已经说得很好了!

学习干净的代码实践和原则

  有些人试图学习太多特定的工具、框架和库,给自己带来了太多的负担,即使这不是他们的工作所必需的,因为他们认为这是让自己在不断变化的就业市场中保持相关性的唯一方法. 这可能非常耗费精力和要求;相反,您应该专注于学习和应用广泛适用和普遍适用于许多情况的实践和原则。

所以,你可以做什么:

  1、保持自动化代码简单——始终牢记您编写的代码最有可能被其他人使用;尽量保持简单易读,并尽可能避免过度设计。编写易于重构和更改的代码。

  2、确保使用有意义的命名约定——自动化测试的名称应该清楚。其他人应该很明显通过阅读名称来破译它的作用。变量和函数名称是显而易见的。为此,请使用 DAMP(描述性和有意义的短语)原则。

  3、明智地使用评论——评论可能会有所帮助,但在评论显而易见的事情时,这样的评论只会增加噪音和混乱。此外,评论需要更新和维护,所以除非需要,否则不要为自己创造额外的工作。相反,请在您认为有必要进行额外解释的地方发表评论——例如,您正在测试一个具有许多令人困惑的集成的复杂企业系统。此外,您的测试人员是项目的新手,并且不具备所需的领域知识。

  4、SRP——尽可能在测试中使用单一职责原则。这将使调试失败的测试更容易,并简化处理误报/否定。此外,确保每个类、函数等只做一件事——这将使您的自动化代码更易于维护和重构。

  5、不断重构是一个永无止境的过程;随着你知识的提高,你会注意到你的代码可以改进的地方。此外,技术的变化将需要代码重构,因此将重构视为您职业生涯中的一个常数。

 

了解自动化中有用的设计模式

  设计模式是有益的,因为它们提供了许多好处:它们是构建代码的绝佳方式,它们是众所周知的,因此您的代码将被其他人阅读,等等。

  测试自动化中最著名的方法之一是 POM(页面对象模型),这是一种主要用于 UI 自动化的 OOP 方法,您网站上的页面对应于代码中的一个对象——通常是一个类。

  接下来,我们有工厂原则,它涉及一个超类和许多子类。当您事先不知道需要创建什么类型的对象时,它最有用。其他常用的有Facade模式、Singleton和Fluent接口。

学习干净的代码实践和原则

  我发现 Robert C. Martin(也被称为 Uncle Bob)已经很好地总结了这些。他是当今 IT 领域最有经验的人之一,他的影响力是巨大的。

学习网络工作原理的基础知识

  在这里,我们需要对 Web 技术、HTML、CSS 和 JavaScript 有一些基础知识。我们还应该对 Web 浏览器的工作原理有一个基本的了解。例如,需要了解当他们输入 URL 并在浏览器中按 Enter 时会发生什么。发生这种情况时发送的请求是什么,它们是什么意思?什么是 DNS,它如何适应这个过程?什么是 IP 地址?什么是 HTTP 协议,为什么在我们执行 API 测试时它是必不可少的?此外,还应该通过熟悉 XML 和 JSON 等最常见的格式来了解数据是如何传输的。最后,了解服务器端和客户端之间的区别以及数据如何存储在数据库中——无论是关系数据库(基于表,如 SQL)还是基于文档的非关系数据库,如 MongoDB。

选择一个 UI 自动化工具开始

  如果您刚刚开始,那么今天可用的工具数量之多可能会让人不知所措——我们有这么多选择既是福也是祸!但是,如果我们积极地看待它,坚持使用一种工具有其优势。当您学得好时,您将了解具有相似目的的其他工具在功能方面必须具有哪些功能以及某种工具的常见缺点。这种元知识以后将使学习新工具变得更加容易,并且花费更少的时间和精力!

  使用 UI 工具时,请考虑它的易用性、支持、是否有活跃的社区、良好的教程、对该特定工具的市场需求等。您经常会注意到,学习一个 UI 工具可能更明智“陈旧而乏味”的工具——采用率高且值得信赖,而不是尚未广泛使用的新热门工具。例如,Selenium 被广泛使用(它的优点和缺点),有据可查,并且有大量的在线教程。尽管如此,Playwright 和 Cypress(比 Selenium 更容易设置,适用于简单的网站,但在处理重定向、iframe 和更改选项卡时存在问题)似乎更有吸引力,但没有广泛使用——尽管它们的采用正在稳步增长——因为尤其是赛普拉斯,因为它在剧作家之前问世。

了解 HTTP 协议以及如何自动化 API 测试

  超文本传输协议 (HTTP) 是用于传输超媒体文档(例如 HTML)的应用层协议。它被设计用于浏览器和服务器之间的通信,但它也有其他用途。作为测试人员,您需要了解其基础知识,例如 HTTP 方法(GET、POST、DELETE、PUT 等)、标头、请求和响应以及最常见的状态码。然后,学习使用浏览器中的开发人员工具(网络选项卡)来深入了解正在发送和接收的 HTTP 请求。最后,学习一些 HTTP 客户端工具,例如 Postman,理想情况下是 HTTP 客户端库,例如来自 Apache 的客户端库或诸如 Rest-Assured 之类的工具。

  API 测试将使您作为测试人员的生活更轻松,因为它比 UI 自动化具有许多优势,例如更早的测试(您可以在 UI 可用之前测试业务逻辑)。此外,API 测试更快更容易开发和维护;即使在自动化 UI 时,API 测试的知识也会使您受益。

  假设您有一个要求用户登录的 UI。执行该测试的前提条件是用户首先登录以进行身份验证并授权访问所请求的资源。由于 UI 测试比低级测试花费更多时间,因此通过登录表单登录用户是不必要的浪费时间。相反,您可以发出 HTTP 请求以获取用户的令牌并继续测试。这样,您将获得相同的结果,但速度要快得多。

熟悉数据库基础知识

  学习 SQL(或一些非关系数据库)的基础知识,以便在测试中使用 CRUD(创建、读取、更新、删除)。这将使您能够在自动化中使用数据驱动的方法,即从数据库中获取测试数据,在数据库中存储一些记录(如果测试需要),通过自动化测试更改一些数据,等等。能够访问有效的测试数据并能够使用它,在进行可靠的测试方面发挥着重要作用,因为许多错误都是与数据相关的。

选择一个测试管理工具以便于报告

  一个好的测试管理工具甚至可以帮助自动化测试。选择此类工具时,请确保其 API 与报告工具集成。一些最流行的测试管理工具是——TestRail、Xray、Zephyr 等。另一件要考虑的事情是与其他工具的集成——例如,当你运行测试时,你能否获得生成的报告(关于通过、失败和跳过测试)通过 Slack、Teams 等通过电子邮件或发送给您。

始终牢记测试的手动方面

  自动化和手动测试齐头并进。为了有效地进行自动化,您还需要成为一名优秀的探索性测试人员,他知道如何深入挖掘您正在测试的系统,以确定在风险覆盖方面作为自动化候选者最有利的场景,并识别是否有回报在自动化它们时进行投资,是值得的。此外,在自动化测试之前,您需要熟悉被测系统以提高您的领域知识。与领域专家进行配对测试在这方面也有很大帮助。

 

结论

  开始自动化可能看起来很可怕和令人生畏,但不要感到紧张并试图一次学习所有东西,你应该分割你的学习并一次攻击一个主题。保持一致、好奇,并始终尝试应用您从阅读博客、查看文档和观看教程中学到的知识。

  不要只是复制您所看到的并执行相同的步骤;试着给它你的扭曲;而不是自动化课程讲师正在使用的同一网站,而是尝试不同的网站。当然,这会让你的事情变得更难一些,但这是一个很好的迹象,表明你在困难的时候正在学习。

  慢慢来,保持一致,并有长期目标。在 6-12 个月的专注学习中,您可以精通自动化。在那之后,你被聘为初级职位、谈判更好的加薪或获得更高薪水的工作就足够了。

  最后,不要被测试自动化吓倒;它不会让你自动化你的工作。如果发生故障并且您会立即收到通知,自动化可以用作绊线或警报。这比从客户那里听到缺陷要好得多。此外,自动化将节省您的一些时间(在最初的开发和设置工作之后)。通过将重复性任务自动化,您将有更多时间用于测试人类创造力意义重大的其他方面。祝您的自动化之旅好运!

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

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

相关文章

React 配置文件(三)配置本地IP地址和端口号

1.在环境变量中配置好对应IP地址和端口号,拿UAT来举例 2.在config-overrides.js中配置域名和端口号 3.在package.json中配置好启动脚本 "scripts": { "start": "react-app-rewired start", "uat": "dotenv -e .env.uat react-app…

Android之蚂蚁森林能量水滴效果

最近公司有个需求,需要一个类似于蚂蚁森林能量水滴浮动效果,所以有了这篇文章,目前在项目里,没时间提出来做demo,有代码欠缺的地方欢迎指出,一定补上。 文章目录一:效果图二:具体实现…

HotPDF Delphi PDF VCL完全形成PDF文档

HotPDF Delphi PDF VCL完全形成PDF文档 HotPDF Delphi PDF,用于创建和创建PDF文档的应用程序名称。您的公司已在您之前发布,以便在Delphi和C中使用。事实上,使用这个库,您将能够以不同的方式编辑、执行、构建和管理PDF文档。如果您…

configmap中data变成字符串问题(k8s踩坑)

发现问题 编写text文件,用于创建要给nginx的configmap,如下: [rootmaster redis]# vim txt apiVersion: v1 kind: ConfigMap metadata:name: nginx-confignamespace: redis data:nginx.conf: |#user nginx;worker_processes 1;#error_log…

【pandas】教程:4-显示数据

Pandas 显示数据 本节使用的数据为 data/air_quality_no2.csv,链接为 pandas案例和教程所使用的数据-机器学习文档类资源-CSDN文库 import pandas as pd import matplotlib.pyplot as pltair_quality pd.read_csv("data/air_quality_no2.csv", index_co…

知物由学 | SO VMP 加壳与混淆,为移动应用提供函数级保护

导读:VMP 是一种用于软件保护的软件,对软件进行加壳,加固厂商都有自己的 VMP 方案,但值得注意的是,native 层的 VMP 方案并不成熟,兼容性只是其中一个影响因素,性能更是导致该方案无法普及的重要…

2022年广西最新建筑八大员(材料员)模拟真题及答案

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

C++仍然是2023年值得学习的好语言吗?

如今所有学习C的人都不得不面临一个问题,即C已经大大失去了它受欢迎程度。它同时被三种编程语言所取代 - python,Java和JavaScript。这就引出了一个问题,2023年是否还值得学习C? 如果您学习C是为了在IT领域工作,那么学…

系分 - 软件工程

个人总结,仅供参考,欢迎加好友一起讨论 系分 - 软件工程 考点摘要 信息/软件系统的生命周期(★★)软件开发方法(★★★)软件开发模型(★★★★)逆向工程(★&#xff09…

一步一步改写Observer观察者模式

简单的概述: Observer模式是建立一个一(Subject)对多(Observer)的依赖关系,并且做到当“一”变化的时候,依赖这个“一”的多也能够同步自动改变。 Observer的结构: Subject相当于…

H5 拖动排序 美食排行榜

尝试写一下拖动元素进行排序,真是想到什么去写什么 😂,有的时候很多人老是跟我说,别人都封装好了,你为什么还要自己去实现一下,写的还没别人好。但我总感觉所有都用别人写好的,就放弃思考的机会…

linux的CPU使用率达到100%的快速定位方式

一.问题现象 Linux服务器(操作系统版本是centos7.9)上面部署了若干Java站点服务,突然收到运维的CPU异常g告警,到了影响业务的情况发生,经初步排查,未出现异常进程,排除挖矿病毒的原因。 二.排查思路 &am…

[Verilog]Verilog经典电路设计(一)

Verilog经典电路设计&#xff08;一&#xff09; 1.1 8位移位寄存器 module shifter (din , clk, clr, dout) ; input din, clk, clr; output [7:0] dout; reg [7:0] dout_data;always (posedge clk) begin if (!clr) dout_data < 8b0; //同步清 &#xff0c;高电平…

第二证券|美国巨头向欧盟宣战,暴跌25%,芯片大国告急

“暴利税”完全激怒美国动力巨子。 3万亿美国巨子直接将欧盟告上法庭&#xff0c;当地时间12月28日&#xff0c;埃克森美孚公司正式申述欧盟&#xff0c;要求其撤销对石油集团征收的一项新“暴利税”。该公司表明&#xff0c;欧盟方面征收“暴利税”的行为超出了法律权限。别的…

蓝牙学习八(配对与绑定)

1.简介 Paring&#xff08;配对&#xff09;和Bonding&#xff08;绑定&#xff09;是实现蓝牙射频通信安全的一种机制&#xff0c;有两点需要注意&#xff1a; Paring/bonding实现的是蓝牙链路层的安全&#xff0c;对应用层来说是完全透明的。也就是说&#xff0c;不管有没有…

GitHub入门指南(下)

三、新手必备的GitHub基本操作 1.配置SSH Key (1) 第一次使用时&#xff0c;要配置一下账户。 在 Git Bash 客户端&#xff0c;输入&#xff1a; git config --global user.name “这里输入你在GitHub的账户名” git config --global user.email “这里输入你在GitHub的注册邮…

基于51单片机的数字电压表(PCF8591)(Proteus仿真+程序)

编号&#xff1a;32 基于51单片机的数字电压表&#xff08;PCF8591&#xff09; 功能描述&#xff1a; 本设计由51单片机最小系统PCF8591模块四路模拟量输入模块一路DA输出液晶1602显示模块 1、主控制器是89C82单片机。 2、PCF8591模数转换器进行A/D转换&#xff0c;读取四路…

Java中常见的文件操作

作者&#xff1a;~小明学编程 文章专栏&#xff1a;JavaEE 格言&#xff1a;热爱编程的&#xff0c;终将被编程所厚爱。 目录 操作文件 File类 属性 构造方法 常见方法 重要方法的操作演示 文件内容的读写 FileInputStream OutputStream 按照字符读入 按照字符写入…

『分分钟玩转VueRouter●中』少开一把王者荣耀掌握VueRouter的基本使用

文章目录一、编程式路由导航二、缓存路由组件三、两个新的声明周期钩子四、路由守卫五、路由器的两种工作模式本篇博客会介绍Vue中的VueRouter的基本使用&#xff0c;编程式路由导航增加了我们进行路由跳转的灵活性&#xff0c;缓存路由组件保障了我们使用路由时的便捷性&#…

【高阶数据结构】搜索二叉树 经典习题讲解

&#x1f308;欢迎来到数据结构专栏~~搜索二叉树 (꒪ꇴ꒪(꒪ꇴ꒪ )&#x1f423;,我是Scort目前状态&#xff1a;大三非科班啃C中&#x1f30d;博客主页&#xff1a;张小姐的猫~江湖背景快上车&#x1f698;&#xff0c;握好方向盘跟我有一起打天下嘞&#xff01;送给自己的一句…