文本
作为一个测试自动化工程师,10个可行的技巧
要在任何事情上胜任都需要一致性、毅力和深思熟虑的练习,测试自动化也不例外——我们都知道这一点。作为一名测试自动化工程师,我们试图关注的主题和技能在这个领域中出类拔萃,这时就会产生混淆。然后,事实证明到处都是混乱 在软件行业,事情的变化和发展比以往任何时候都要快,当涉及到自动化时,不管是过程自动化还是测试自动化,框架和工具就像夏天的雨后春笋般涌现出来 那么,要想在测试自动化方面出类拔萃,您应该知道哪些工具? 下一步您应该探索哪些新的框架? 首先,学习市场上的每一个框架或工具几乎是不可能的。除此之外,你还需要知道不同的编程语言来使用它们。是的,你应该学习一些你需要的基于上下文的工具,或者那些对你有实际帮助的工具,并且充实你的自动化工具包,但是不要把你所有的努力都放在试图学习每一个工具上,从而成为一个有效和高效的测试自动化工程师。
几年来,我目睹了软件测试中自动化的逐步发展和所犯的错误,在这篇文章中,我将尝试为您提供一些可操作的技巧(没有特定的重要性顺序) ,这些技巧从长远来看将对您有益,并将帮助您在测试自动化工程师的职业生涯中脱颖而出 1)提高你的软件测试技能
让我们首先就一件事达成一致——“测试自动化有助于软件产品的测试”。当您写自动化检查或使用测试自动化工具来帮助您时,您必须对软件测试有很好的理解。您的测试知识将始终帮助您提出问题,评估您的在测应用程序,并识别相关的问题或风险。结合您的经验,它将为您提供帮助,让您知道什么时候/什么应该自动化,什么时候/什么不应该自动化。 如果你刚刚开始你的职业生涯,首先专注于学习测试的基础知识。如果您已经掌握了大量的基础知识,那么就开始探索软件测试的广阔领域吧。阅读、学习和探索故事、测试策略、风险管理技术、基于风险的测试、批判性思维、基准测试、预言、测试性分析、认知偏差、系统思维、启发式思维、记忆法、5-WHYs、 MBT、 FMEA、现代测试原则、报告等。拥有这些主题的广泛知识不仅会帮助你在职业生涯中大放异彩,而且会给你的思想和心态带来另一个维度,同时使用自动化来帮助评估产品。 2)在学习其他语言之前,先学好一门编程语言
测试自动化包括编码(包括脚本) ,并且尝试成为一个通晓多种语言的程序员是很好的。作为测试自动化工程师,我们应该根据上下文并保持竞争力,总是尝试使用不同的编程和脚本语言(命令式和声明式)。但这不应以牺牲质量和熟练程度为代价。 当我开始在 Test Automation 工作时,我正在用一种编程语言(Java)编写代码。很快我就感到了探索其他流行语言的冲动和兴奋。所以我开始学习 JavaScript 和 Python (尽管我并不熟悉 Java)。这导致了所谓的“学习疲劳”。不断地学习,适应,在新的语言之间切换,在很短的时间内,你会感到压力。语法、概念、特性、标准和库将开始让您感到困惑。 熟练掌握单一编程语言需要时间和不断的练习。大多数语言都有相同类型的“语法”(句法和语义)。所以,如果你精通(如果不是专家的话)单一编程知识,那么在适当的时候学习、探索和超越其他语言将会变得容易得多。
3)更加专注于学习核心工程基础知识 测试自动化是一种开发活动。如果你让我选择一个在我的测试自动化职业生涯中帮助我成长最多的技能(除了测试)——我会毫不犹豫地选择核心工程基本技能(实践和原则)。 这包括编程范例、重构和重写技术、干净的代码实践、设计原则、设计模式、原型和代码质量改进技术的知识。学习这些东西的困难之处在于,你通常不会在 mooc 或其他视频教程中找到它们。你必须阅读关于这些主题的书籍、文章和博客,并经常重读它们,参加研讨会。 4)理解你想要解决的问题和测试自动化的局限性 你是否花了足够的时间来理解你试图用自动化解决的问题?你从不同的角度分析这些问题吗? 目前有一种趋势,即在市场上使用最新的、流行的、闪亮的自动化工具来启动自动化,但实际上并不了解问题以及如何或为什么使用该工具来首先解决问题。大多数情况下,人们缺乏对大局和远景的认识。开始问这样的问题: 这个工具能提供足够的帮助来解决问题吗?它是否能够通过揭示应用程序中的相关问题和风险来交付价值?它是否有能力无缝地适应日益增长的自动化需求? 工具优先的思维模式总是占优先地位,但是它不会帮助项目,也不会在个人层面上对你的职业生涯有所帮助。我们必须磨练我们揭示问题和解决问题的技能,这包括一系列其他技能,如批判性思维、深度产品思考、研究和分析技能,以及我们的工具知识。这些都是你必须配备的工具。
5)通过协作渠道学会更好的合作 你可以勤奋而有才华,但如果你的协作技能很差,你几乎不可能在这个领域出类拔萃。现在大多数工作都是远程进行的,通过 Skype、 Slack、 Zoom 等渠道进行有效的协作,甚至通过源代码控制管理工具(如 Git)或项目管理工具(如 JIRA、 Trello)进行良好的沟通,都是至关重要的。否则,您将无法与您的团队或您的客户朝着一个共同的测试自动化目标工作。 以下是一些可以帮助你提高合作技巧的小贴士: 试着积极地阅读或倾听他人,理解他们想要表达的意思或者他们想要传达的信息 不要假设事情,总是问问题 试着更清楚、简短地交流,并且在你说或写东西的时候坚持要点 在合作过程中,尊重员工的多样性、背景、测试/自动化/编码专业水平,并始终尊重他们 6)养成阅读测试和编程博客/文章/书籍的习惯
大部分时间我都是自学成才,我的大部分知识都来自这些资源: Blogs/ Articles 博客/文章 Books (ebooks, audiobooks, and paperbacks) 书籍(电子书、有声读物和平装书) Free video tutorials and MOOCs 免费视频教程和 MOOCs Conference talks 会议讲座 Podcasts 播客 Websites 网站 GitHub SocialMedia (LinkedIn, Twitter) 社交媒体(LinkedIn,Twitter) Workshops 工作坊 Pairing sessions 结对会话 Code Reviews 代码审查 我从这些资源中获得的知识量是至关重要的。虽然初学者很难过滤掉相关的资源,但过滤工作会随着时间的推移而逐渐减轻。我建议你养成每天阅读或听不同作者/演讲者的某个话题的习惯。这将帮助你从不同的角度迅速获得知识和洞察力。不要仅仅局限于测试和编程。扩展你对 DevOps,物联网,Blockchain,人工智能/机器学习,云计算,虚拟化,集装箱化技术和其他正在逐渐塑造软件产业的技术的知识。同时,与社区分享你的学习、观点和想法,并帮助其他人。我们一起成长 7)学习 UI 层之外的自动化,培养一种自动化其他重复的辅助任务的思维模式 大多数测试工程师开始在 UI 层使用浏览器自动化工具(例如 Selenium WebDriver)学习自动化,很少有人进入 web 服务层自动化和移动 UI 自动化的领域。随着敏捷的逐步采用,服务层测试比 UI 测试更快、更可靠,并且需要更少的维护。 所以,如果你还没有开始学习 web 服务自动化。走出你的舒适区,探索移动测试、性能测试、基于桌面的应用程序测试、安全测试、大数据测试、数据库测试、可访问性测试、网络测试、本地化测试等等广阔的自动化世界,没有什么坏处。此外,除了自动化检查,开发一种自动化任何重复和平凡的事情的思维模式,它可以与数据生成、数据提取、环境设置/拆除、生成/导出/解析日志、调度、监控或报告相关。 8)务实地学习工具和技术 市场上有如此多的工具和技术可以提供测试中的价值,你必须在学习它们的过程中保持务实。开始探索和试验不同的浏览器自动化库、 web 服务自动化 api、单元测试框架、报表库、 CI 服务器、构建工具和包管理器、版本控制系统、可访问性测试库等。 选择那些填充你的上下文(可能有所不同)的。正如你所看到的,这个清单是无穷无尽的,我们的学习之旅也是如此。虽然我建议更深入地探索这些工具/技术,但有时候你必须务实,从表面层次上学习东西。为了学习,我的意见将是选择免费和开源的工具/技术,有大量的社区使用和良好的社区评论。如果您想探索一个具有社区驱动的可重用自动化特性、可伸缩并且可以使用 OpenSDKs 定制代码的系统,您可以查看免费的 TestProject 平台。 9)提高日志阅读和调试技巧 我再怎么强调都不为过,提高您的调试技能对于在测试自动化方面出类拔萃是多么重要。在你的工作中,你会遇到一些有限的问题。因此,为了遇到更多类型的问题并提高您的调试技能,我建议您在业余时间开始学习并开始解决其他工程师的自动化问题。我喜欢这样做! 获得调试技能需要不断的练习。有时候(相信我,会有很多次) ,你不能找到一个特定问题的解决方案,无论你付出多大的努力。还要知道如何有效地读取日志文件以及如何导航堆栈跟踪。由于测试自动化工程师花费了大量的工作时间来调试他们的代码,在测试自动化运行期间通过日志找出错误的原因,并进行分析,获得这些技能肯定会节省您的时间并使您更有效率。 10)创建自动化框架和小型应用程序作为副项目 在您的工作中,您可能使用有限的库和工具集处理单个框架。为了扩展您的知识,创建具有不同库和工具的框架作为副项目,并使用这些库和工具测试不同的应用程序。在创建和扩展这些框架时,始终遵循良好的编码实践和原则。 最后一个技巧可能会让很多人感到惊讶——开始创建作为副项目的应用程序。当您创建应用程序时,您需要研究并了解您正在使用的技术的许多情况。您将了解数据如何在应用程序之间移动,以何种格式移动,页面如何加载和显示,api 接收请求和发送响应,数据如何存储、更新和从数据库检索等等。此外,你的编程技能也会得到提高。
author
石头 磊哥 seven 随便叫
company
thoughtworks(离职了。。。。)
大家好,本人不才,目前依旧混迹于thoughtworks,做着一名看起来像全栈的QA,兴趣爱好前端,目前是thoughtworks 西安QA社区的leader,如果有兴趣分享话题,或者想加入tw,可以找我
roles
QA(营生) dev(front-end dev 兴趣爱好)
联系方式
如果想转载或者高薪挖我 请直接联系我 哈哈
wechat:
qileiwangnan
email:
qileilove@gmail.com