你试过吃带壳的坚果吗?如果是,我想这不是一次非常成功的经历。 虽然大家都知道坚果是非常健康和有营养的。矛盾的是,许多公司在实施测试自动化时没有考虑细微差别。每个人都知道它对身体有好处(就像吃坚果对我们健康有益一样!)。但是,如果您不遵循某些方法,您可能会失去自动化的一些好处。为了避免这种情况,我们收集了 10个测试自动化的最佳实践。
实践1:手动和自动测试结合
所有事情都是适度才好。包括自动化。许多测试只能手动执行,并且出于多种原因将它们自动化是没有意义的。首先,脚本不能总是模拟人类行为和人类反应。其次,如果测试计划只运行一次,那么为它编写自动化脚本是没有意义的。
同时,有些测试非常适合自动化,这里有一个列表:
- 需要重复操作的测试;
- 涉及大量数据的测试;
- 人为错误的可能性很高的测试;
- 在不同版本的浏览器、操作系统、硬件、固件以及以上所有内容的组合上运行的测试;
- 涵盖常用功能的测试。
实践2:特别注意回归测试
回归测试是在添加新功能后执行的测试。这些测试旨在检查现有功能是否正常工作。回归测试是重复的,因此可以方便地自动化它们并一遍又一遍地运行它们。经验丰富的 QA自动化工程师建议添加回归测试套件冒烟测试、健全性测试和测试用例,以在以前的测试周期中发现缺陷。
实践3:包括端到端测试
端到端 (E2E) 测试可确保应用程序的行为符合要求并正确处理各种用户任务。 这种类型的测试基于最终用户的视角,并模拟他们在现实条件下与应用程序的交互。 当您自动化关键用户旅程、快速发现错误并立即修复它们时,E2E 测试可加快发布时间。
实践4:为自动化测试提供集体所有权
集体所有权产生集体责任。您可以避免一个人负责创建脚本、运行测试和维护它们的情况。所描述的场景会减慢团队的工作速度,并且不允许您快速更改代码。 此外,当所有自动化都与一个团队成员相关时,如果一个人生病或突然离开公司,所有流程都将完全暂停的风险很高。
任何特定组织中测试自动化的成功取决于 QA 团队的工作情况。 当它的每个成员都知道项目测试的当前阶段时,他们就会为这个过程做出贡献。 此外,共享测试脚本允许最合格的 QA 工程师与其他同事分享他们的知识和技能。 此外,自动化测试的集体工作确保了测试过程是透明的,并且所有利益相关者都知道它的状态。
实践5:详细计划与测试相关的所有流程
成功的自动化是不可能没有策略的,任何策略的核心都是计划。计划在每个开发阶段将运行哪些测试以及运行多少次。计划不仅要修复失败的测试,还要修复失败的根本原因。计划回顾会议,让团队了解所犯错误的本质,并在未来防止它们发生。
实践6:选择适合您需求的自动化工具
自动化测试管理工具直接影响整个自动化过程的质量。QA 团队在工作中使用的工具集包括用于编写测试脚本、运行测试、准备报告、分析、跟踪和修复错误的软件,以及用于团队沟通的工具。所有这些都应该很好地相互集成,并且进展顺利,不会在过程中引入混乱。就组织整个测试过程而言,最方便的选择是测试自动化管理平台。最受欢迎的平台包括 Katalon、LambdaTest、Perfecto、Zebrunner 等。
实践7:通过比较预期结果与实际结果来跟踪自动化进度
不要忘记为预期结果设置指标:您计划自动化哪些类型的测试,您计划花费多少时间编写脚本、运行测试、修复错误和重新测试,以及您期望的测试覆盖率是什么,您分配给自动化的时间,以及大概的预算。 经过几次版本迭代后,将预期结果与真实结果进行比较并分析差异。 这将使您了解您的自动化工作在哪些方面是有效的,以及您在哪些方面尚未达到预期结果。在项目的下一阶段,调整您的测试策略以实现最大效率。
实践8:在仿真器、模拟器和真实设备之间保持平衡
移动和桌面应用程序可以在真实和虚拟设备上进行测试。两种方法都有其优点和缺点。
在虚拟设备上进行测试的优点是它是免费的,所有公司都可以使用,并且也适用于功能测试。 至于缺点,最重要的是无法模拟实时数据。 您将无法通过虚拟设备测试应用程序将如何受到电池电量低、网络质量差、GPS 以及与各种传感器和小部件交互的影响。
在真实设备上测试解决了这个问题:您可以在最终用户拥有的设备上测试您的产品并及时修复所有错误。 真机测试的缺点是成本高。 您需要购买所有必要的设备,然后定期花钱进行维护或在特殊设备场租用设备。 后一种选择更具可持续性,因为它允许您只为使用特定设备的时间付费,而无需考虑维护它的成本。
我们建议在虚拟和真实设备上测试应用程序。这确保了最大化的产品质量和一个合理的项目预算。
实践9:从软件开发的早期周期运行测试
越早开始测试,就越早发现关键错误,并且需要更多时间有效地消除它们。 在每个新的 sprint 中,您都要测试新功能及其与整个应用程序的交互,注意用户界面的可用性并消除应用程序中所有可能出现的问题。 早期测试的另一个好处是越早发现错误,就越容易修复。 最终,这将节省项目时间和金钱。
实践10:使所有测试保持最新
通过自动化,您可以达到尽可能高的测试覆盖率。 然而,不稳定和过时的测试将这种优势降低到零。弱测试会给出漏报和误报结果,增加分析和消除错误的时间,并导致发布有缺陷的应用程序。 过时的测试用例不涵盖新功能,因此会遗漏错误,这也严重影响了产品的质量。经验丰富的 QA 工程师建议首先从回归包中删除不稳定的测试用例。其次,您需要计划运行测试用例的过程,并确保套件中的每个测试都是最新的。
资源分享
下面这份资源,对于想学习【软件测试】的朋友来说应该是最全面最完整的备战仓库,希望也能帮助到你!