# 2.为什么要进行自动化测试？

> 原文： [https://javabeginnerstutorial.com/selenium/2-automated-testing/](https://javabeginnerstutorial.com/selenium/2-automated-testing/)

欢迎回到勇士们！ 我知道您整天都在测试应用/系统，如果有的话，寻找错误。 从而确保承诺的质量。

此外，您还会听说过“**自动测试**”一词。 让我们看看它的含义以及我们为什么要真正关心它。 此外，为什么还要花费宝贵的**时间和精力**创建自动化测试？ （*在这里告诉我一个秘密：*尽管我们使用一种工具来实现自动化，但是肯定要付出很大的努力。因此，只有在值得我们努力的情况下，我们才可以涉足这一领域！）

**内容**：自动测试是指借助工具自动执行手动过程以测试被测应用/系统的过程。

**原因**：在当今世界，由于高度互动，响应迅速且功能丰富的内容可以满足遍布全球的大量最终用户，因此编写的大多数软件应用都是基于 Web 的 以经济的代价。 对质量的需求以及对上市时间和预算的竞争压力也急剧增加。 为了节省时间和金钱，增加测试覆盖范围，实现最佳质量并提高客户满意度，测试自动化已成为强制性要求！

**何时**变得有利？

1.  **回归测试** – 想象一下，系统中已经创建了功能，并且已经过测试。 在稍后的某个时间点，有一些更改会影响现有代码或引入新功能。 因此，现有的已经测试过的零件可能无法按预期工作，或者更糟，发生故障。 如果这种情况在生产环境中发生，并且您的客户之一对此表示报错，那是什么条件？ 您甚至可以想象发生这样的事情吗？ 听起来令人恐惧吧？ 为了您的急救，我们这里有 Selenium。 我们可以使用 Selenium 创建一个自动化测试的回归套件，并且每次引入更改或新功能时，都可以运行该套件，而无需进行任何额外的工作（在敏捷过程中，每个 sprint 结束时） 确保没有任何损坏。
2.  **高级测试** – 单元测试可用于测试单个组件（类级别），集成测试可用于测试事物在类间级别上的工作方式。 对于 Web 应用，最后的座右铭是找出浏览器是否按照客户希望的方式正常工作。 使用 Selenium，我们可以像用户/客户一样执行测试！
3.  **组合测试** – 让我们以一个包含三组，每组具有三个单选按钮的网页为例。 手动测试所有组合可能会花费大量时间，但是以编程方式可以轻松完成，并且无需人工干预即可在一夜之间进行测试。
4.  **明确要求** – 手动编写的测试步骤可能不明确。 一个测试人员可能会测试并声明它已通过，但另一个测试人员可能会说失败了。 自动化测试具有非常确定的结果。 因此，无论开发人员是谁，都对开发人员和您的应用提出了确切的要求。 它或者通过或者失败。 而已！
5.  **可以在某些测试框架的帮助下生成自定义报告**和屏幕截图，当开发人员或其他项目涉众期望快速反馈时，这将非常有用。
6.  一旦安装了测试脚本并设置了测试环境，就可以执行任意数量的测试执行**迭代**。
7.  可以执行这些自动测试的**速度**非常高。 因此，在频繁发布的情况下，自动化成为一个很好的解决方案。
8.  当需要并行执行时，自动化是可取的。
9.  由于避免了人为错误（可能随着时间的推移而使重复任务变得无聊而导致的错误），因此**准确性**和质量得以提高。

**哪个**可能是基于 Web 的自动化中使用最广泛的开源解决方案？ – 拜托，显然是 **Selenium**！

有了这些知识，在另一篇文章中再见，以了解 Selenium 的历史。

祝你有美好的一天！

