简介
除了测试,测试数据创建、需求跟踪和测试报告等任务也可自动化。
随着迭代,可自动化的内容越来越多:
什么应该被自动化?
与人工测试相比,具备明显收益
·如果失败会对业务造成相当大的损失的业务功能或用户流;自动化测试有助于经常验证这些功能。
· 需要针对应用程序的每个构建或发布版本运行的测试,如烟雾测试、正常性测试和回归测试。
· 需要针对多种配置运行的测试,如不同平台和浏览器的组合。
· 涉及大量测试数据集或输入大量数据的测试,例如填写很长的表格,因为测试自动化有助于实现扩大覆盖范围,减少工作量和提高可靠性。
· 报告,自动化测试报告减少了人工干预,并产生频繁和最新的报告。
· 提供即时效益的功能和测试案例,例如DevOps中的烟雾和回归测试,以检查部署的构建是否稳定。
· 需要通宵投入的测试,如批处理和报告。
· 重复性的动作,如为每个迭代创建测试数据。
· 重复性的测试,如常见的测试或多个测试的先决条件。
· 用不同的数据组、多个浏览器、环境、复杂的商业逻辑、计算、不同的用户组、特殊的数据、关于合规性相关的事项,如万维网联盟(W3C)标准和安全测试,执行的测试。
· 高风险的测试案例和基于高人为错误危险可能性的测试案例。
· 具有大量测试数据集和各种排列组合的广泛测试。
· 非功能测试,如性能测试、负载测试、浸泡测试和压力测试。
· 耗时且难以人工完成的测试。
· 大型需求集的可追溯性矩阵,因为每次测试运行后更新可追溯性矩阵是很麻烦的。
什么不应该被自动化?
测试自动化通常提供高回报和高收益。然而,不是所有的测试和 SUT 都适合测试自动化。在决定什么不适合自动化时,应考虑以下因素。
· 只能手动完成或应该手动完成的测试用例,例如用户体验和可用性测试。
· 低价值和低优先级的测试,因为它们不能提供足够的回报。
· 只运行一次的测试;有大量输入的数据驱动的测试是例外。
· 涉及高额额外许可费用的测试,如特殊报告。
· 需要频繁的用户干预的测试。
· 需要根据领域知识或专业知识进行临时或随机测试的测试,如探索性测试。
· 经常变化的功能和结果,因为它们很难自动化和验证预期结果与实际结果。
· 没有可预测结果的测试,如科学模拟。
· 需要即时视觉或人工确认的测试结果,例如复杂的颜色和验证码。
· 需要高度自动化和低回报的测试,如用户界面测试。
作者:佚名