你肯定对自动化有些疑问
- 什么是自动化测试?
- 为什么要有自动化测试?
- 自动化测试有哪些分类?
- 它解决了什么问题?
- 什么系统适合自动化测试?
- 自动化测试中有哪些可用工具?
随着对高效软件产品的需求不断增长,每个软件开发团队都需要在将最终产品推向市场之前进行一系列测试。测试工程师在软件产品发布之前努力捕获故障或错误,但交付的软件总是存在缺陷。即使使用最佳的手动测试流程,最终的软件产品仍有可能存在缺陷或无法满足最终用户的要求。自动化测试是提高软件测试的有效性,效率和覆盖范围的最佳方法。
自动化测试使用专用工具自动执行手动设计的测试用例,无需任何人手为干预。自动化测试工具可以访问测试数据,控制测试的执行,并将实际结果与预期结果进行比较。 因此,生成被测系统的详细测试报告。
自动化测试的分类
- 按照测试目的大致分为:功能自动化测试、性能自动化测试。
- 按照测试对象可划分:web自动化测试、APP方向自动化测试、接口自动化测试、单元测试等。
- 其他的包括代码测试和数据测试等。
自动化测试解决了哪些问题
- 回归测试:项目在发布新版之后,对之前的功能进行验证。
- 压力测试:统计软件服务器处理并发的能力,比如能支持多少个用户同时访问。
- 兼容性测试:不同的系统平台,或者不同的浏览器。
- 提高测试效率,保证了产品的质量。
自动化测试具有提高任何软件长期效率的特定优势。测试自动化的主要优点是:
- 长期以来,自动化测试一直被认为对大型软件组织有益。虽然,小型公司通常认为实施起来太昂贵或困难。
- 可以对自动化测试工具进行编程,以便在特定时间构建和执行测试脚本,而无需任何人为干预。例如,自动测试可以在一夜之间自动启动,测试人员可以在第二天早上分析自动化结果。
- 自动化测试工具能够播放预先录制和预定义的动作。
- 自动化测试支持频繁的回归测试,这也是自动化测试的主要任务。
- 它为开发人员提供快速反馈。
- 它提供了无限次的测试用例执行迭代。
- 它提供了有关测试用例的严格文档。
- 自动化测试生成定制的缺陷报告。
- 与手动测试相比,更不容易出错。
- 可以执行更多繁琐且枯燥的测试。
- 可以执行一些手工测试困难或者不可进行的测试。
- 更好的利用资源,在某些方面解放测试人员。
- 让具有一致性和可重复性的测试用例复用起来更加简单。
- 提高被测软件的可靠性。
适合自动化测试的场景
- 测试任务明确,不会频繁变动。
- 软件需求变更较少。
- 项目周期长,测试脚本可以复用。
自动化用于功能自动化的测试工具:
- 由HP提供的Quick Test Professional。
- Rational Robot,由IBM提供。
- Coded UI,由Microsoft提供。
- Selenium,开源软件。
- Auto It,开源软件。
自动化用于非功能自动化的测试工具:
- Load Runner,由HP提供。
- JMeter,由Apache提供。
- Burp Suite,由PortSwigger提供。
- Acunetix,由Acunetix提供。
自动化测试生命周期
Web应用程序的测试自动化
如果看一下目前市场情况中普遍存在的软件应用程序的类型,大多数软件应用程序都是作为基于Web的应用程序编写的,以便在互联网浏览器中运行。基于Web的应用程序的测试策略在公司和组织之间差异很大。在高度交互和响应迅速的软件过程的时代,许多组织正在使用某种形式的敏捷方法,测试自动化经常成为软件项目的要求。
为Web应用程序执行测试自动化的最有效方式是采用金字塔测试策略。此金字塔测试策略包括三个不同级别的自动化测试。单元测试代表了此测试自动化金字塔的基数和最大百分比。 接下来是服务层或API测试。最后,GUI测试位于顶部。金字塔看起来像这样: