本文概述
在继续本教程之前, 让我们首先了解与应用程序自动化测试相关的一些关键概念。
随着对高效软件产品的需求不断增长, 每个软件开发团队都需要进行一系列测试, 然后才能将最终产品投放市场。测试工程师努力在发布软件产品之前发现错误或错误, 但交付的软件始终存在缺陷。即使采用最佳的手动测试流程, 最终软件产品也始终存在缺陷或无法满足最终用户要求。自动化测试是提高软件测试的有效性, 效率和覆盖范围的最佳方法。
自动化测试
自动化测试使用专用工具来自动执行手动设计的测试用例, 而无需任何人工干预。自动化测试工具可以访问测试数据, 控制测试的执行并将实际结果与预期结果进行比较。因此, 生成了被测系统的详细测试报告。
自动化测试涵盖了对应用程序的功能和性能测试。
- 功能自动化用于功能测试用例的自动化。例如, 本质上是重复的回归测试是自动化的。
- 性能自动化用于自动化非功能性能测试用例。例如, 在相当大的负载(例如100个用户)下测量应用程序的响应时间。
用于功能自动化的自动化测试工具:
- HP提供的Quick Test Professional。
- IBM提供的Rational Robot。
- 编码的UI, 由Microsoft提供。
- Selenium, 开源。
- Auto It, 开源。
用于非功能性自动化的自动化测试工具:
- HP提供的Load Runner。
- JMeter, 由Apache提供。
- Burp Suite, 由PortSwigger提供。
- Acunetix, 由Acunetix提供。
自动化测试生命周期
为什么要进行自动化测试
自动化测试具有特定优势, 可以提高任何软件的长期效率。测试自动化的主要好处是:
- 长期以来, 自动化测试一直被认为对大型软件组织有利。虽然, 对于小型公司而言, 通常认为它过于昂贵或难以实施。
- 可以对自动化测试工具进行编程, 以在特定时间构建和执行测试脚本, 而无需任何人工干预, 例如, 自动化测试可以在一夜之间自动启动, 测试人员可以在第二天早晨分析自动化结果。
- 自动化的测试工具能够播放预先记录和预定义的动作。
- 自动化测试支持频繁的回归测试。
- 它向开发人员提供快速反馈。
- 它提供了无限的测试用例执行迭代。
- 它提供了严格的测试用例文档。
- 自动化测试生成定制的缺陷报告。
- 与手动测试相比, 出错率更低。
Web应用程序的测试自动化
如果我们看一下当前市场情况下流行的软件应用程序类型, 则大多数软件应用程序都将编写为基于Web的应用程序, 以在Internet浏览器中运行。在公司和组织之间, 基于Web的应用程序的测试策略差异很大。在一个高度交互和响应快速的软件过程时代, 许多组织都在使用某种形式的敏捷方法, 测试自动化经常成为软件项目的要求。
对Web应用程序执行测试自动化的最有效方法是采用金字塔测试策略。此金字塔测试策略包括三个不同级别的自动化测试。单元测试代表了该测试自动化金字塔的基础和最大百分比。接下来是服务层或API测试。最后, GUI测试位于顶部。金字塔看起来像这样: