测试自动化工程师的基本技能
测试自动化工程师通过利用适当的工具或技术技能,与项目团队密切联系,准备、执行和报告产品和服务的专业测试。在其领域内有经验的测试自动化工程师能够利用工具或脚本技能来管理、设计、开发、执行和报告自动化测试。
根据ISTQB词汇表(https://glossary.istqb.org/app/en/search/),测试自动化工程师是 "负责设计、实施和维护测试自动化架构,以及由此产生的测试自动化解决方案的技术演进的人"。
测试自动化工程师具备开发和测试技能:
- 测试技能
- 需求知识
- 手动测试
- IT技能
- 对SUT的了解
- 解决问题的能力
- 测试自动化工具方面的专业知识
- 对软件开发过程和方法的了解
- 文档技能
- 对最新的测试自动化趋势的了解
- 报告技能
- 决策能力
测试技能
以下测试技能和知识领域是优秀测试自动化工程师的先决条件。
- 了解项目架构的能力,如概要设计、低层设计和网络架构
- 在项目、测试生命周期和测试过程中的经验
- 熟悉发布、变更和配置管理
- 具备开发方法的专业知识,如瀑布、敏捷、DevOps和CD
- 具有管理信息报告、沟通和利益相关者管理方面的知识
- 有能力制定自动化测试策略、计划和方法
- 功能性、非功能性和手动测试的专业知识
- 估算、记录和报告技能
- 有缺陷报告和跟踪的经验
测试自动化工程师所需的技术技能。
- 擅长使用专业工具,例如Selenium, requests等用于功能测试自动化,Locust或JMeter用于性能测试。
- 分析功能或非功能需求,必要时与利益相关者和业务分析师联系,对这些需求进行扩展。
- 根据需要创建自动测试脚本和场景,以测试功能或非功能需求。
- 执行技术测试,分析和展示结果。
- 诊断测试中发现的问题。
- 安装技术测试工具,进行工具使用的概念验证工作,配置测试环境。
- 理解解决方案或系统架构的主要组成部分。
- 能够确定技术测试在SDLC中的位置。
- 有编码或脚本语言的经验。
- 制作技术测试计划(如自动化或性能测试)和技术测试退出报告。
- 创建自动化测试框架并指导其团队使用该框架。
- 能够有条不紊地和创造性地处理技术测试挑战。
- 充当经验不足的测试自动化工程师的导师或教练。
- 报告进展情况并升级问题。
- 至少有一种创建和加载大量测试数据的方法的经验。
- 进行同行评审。
- 应用敏捷技术。
- 持有 ISTQB 高级测试自动化工程师或 ISTQB 高级技术测试分析师和特定工具的认证。
业务和需求知识
了解业务需求的好处:
- 识别测试自动化的业务关键场景。
- 理解解决方案以开发有效的自动化测试。
- 识别正确的测试自动化框架。
- 设计可扩展的自动化套件。
手动测试技能
- 识别手动和自动测试
- 识别回归测试的场景
- 选择高投资回报率测试
- 分离耗时的测试,如数据驱动或多浏览器的测试
- 更好地理解手动和自动测试
- 手动干预以解释自动化测试结果
技术技能
- 熟练掌握编程语言,Python是自动化测试使用最多的语言,也是目前多数变成语言排名中第一的语言,强烈建议掌握。除了python,掌握c/c++,go,java等编译语言也有帮助,下图中排名前8的可以视为主流语言,前4的为核心语言。
- 从数据库中检索特定信息的SQL语言
- 良好的编码技能
- 对自动化测试脚本的良好理解
- 精通测试自动化框架
- 对自动化工具有详细的了解
- 调试技能
- 对平台的了解,如内部部署、云和混合平台
- 环境经验,如开发、测试和生产
- 对IT基础设施的了解
- 有工具安装和配置的经验
- 阅读和理解SUT架构的能力
- 有自动化框架架构的经验
- 具有PoT和PoC方面的专业知识
对被测系统的了解
- 功能和非功能的要求
- 开发SUT的编程语言
- SUT架构
- 使用的接口、网络服务和API
- 应用程序的功能和特点
- 数据库
- 当前SUT的测试流程
- 发布环境
- 应用程序的复杂性
- 领域和部门
- 法规,如《网络内容可及性指南》(WCAG)和《健康保险可及性和责任法案》(HIPAA)。
- 合规性,如针对浏览器、操作系统、移动和网络的合规性
解决问题和决策能力
- 问题定义
- 调查问题的原因
- 确定解决方案
- 对解决方案进行优先排序
- 选择一个解决方案
- 实施选定的解决方案
这需要
- 积极倾听和分析
- 研究和调查
- 创造性
- 积极的态度和能力
- 沟通
决策是编码、测试管理和系统设计的重要部分。这是所有级别的测试自动化专业人员应具备的基本技能。决策是以算法或启发的方式进行的。算法是一套精确的规则和条件,永远不会改变,而启发式是一套规则,可能会随着时间的推移而改变条件。
初级水平
- 什么是5位数的最大素数?你是如何得出这个答案的?
- 覆盖整个地球所需的最少卫星数量是多少,为什么?解释你的理由。
高级水平
- 请举例说明你在项目中遇到的问题以及你是如何解决的。
- 你会如何管理一个不满意的经理、利益相关者或客户?
测试自动化工程师需要良好的问题解决和决策能力以及技术知识才能取得成功。在自动化测试设计阶段,测试自动化工程师会遇到一些场景,以创建涵盖许多可能结果的脚本,包括积极的、备用的和错误处理的场景。在开发更好、更有效的自动化测试脚本以处理实时场景方面,良好的问题解决能力是一个优势。
测试自动化工具的知识
测试自动化工程师被要求熟练使用自动化工具和基础编程语言。在实践中,大多数项目和组织都会选择业内广泛使用的工具和框架,测试自动化工程师被期望熟悉它们。
大多数工作描述都明确要求具备这些测试工具的专业知识,因为它们有活跃的社区支持,并提供即时的结果。定制的(根据客户要求定制的)测试自动化工具和框架提供了许多好处和优势。掌握这些工具的专业知识可以减少自动化工作,提高进行PoC的能力。对自动化工具的事先了解避免了已知平台的PoC,并提供了即时的回报。
在目前的环境中,公司和利益相关者期望快速的投资回报率以及快速和高质量的交付成果,而自动化工具的专业知识是满足这些利益相关者期望的一个额外优势。作为一名熟练的测试自动化工程师,在领先的/流行的自动化测试工具方面具有深入的技术知识和经验是必须的。测试自动化工程师还需要对工具的设置和基础设施要求提出建议,如硬件、许可、安装和配置。
软件开发过程和方法的知识
瀑布、DevOps和敏捷的工作方式不同,缺乏这些过程的经验会影响到交付自动化测试的能力。对开发过程的良好了解会增强测试自动化工程师的职业生涯,而认证Scrum Master或认证产品负责人等证书会提供额外的优势。
测试自动化工程师还需要具备测试不同阶段的专业知识,如测试计划、设计、执行、缺陷管理和报告。自动化测试遵循与软件开发相似的生命周期:规划、设计、执行、维护和结束。
文档、交流和报告技能
文档和报告是任何测试自动化工程师的两个关键技能。自动化测试策略、计划和方法是自动化测试中涉及的基本文件。好的文件可以向利益相关者传达明确的信息。自动化的资金和批准往往受制于良好的、清晰的文件,糟糕的文件影响决策过程。
另一个关键文件是测试报告,其中大部分是可以自动化的。自动化的测试执行报告很容易管理,因为它们被安排自动创建和分发,不需要任何人工干预。
文档在很大程度上被许多开发和测试项目所忽视。然而,记录良好的自动化测试为PoC、维护和错误修复的决策增加了价值。测试自动化工程师是测试脚本的开发者,他们的代码必须被记录下来,并在同行评审中进行评论,以支持团队协作。
良好的沟通和协作是一个测试自动化工程师的基本技能。这对测试自动化工程师和其他团队成员之间的团队联系很重要。具有有效沟通的测试报告对于建立与利益相关者的信任至关重要。请参考第1章中的利益相关者管理。
对测试自动化最新趋势的了解
自动化测试在不断发展,从 "记录和回放 "到先进的自动化套件,从简单的工具到高度复杂的框架,从手动测试到无代码脚本。供应商的眼光超越了当前的市场,为未来的需求发布自动化工具。测试自动化工程师会走在趋势的前面,并更新自己,以便站在最新的发展上。最佳实践、标准、指南、自动化测试框架、工具和脚本开发流程都在不断发展。测试自动化正在迅速向人工智能、ML和机器人发展,了解最新的趋势、工具、产品等非常重要。最新的趋势提供了了解不断变化的挑战并采取相应行动的机会。
技术的变化很快,要跟上技术的发展是很有挑战性的。专业机构,如敏捷联盟、计算机工程师和技术员协会以及BCS组织活动,以创造对新兴趋势的认识和讨论。此外,知名从业者的书籍、观点和文章是很好的信息来源。知名出版物和在线网站,如LinkedIn,定期发布最新趋势。技术社区与IT会议一起是最新趋势的良好来源。工具供应商积极与自动化测试从业人员联系,以评估新的工具,给他们一个绝好的机会来亲身体验即将到来的工具功能。
要流利阅读英文资料,摒弃使用百度的陋习。
辉煌你的职业生涯
- 测试的基本原理。建立优秀的测试和测试自动化的基础知识是非常重要的。
- 测试认证,例如ISTQB。认证有助于系统地建立基础和高级知识。它通常被认为是测试自动化工作的先决条件,也是建立成功职业生涯的基础。51testing、泽林,北大青鸟之类的培训经验尽量不要写到简历上,带坏了方向。
- 与测试自动化相关的网站 - 有很多专门的自动化网站可以学习。
- 书籍 - 另一个很好的知识来源。
- 参加研讨会 - 这有助于建立有关测试自动化的各种产品和服务的知识。测试会议是与其他测试自动化专家交流并发现最新趋势的好地方。
- 测试策略和计划 - 计划是任何测试自动化的关键,测试自动化工程师和中小企业应在测试自动化计划方面有良好的经验。
- 测试自动化和自动化测试的基础知识。以下领域是测试自动化的关键。
- 获得自动化认证
- 学习编程语言
- 建立编码技能
- 了解测试自动化框架
- 测试脚本的静态审查和代码审查
- 修改现有的脚本
- 使用沙盒来练习自动化
- 开发框架
- 寻求有实际企业经验导师的指导
- 自动化的应用程序,包括登录
- 创建一个计划并与你的导师一起审查
- 创建一个简单的框架
- 开发异常处理和报告等功能
- 学习工具,如Selenium、Appium、requests和Locust
- 找工作。这也可以用来测试市场,测试你在市场上的价值。
- 创建一份简历。
- 获得一两个推荐
- 保持一个活跃的LinkedIn个人资料。
- 在招聘网站上注册。
- 参加面试和参加模拟面试。
- 加入你所在单位的面试小组;你总是可以从优秀的候选人身上学习。
- 在你的职业生涯中不断成长。
- 学习新的框架。
- 学习新的工具。
- 加入社区。
- 通过网络提升知名度。
网友评论