了解最新技术文章
1. 我们团队的测试自动化目标是什么?
这个问题的答案构成了之后做出的所有决定的基础。统一的指导目标(北极星)将为您的团队在开展如此重要的项目时提供所需的方向。这个目标还形成了如何定义成功的指标——在流程的这一点上,您应该决定要量化测量什么,以确保您的自动化策略正在帮助您的团队实现这一目标。
2. 我们将如何实施测试自动化?
实施和维护自动化不仅仅是一项副任务。不同的团队和技能组通常负责成功的自动化套件中的许多移动部件,并且您可能需要从当前测试阵容之外引入人才。首先决定人才分配,然后根据他们的专业知识以及系统的需求选择工具和技术。
3. 我们的执行策略是什么?
您的执行策略应该回答您预计团队可能会提出的有关自动化程序日常运行的所有问题。这包括以下问题:
• 您想什么时候运行自动化脚本?
• 我们在什么级别上运行这些测试?组件、集成、端到端?
• 我们在哪里运行它们——我们有足够的环境吗?
• 我们在哪里运行这些测试?即,在什么级别、在什么环境下?
• 他们应该多久跑一次?
• 谁将运行它们——或者您希望在签入任何新代码时自动触发?
根据您对这些问题的回答,您可能需要查看已有(或需要)的持续集成 (CI) 系统,以及运行自动化脚本所需的任何其他设置或插件。
4. 谁来重点维护?
不幸的是,自动化并不是“一劳永逸”。除了根据需要添加和删除测试之外,您的自动化程序还需要一致的测试脚本维护和故障排除。敏捷团队中的每个人都应该感受到对自动化工作的所有权,并有权维护和改进它,但是,我们还建议在您的团队中定义一个测试自动化冠军,以密切关注您的自动化工作,并向其他人员提出警报和担忧团队。
5. 我们将如何报告测试自动化?
返回第一步。还记得我们如何要求您定义团队的目标以及您将如何衡量实现目标的进度吗?现在,是时候开发必要的系统和流程了,以便按照对团队的软件开发生命周期 (SDLC) 有意义的设定时间间隔可靠地、定量地报告这些目标。
一旦您开始从自动化工作中获取指标和结果,您应该了解自动化如何融入您的整体测试策略。重要的是选择允许您在一个地方监督、测量和报告手动和自动测试的工具,并构建您的报告流程,以便手动和自动测试都可以包含在测试覆盖率和可追溯性报告中。
按时跟踪和报告也很重要:自动化测试的执行速度有多快?是否有机会改进自动化测试运行以提高时间效率?我们将在下面的“哪些测试应该自动化”章节中更多地关注这一点。
“一切自动化”并不是答案
如果你只是“自动化一切”,那么你就不会进行任何评估。实施测试自动化策略时,您可能会觉得节省了时间和资源,但最终会得到一堆没有明确目的或目标的自动化测试。自动化测试仍然存在资源成本——人类开发人员需要维护和排除这些测试的故障,并且运行它们和存储结果会产生时间和服务器成本。
此外,并不是每个测试都适合自动化。自动化最适合测试预期用户行为的“快乐路径”,但它无法复制意外的用户行为来发现边缘情况。没有任何测试方法比人类测试人员更能执行奇怪的人类行为——通过从测试程序中完全消除人为因素,您自己和您的应用程序将面临更多风险。
自动化不是一天建成的
即使有最周密的计划,完美的自动化程序也不会在一夜之间出现。构建自动化策略的第一步应该是让它“足够好”,启动并设定现实的目标,以便随着时间的推移进行改进和增加。
您一开始可以进行的最有价值的投资是自动化基础设施。如果您知道您的基础设施是可靠的,那么当出现故障时,您将能够专门针对该故障进行磨练,而不必检查整个自动化程序。