《自动化测试修炼宝典》-第一章节-测试自动化简介和目标
关键词
API测试,CLI测试,GUI测试,被测系统,测试自动化架构,测试自动化框架,测试自动化策略,测试自动化,测试脚本
引言和学习目标
1.1测试自动化的目的
解释测试自动化的目标,优点,缺点和局限性
1.2测试自动化中的成功因素
确定测试自动化项目的技术成功因素
1.1测试自动化的目的
在软件测试中,测试自动化(包括自动测试执行)是以下一个或多个任务:
•使用工具准备测试数据和环境等
•执行测试,主要功能
•将实际结果与预测结果进行比较
将测试用的软件与被测系统(SUT)本身分离开来,以最大限度地减少干扰。
也有例外,例如需要将测试软件部署到SUT的嵌入式系统。
测试自动化有助于在不同版本的SUT和/或环境下一致地重复运行许多测试用例。
但测试自动化不仅仅是运行测试套件而无需人工交互的一种机制。
它涉及设计测试软件的过程,包括:
•软件
•文档
•测试用例
•测试环境
•测试数据
测试软件对于测试活动是必要的,包括:
•实施自动化测试用例
•监控和控制自动测试的执行
•自动测试结果的记录,报告
测试自动化与SUT进行交互有不同的方法:
•通过公共接口测试SUT的类,模块或库(API测试)
•通过SUT的用户界面进行测试(例如,GUI测试或CLI测试)
•通过服务或协议进行测试
测试自动化的目标包括:
•提高测试效率
•提供更广泛的功能覆盖
•降低总测试成本
•执行测试手动测试不能做的事情
•缩短测试执行周期
•增加测试频率/减少测试周期所需的时间
测试自动化的优点包括:
•每个构建运行更多的测试扫描
•创建无法手动完成的测试(实时,远程,并行测试)的可能性
•测试可能更复杂
•测试运行速度更快
•测试较少受操作员的错误影响
•更有效和高效地使用测试资源
•有关软件质量的更快反馈
•提高系统可靠性(例如重复性,一致性)
•提高了测试的一致性
测试自动化的缺点包括:
•涉及附加费用
•初始投资设置TAS
•需要额外的技术
•团队需要具备开发和自动化技能
•持续TAS维护要求
•可能会分散测试目标,例如,以执行测试为代价的自动化测试案例
•测试可能变得更加复杂
•自动化可能会引入其他错误
测试自动化的局限性包括:
•并非所有手动测试都可以自动进行
•自动化只能检查机器可识别的结果
•自动化只能检查可以通过自动测试验证的实际结果
•不能替代探索性测试
1.2测试自动化中的成功因素
测试自动化的主要成功因素包括:
•良好的架构:
测试自动化架构与软件产品的架构非常接近,应该得到同样的重视。
应该明确架构应该支持哪些功能,特别是一些非业务功能需求。
像软件项目一样,在自动测试过程中并不是所有的需求都可以实现。
应该事先明确确定最重要的内容,并对其架构进行界定。
测试自动化架构(TAA)应设计用于可维护性,高效,可持续发展。
•被测试系统的可测试性:
在GUI测试的情况下,系统界面元素和业务逻辑尽可能相对独立,且尽可能使用统一标准界面控件。
在API测试的情况下,这可能意味着更多的类,模块或命令行界面需要公开暴露,以便它们可以被测试。
•被测试系统的元素定位难度:
通常,测试自动化成功的关键因素在于易于实现自动测试脚本的难度。
自动化测试工程师需要识别SUT的模块或组件,哪里好实现,就从哪里入手。
•良好的测试策略:
•可维护性和改进:
•一致性:从界面GUI和接口API,进行统一业务逻辑的测试,并检查结果的一致性。
•创建易于使用
记录良好且可维护的测试自动化框架(TAF)。为了实现这一点,必须做以下事情。
报告应提供关于SUT质量的信息(通过/失败/错误/不运行/中止等)。
•启用易于故障排除
除了测试执行和日志记录之外,TAF还提供了一种简单的方法来排除故障测试。
测试可能会失败:
在SUT中发现失败;
TAS中发现的故障;
测试本身或测试环境的问题。
•测试环境管理:
测试工具取决于测试环境的一致性。在自动测试中需要专门的测试环境。
如果没有测试环境和测试数据的控制,则测试的设置可能不符合测试执行的要求,并且可能会产生错误的执行结果。
•较小的自动化维护成本
理想情况下,应易于维护自动化测试用例,以便维护不会消耗大部分测试自动化工作。
此外,维护工作需要与SUT的更改规模成正比。为此,案例必须易于分析,可更改和扩展。
此外,自动化测试软件重用应该很高,以最小化需要更改的项目数量。
•保持自动化测试的最新状态:
当新的或变更的需求,导致测试或整个测试用例失败时,不要禁用失败的测试,而是应该修复它们。
•计划部署:
确保可以轻松部署,更改和重新部署测试脚本。
•删除不必要的代码:
确保自动测试脚本如果不再有用,则剔除他们。
•异常恢复:
实际上,为了连续运行测试用例或一组测试用例,必须连续监视SUT。
如果遇到致命错误(如崩溃),必须具有恢复能力,跳过当前情况,并在下一个情况下恢复测试。
自动化测试的道路是非常艰难的,能持续维护自动化测试,保持脚本的可正常运行是非常了不起的事情。
致远
2017.7.5
本文介绍了测试自动化的概念、目的及其实现过程中的优缺点。详细探讨了自动化测试的目标,包括提高效率、降低成本、增加功能覆盖等,并分析了其局限性。同时,文中还列举了成功的测试自动化项目所依赖的关键因素。
3649

被折叠的 条评论
为什么被折叠?



