作者:星海小编

商业转载请联系小编获得授权,非商业转载请注明出处。

写在前面

自动化测试已成为软件测试过程中采用最广泛的技术之一,它有助于加速产品的交付进程。但是在很多企业中,由于一些误解,高层往往会犹豫要不要在其项目中实施自动化测试。现在甚至可以在一些自动化测试的相关论坛上找到测试人员对测试自动化中的 ROI 进行质疑,自动化测试到底值得我们付出努力吗?答案自然是肯定的,自动化测试不仅可以提高应用程序的可靠性,还可以加快测试过程,提高测试覆盖率,也可以给测试人员提供信心,以更好地进行产品质量测试。但是,现实是残酷的,在大多数情况下,自动化测试的好处并未得到充分体现。反而,围绕自动测试存在许多误解,使部分企业现在仍然坚持使用手动测试。

什么是自动化测试

定义自动化测试非常容易,一次次地运行测试用例,而无需手动执行的过程称为自动化测试。与手动测试不同的地方是,自动化测试是使用自动化测试工具来执行测试脚本。

自动化测试的分类

要知道其实并非软件测试的每个阶段都可以进行自动化测试,自动化测试分为以下几类。

单元自动化测试

单元测试通常由开发人员进行,编写这些测试是为了测试代码级别,查找函数和方法中的错误。在有些公司中,自动化的单元测试由开发人员负责,也有公司倾向于雇用专门的自动化测试资源来负责测试。测试人员编写单元测试来破坏生产代码,以便他们可以在多个方面测试生产代码。借助单元自动化测试,可以更轻松地验证应用程序每个组件的功能。而且,如果单元测试失败,则意味着被推到生产环境中的代码也是错误的。有许多单元自动化测试的框架可以帮助开发人员交付更好的软件。包括 NUnit,Junit,Unit,js,QUnit 等,微软也提供了自己的单元测试框架 MSTest,可以使用 C#进行 Selenium 自动化测试。

接口自动化测试

接口自动化测试可以帮助测试人员更清楚地了解应用程序的接口。现在接口自动化测试已经在企业中变得越来越流行。在接口自动化测试中,通过验证应用程序中包含的各种接口请求和响应来验证应用程序的业务层。但是,在接口自动化测试中,是不包含应用程序图形用户界面的测试。通过接口自动化测试,应用程序的功能性,合规性以及安全性问题都可以得到测试,并且如果是 Web 应用程序,“请求和响应” 的安全性将一并得到验证。

GUI(图形用户界面)自动化测试

GUI 自动测试是自动化测试过程中最具挑战性,之所以艰难是因为应用程序的 GUI 经常发生变化。但是,GUI 测试也是整个过程中最关键的部分,因为 GUI 自动化测试模拟了用户在用户界面上使用鼠标和键盘执行的相同操作。市场上有很多 GUI 测试工具,例如 Selenium,微软的 Coded UI 等。

除了以上自动化测试之外,还有一些其他的测试也可以通过自动化完成,例如:

自动化测试的误解

自从开始进行自动化测试以来,让我们对自动化测试有了一些误解。

误解一,自动化测试将替代手动测试

最大的误解是自动化测试将完全取代手动测试,但其实这是不正确的。自动化测试可以帮助我们更好地改善测试过程,提高效率,提效的本质问题是投入产出比,所以在投入产出比较少的测试场景下,自动化测试永远不会取代人工。比如,吃鸡游戏是否能自动化?可以。但是可能需要很大的投入,最终的产出也未必有多好。因此,使用自动化测试的好处在于,它可以快速测试重复的,耗时的测试,以便我们可以专注上述的测试场景和功能。

误解二,可以使用自动化实现一切自动化

很多人认为可以自动化所有测试用例,但事实其实是我们永远无法使测试用例 100%自动化,因为我们永远也无法对应用程序进行全面测试。而且,在某些场景下,手动测试比自动化测试更合适,因此 100%自动化测试并没有意义。例如,发送短信验证码或拼图完成验证码的场景,或涉及到强交互的、易用性的测试场景。

误解三,自动化测试的成本太高

许多人认为自动化测试需要更高的费用。事实是,自动化测试的前期成本可能会更高,但是应该将其视为一个长期的投资。配置自动化测试环境和购买自动化工具确实需要一些投资。但是,一旦这些准备好,就无需在其中投入太多资金。在接下来的测试中,自动化测试可以提供强大的投资回报率,当然,投资回报的前提是我们创建的自动化测试用例的执行次数大于一定值,因此,在实施自动化测试之前,我们最好先分析一下我们的投资回报率。

写在最后

自动化测试正在迅速改变软件开发行业,因为它提供了一种高效的开发和测试方法。它确实需要较少的人工干预,但永远无法完全取代手动测试。


↙↙↙阅读原文可查看相关链接,并与作者交流