自动化测试软件(自动化测试软件指导书)
今天跟大家分享一下自动化测试软件(自动化测试软件指导书),以下是这个问题的总结,希望对你有帮助,让我们看一看。每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。我将分享一些最有趣的问题、公众的评论,当然还有 TSQA 2022 会议的主要亮点。
3 月,Abstracta 的高级领导者 Matías Fornara 和我有机会在Triangle Software Quality Association (TSQA) 2022 会议上发言。
TSQA 是一个由志愿者领导的非营利组织,致力于通过网络、培训和专业发展机会促进软件质量实践。TSQA 会议每年举行一次,来自世界各地的领导者齐聚一堂,分享测试和质量保证行业的前沿知识、新兴技术和趋势。
对于今年的在线会议,我们主持了一场关于如何创建和改进测试自动化策略和代码的讨论,分享了我们管理不同团队和项目的经验。在本文中,我们将分享一些来自公众的最有趣的问题和评论,当然,对于那些无法参加或想再次查看它们的人来说,会议的主要亮点。让我们潜入吧!
如何优化测试自动化策略和代码的质量1. 避免重复和返工
测试金字塔是自动化领域最著名的概念之一。这个金字塔代表了不同类型的测试层,并作为有效分配测试工作和建立良好测试套件的指南。然而,人们经常忽略这些层中的每一层都需要不同类型的测试,并且跨不同级别重复测试会对自动化工作的 ROI 产生巨大的不利影响。
虽然测试人员有时可能会觉得拥有更多的测试更安全,但事实是编写、运行和维护这些测试会占用大量资源。保持代码简洁是节省时间和优化测试的关键,所以不要犹豫,消除所有那些对你的自动化策略没有贡献的冗余测试。
2. 区分 UI 测试和端到端测试
尽管一些自动化测试金字塔将 UI 测试作为其顶层,而另一些则将端到端测试作为其顶层,但这两个概念根本不能互换;事实上,它们是完全不同类型的测试。虽然 UI 测试测试用户界面,但它们不一定需要以端到端的方式执行,例如,通过使用模拟。另一方面,端到端需要测试系统的每一层,包括用户界面。
虽然端到端测试和 UI 测试之间确实存在一定的重叠,但这两种方法最终具有不同的目的并导致不同的结果。
3. 为您的项目选择合适的工具
开源工具通常可以免费获得,因为无需支付许可或订阅费用。然而,这并不意味着他们来没有成本。正如 Katya Aronov 在本期 Quality Sense 播客中提到的那样,“如果考虑到所有隐含的成本,开源工具并不是免费的。” 与商业工具不同,开源工具不提供维护、测试基础设施或技术支持,从而将集成留在了测试人员手中。这会导致更高的学习曲线,需要经验丰富的测试人员和分配更多资源来准备框架和创建商业工具已有的功能。
这并不是说开源工具不是一个好的选择,而是强调了解您的项目需求、目标和资源是为您的测试策略找到合适工具的关键。
4. 像对待生产代码一样对待你的测试代码
测试是软件开发生命周期的一个重要方面,因此,必须像对待生产代码一样认真对待测试代码。即使测试代码没有被推送到生产环境,它仍然是一个重要的文档资源,并且需要尽可能地可维护和可读。正如 Angie Jones 在执行测试自动化代码审查指南中提到的那样,“测试代码用于确定功能代码的质量,因此谨慎开发非常重要。”
有许多实践可以帮助测试人员获得高质量的测试代码,但有一个关键不能被忽视:同行评审。这种做法有助于在早期阶段捕获错误并提高代码质量,但它也是团队学习过程的基本部分。同行评审允许高级测试人员教初级测试人员如何改进他们的代码,并鼓励协作和沟通的文化。
5. 使用静态代码分析工具分析您的代码
一个开源平台,执行自动审查以评估代码质量和安全性。使用这个或任何其他质量保证工具有助于通过检测漏洞、错误和代码重复等来优化测试代码的质量。它还通过提供持续的反馈来帮助测试人员提高他们的编码技能,但最重要的是,它使技术债务可见且易于遵循。
6. 将良好实践应用于低代码工具
在过去的几年里,低代码测试工具变得越来越流行,并且是测试自动化的一个重要方面。然而,尽管这些工具对于重复和耗时的测试任务非常有用,但它们并不能替代传统的测试实践,而是可以帮助团队优化测试策略的完美补充。
正如 Matias 和一些与会者在演讲中评论的那样,在使用低代码工具时要记住的最重要的事情是,为了有效地使用它们,应用与任何其他工具相同的良好实践至关重要。其他工具。低代码并不意味着我们必须在测试中投入更少的精力;这是分析我们的代码库的一种不同且有时不太复杂的方法。
7. 建立协作团队
您可以使用许多策略来改善协作,但如果您的团队不掌握内部沟通,它们都不会成功。在产品所有者、测试人员和开发人员之间实现流畅的沟通可以让团队清楚地了解自动化团队执行的任务类型,并避免可能导致团队成员误解和沮丧的错误期望。此外,当团队有效沟通时,他们可以就自动化什么、哪些工具最适合每个项目以及如何分配测试资源做出更好的决策。
将协作放在首位也将确保在整个测试过程中应用良好的实践。例如,保持有条理和一致的文档将鼓励沟通、团队合作以及对如何执行测试活动的共同理解。
8. 增加与 BDD 的团队沟通
行为驱动开发是一种高度协作的开发策略,它允许团队的业务和技术成员以自然语言(如 Gherkin)创建测试用例。然而,这种通用语言本身不会有效,除非它与该方法的另一个主要元素相结合:三个朋友原则。该原则侧重于结合产品所有者、测试人员和开发人员的专业知识,以制定明确的项目范围,消除假设或错误期望,并从客户和业务的角度创建明确的指导方针。
归根结底,三人会议成功的关键是各方作为一个团队一起工作,为项目贡献他们的个人专业知识。如果其中一方不合作,那么弥合业务、开发和测试之间的差距将成为一项艰巨的任务,会影响团队的整体生产力和软件的质量。
9. 在你的团队中包括不同的资历级别
促进多元化团队一直是 Abstracta 的首要任务。我们在团队中培养各种背景和经验的众多方法之一是雇用具有不同经验水平的人。创造一个包容的环境,让经验丰富的测试人员可以指导和培训初级专业人士,这不仅对我们自己的公司有利,而且对行业的未来也有利。
初级测试人员带来新鲜的视角和创造性的思维;高级测试人员将缺少的知识和专业知识添加到组合中。他们共同创造了软件行业不断向前发展所需的创新解决方案。
观众的一些问题什么是干、湿和湿?
在编写高质量的测试代码时,平衡简单性和复杂性是关键。您可以通过多种方式构建代码以找到完美的平衡,但策略的成功将完全取决于上下文和您实现的方法。
诸如 DRY(不要重复自己)、DAMP(描述性和有意义的短语)和 WET(所有内容都写两次)等编程原则是不同编码实践的示例,可以根据具体情况进行不同的应用。
尽管这三个概念乍一看似乎是矛盾的,但如果使用得当,它们实际上是相互平衡的,并代表了可维护性的不同方面。在正确的时间使用它们将使您能够在保持可维护性的同时不断优化代码。
DRY 通过确保代码重复不会过度发生来避免冗余。消除重复可确保系统的每条领域知识在代码中只有一个表示形式,并且单个元素的未来更改不会影响其他不相关或重复的元素。DAMP 通过减少理解代码所需的时间来提高代码的可读性。这个原则提倡减少不必要的抽象,即使这样做会重复一些代码。在这种做法下,不需要减少注释、描述性名称或变量。最好彻底解释代码的原因并使其易于遵循和理解。最后,还有 WET。这个缩写是指所有没有应用 DRY 原则,代码反而充满了不必要的代码重复和冗余的情况。不幸的是,大多数时候,WET 代码会增加错误,降低其可读性,并使未来的代码返工成为一项困难且耗时的任务。
我们在演讲中收到了很多关于这些原则的评论,有些人熟悉,有些人不熟悉。正如我们上面已经提到的,了解所有三个原则以了解何时以及如何应用它们来优化代码非常重要。
您如何确定哪些测试用例适合自动化?
自动化是软件测试的一个重要方面;然而,并非一切都可以或应该自动化。任何项目的第一步都是评估哪些类型的测试适合自动化;以下是一些常用标准的示例,可用于定义哪些测试最适合自动化:
耗时且复杂的测试
某些类型的测试需要在开发周期中经常重复,但由于它们的复杂性,手动运行它们可能既昂贵又耗时。例如,手动测试具有多个字段(例如复选框和字母数字字段)的表单可能是一项乏味的任务并导致错误。自动化这些测试允许测试人员快速提交无数的答案组合并减少错误幅度。
重复任务
有些测试很容易编写和执行,但它们需要执行很多次,以至于自动化成为强制性的。某些测试,例如登录测试,是自动化测试的完美类型,可以节省时间并确保软件性能可靠。例如,自动化您的登录测试用例允许您使用许多不同类型的帐户和用户信息进行测试,并确保登录过程在高负载下正常工作。
尽管这些规则可以应用于大多数项目,但每个软件都是独一无二的,并且具有可能需要不同的自动化方法的复杂性。充分了解项目的目标和需求是做出正确决策的关键。
您对实施测试预防有什么建议?
假设测试预防是指防止测试失败的方法,正如我们在本文前面提到的,防止缺陷和低质量代码的最佳方法之一是对代码库进行同行评审。这是一个清单,其中包含在执行同行评审时要问的一些最重要的问题,这将帮助您评估代码的质量并在流程的早期防止任何可能的错误:
质量门通常是非常有争议的。你如何让每个团队按照自己的节奏工作?
设置明确的质量门对于项目的成功非常重要,对于管理技术债务也是必不可少的。但是,每个团队都会以不同的方式朝着这些质量门努力;给予他们必要的自由这样做很重要。
对质量门采取“渐进式”方法是包括更改和调整的最佳方法之一。没有必要从一开始就抱有极高的期望或里程碑,尤其是在团队不处于成熟阶段的情况下。始终可以修改当前的质量门并对其进行改进。
对于依赖测试数据的自动化测试,您有什么建议?
许多工具使我们能够为我们的测试获得合适的数据。例如,Google Analytics 提供有关哪些页面需要更多测试覆盖率的信息,Test Data Manager提供数据屏蔽、子集化和创建合成数据。
为什么我们需要将手动测试与自动化分开?如果不同时结束“手动”测试,您就无法实现自动化
事实上,自动化测试不能与手动测试分开。这两种做法虽然完全不同,但需要彼此才能正常运作。然而,要创建一个量身定制的测试策略来解决项目的独特需求,有必要了解我们在测试团队中需要哪些技能和专业知识。建立高效的团队是为客户创造更大价值的最佳方式。
您是否包含任何方法来了解您的测试自动化所具有的覆盖范围?
一般来说,评估测试自动化覆盖率和测试策略的最佳方法之一是使用思维导图记录测试想法和覆盖率。与传统的文本文档不同,这些地图具有灵活且易于理解的结构,允许快速更改。它们是集思广益和跟踪测试活动的好方法。
由于它们类似图表的形状,识别和理解已探索的区域以及已执行的测试类型变得毫不费力。测试人员可以轻松地更新地图并报告他们已经覆盖了哪些区域以及他们不能覆盖哪些区域。思维导图对于其他团队成员(例如产品所有者和利益相关者)来说也是一个很好的工具,因为它可以让他们从开发的角度了解正在完成的工作,并从产品的角度分享他们的反馈。
如发现本站有涉嫌抄袭侵权/违法违规等内容,请<举报!一经查实,本站将立刻删除。