沃卡惠移动端logo

沃卡惠  行业资讯

资讯详情

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

2023-04-10 10:11:254636

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

如果您是软件测试新手或者还没有机会学习测试自动化,那么本文适合您。因此,事不宜迟,让我们看看开始测试自动化需要学习什么!

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

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

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

选择一种编程语言开始

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

学习清洁代码实践和原则

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

所以,你可以做什么:

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

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

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

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

持续重构是一个永无止境的过程;随着知识的提高,您会注意到代码可以改进的地方。此外,技术变革将需要代码重构,因此请将重构作为您职业生涯中的常态。

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

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

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

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

学习清洁代码实践和原则

我发现Rober.C.Martin(也被称为Uncl.Bob)已经很好地总结了这些。他是当今IT领域最有经验的人之一,他的影响力是巨大的。查看GitHub上的Gist了解更多详情。有关更多详细信息,您可以阅读他关于此主题的书或参考下面的信息图:

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

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

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

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

使用UI工具时,请考虑它的易用性、支持、是否有活跃的社区、好的教程、该特定工具的市场需求等。无聊的”工具——它具有很高的采用率和良好的信任度,而不是尚未被广泛使用的新的热门工具。例如,Selenium被广泛使用(其优点和缺点)、文档齐全,并且拥有大量的在线教程。尽管如此,Playwright和Cypress(比Selenium更容易设置,适用于简单的网站,但在处理重定向、iframe和更改标签时会遇到问题)似乎更有吸引力,但使用并不那么广泛——尽管它们的采用正在稳步增长——因为特别是Cypress,因为它在Playwright之前问世。

Playwright是一个开源的跨浏览器自动化框架,无需第三方工具即可提供端到端测试。了解它是什么、如何安装它以及我们如何使用Playwright执行测试。

了解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个月的专门学习中,您可以精通自动化。在那之后,你被聘用为初级职位、谈判更好的加薪或找到一份薪水更高的工作就足够了。

最后,不要被测试自动化吓倒;它不会让你自动失业。自动化在那里充当绊线或警报,如果有什么东西坏了,你会立即得到通知。这比从客户那里听到缺陷要好得多。此外,自动化将释放您的一些时间(在最初的开发和设置工作之后)。通过自动执行重复性任务,您将有更多时间用于测试其他方面,而这些方面对人类的创造力意义重大。祝您在自动化之旅中好运!

Baidu
map