软件测试培训
美国上市软件测试培训机构

400-111-8989

热门课程

在敏捷项目的自动化测试过程中,有什么好的策略吗?

  • 发布:软件测试培训
  • 来源:自动化软件测试
  • 时间:2018-07-04 17:56

在我们进行软件测试的过程中,自动化测试能够帮助我们节省大量的人力、物力成本。我们知道自动化测试是敏捷开发方法的核心活动,那我们在敏捷项目的自动化测试过程中,有什么好的策略吗?

随着敏捷开发逐渐向持续部署方向发展,它能让团队得到应用程序的快速反馈,因此自动化测试的地位愈加重要。为了得到快速反馈,自动化测试需要不断地快速执行,以保证测试结果的一致性和可靠性。

为了实现如上这些,大多数验证应该作为新功能点开发的一部分来完成。换句话说,开发和测试应该是一个连贯的活动,而应用程序的质量应该从一开始就进行把控,以确保正在开发的工作并它没有破坏其现有的功能。

这时就需要“自动化测试倒转金字塔”,将需要很长时间才能执行的GUI测试下降到更低的级别。比如API层,它可以在单元测试后直接运行,并作为构建初始级别信任的一部分。

自动化策略概述

质量应该高于数量。多数情况下,最好是使用一个整体架构来发布,而不是由多个功能点组成。作为最小的一个发布标准,任何新开发的功能点都不应该引入回归缺陷。如前所述,一个优秀的应用程序,快速反馈对于持续交付来说相当重要,因此我们可以快速地获得反馈过程和机制。

增加单元测试、集成测试和API测试的数量是获得快速反馈的一种方法。这些低级测试将提供一个安全网,以确保代码按照预期工作,并帮助防止其他测试层中的缺陷发生。

回归测试包的定义

自动化回归测试是测试自动化策略的核心。而冒烟测试是一个健康检查,可以加载和访问应用程序。另外还应运行一些关键场景,以确保应用程序的功能仍然可实现。冒烟测试的目的是捕获最明显的问题,例如应用程序不能加载或普通用户流不能执行等。出于这个原因,在一些专业不工作的情况下,冒烟测试应该持续时间不超过5分钟以提供快速反馈。

软件测试培训:敏捷项目的自动化测试策略

自动化单元测试

自动化测试从单元级开始,而单元测试应该由开发人员编写,用于开发任何新功能。这些单元测试形成了一个更大的自动化实践基础,它甚至可以跨越到系统GUI测试。开发人员的职责是确保开发出的每一个新功能,都能编写一组连贯的、可靠的单元测试,以证明代码符合产品需求。单元测试为团队提供了最多的ROI,因为它们运行起来非常快,易于维护和修改(因为没有依赖性),当代码中出现错误时,它会很快就反馈给开发人员。

自动集成/ API或服务测试

虽然单元测试的基础是在一个类中测试函数,但是集成测试通过单元测试形成下一个级别,以测试整体构成组件的类别以传递一个功能。这些测试只在单元测试运行和通过时执行。服务测试自然运行在API层,不需要GUI web界面的介入。因此,测试将能够以纯粹的形式验证其功能,因为测试直接与组件进行联结,它们会迅速执行并且将成为构建的一部分。

在必要的情况下,像wiremock这样的模拟设备将被用来排除其他第三方系统的依赖,以及当下游系统无法提供测试所需的数据。集成测试和或服务测试也可以在开发人员的机器上运行,并且是构建的一部分。但是如果他们启动时间要很久,那么最好在CI环境中运行。

应用程序测试

一个典型的电子商务应用程序可以分解为不同的应用程序或app,以提供不同的功能。“软件测试”的题中之义,就是测试应用程序的功能组合在一起,是否能正常运行的测试过程。应用程序测试通常需要一个可以与不同的组件进行交互的界面,因此假设这些测试是通过GUI上的浏览器运行的。

应用程序测试的目的是确保应用程序的功能可以无误地实现。因为测试的组织方式是为特定应用程序的质量提供支持,所以这些测试通常被称为垂直测试,因为它们执行特定“向下”的应用程序。测试面通常全面且覆盖面很大。Selenium WebDriver可以用来在浏览器上运行这些自动化测试,这个工具是浏览器自动化测试中最流行的工具,它提供了一个丰富的API以承载繁杂的验证。

端到端场景测试

在系统上运行的GUI自动化测试,相当于典型的用户流、用户旅程或端到端场景。由于此类测试的问题(下文将讨论),这些测试将保持在最低限度。端到端场景包括在夜间回归包中。

自动化测试倒转金字塔

作为自动化测试策略的一部分,我们需要确保在GUI层运行的自动化测试的最小数量。虽然通过GUI运行自动化测试提供了很好的和有意义的测试,但在模拟用户与应用程序的交互方面,很容易出现如下问题:

脆弱——因为测试依赖于html定位器来识别web元素与之交互,一旦id被更改,测试就会失败,因此它们需要大量的可维护性成本。

有限性——GUI可以完全限制测试人员验证一个功能的能力,因为GUI可能不包含来自web响应的所有细节使之允许验证。

迟缓——因为测试是通过GUI执行的,所以页面加载时间会大大增延长整个测试时间,对开发人员的反馈比较慢。

ROI最少——综上所述,因此GUI自动化测试提供的ROI最少。

未来,浏览器的自动化测试将被保持在最低限度,并将被用来模拟用户的行为,包括整个系统的公共用户流以及端到端场景。

感谢您的阅读,文中提到的在敏捷项目的自动化测试过程中,好的应对测略你学会了吗?更多软件测试相关问题,欢迎来达内软件测试培训机构进行咨询。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

预约申请免费试听课

上一篇:软件测试新手上路,四步快速完成高质量测试用例!
下一篇:做软件测试怎能不知道不了解软件生存周期及其模型呢?

敏捷测试是什么?敏捷测试和传统瀑布或V模型有什么区别?

压力测试?负载测试?强度测试?容量测试?这些性能测试傻傻分不清!

做软件测试工程师,这些免费的webservice接口你得收藏好了!

接到移动APP测试的任务,你会怎么做?你认为测试的重点是什么?

选择城市和中心
贵州省

广西省

海南省