乐趣区

关于测试:自动化测试系列一自动化测试体系概述

当今强烈的商业竞争中,企业中的服务和产品须要更疾速的版本迭代和高质量的软件交付,同时缩小实现我的项目所需的老本和工夫,不少企业引入了 DevOps 概念来晋升软件研发交付效率。DevOps 是开发和经营的联合,代表着一种文化和实际,强调了软件开发人员(Dev)和信息技术(IT)经营与保护(O&M)业余人员(Ops)的合作和交换,同时促成了软件交付和基础架构变更。它旨在建设一种文化和环境,使软件构建,测试和公布能够更加不便,频繁和牢靠地进行。DevOps 中的测试是自动化的,不同于传统的手工测试,自动化测试通过测试工具或者框架,录制编写测试脚本,对软件性能进行测试,可能疾速检测谬误并查找可能对用户体验产生负面影响的问题,从而更快的公布高质量产品。

本文通过介绍自动化测试体系概念,带你理解自动化测试在实现高质量产品方面的重要作用。具体内容如下:

  • 什么是自动化测试
  • 为什么要进行自动化测试
  • 手工测试和自动化测试之间的区别
  • 自动化测试如何与 DevOps 相适应
  • Choerodon 猪齿鱼如何进行自动化测试

什么是自动化测试?

自动化测试是应用工具、脚本和软件对反复、预约义的操作来执行测试用例的过程。因为自动化测试是通过自动化工具实现的,因而在减少总体测试覆盖率的同时,它在探索性测试中破费的工夫更少,在保护测试脚本时破费的工夫更多。

自动化测试的基本概念是测试金字塔。它演示了如何解决我的项目的自动化测试:形成金字塔根底的哪些局部首先要进行测试,以及在金字塔最初阶段剩下什么?

依照测试金字塔的模式,首先是单元测试层,即开发人员在编写代码时常常执行的代码测试。而后是 API 测试所属的服务器层。稍后,以后端实现时,将进行 UI 测试。

图:三层测试自动化金字塔

自动化测试的类型

  • 冒烟测试: 针对每个版本或每次需要变更后,在正式测试前,对产品或零碎的一次简略的验证性测试;
  • 单元测试: 对软件中的最小可测试单元在与程序其余局部相隔离的状况下进行检查和验证的工作;
  • 集成测试: 是组装软件的零碎测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行综合测试以便发现与接口无关的各种谬误;
  • 功能测试: 是黑盒测试的一方面,它查看理论软件的性能是否合乎用户的需要,比如说逻辑功能测试,界面测试,易用性测试,装置 / 卸载测试,兼容性测试等;
  • 性能测试: 通过自动化的测试工具模仿多种失常、峰值以及异样负载条件来对系统的各项性能指标进行测试
  • 回归测试: 指批改了旧代码后,从新测试以确认批改没有引入新的谬误或导致其余代码产生谬误;
  • 数据驱动测试: 一种在软件测试过程中应用的办法,用于形容间接测试的输出、可验证输入的条件表,以及测试环境的设置还有管制编码的过程;
  • 黑盒测试: 又称为功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点登程的测试次要测到的谬误类型有:不正确或脱漏的性能;接口、界面谬误;性能谬误;数据结构或内部数据拜访谬误;初始化或终止条件谬误等等。

为什么要进行自动化测试?

自动化测试是软件开发生命周期的重要组成部分,被动修复谬误须要对根底代码进行的每个小更改都进行测试和从新测试。随着工夫的流逝,回归测试的数量将会减少,测试人员将接受很大的压力,而翻新和增长的工夫会越来越少。此外,至多有四个因素导致测试成本上升:

  • 跨设施、零碎和平台进行测试的需要一直减少。 将测试范畴从例如一个 Web 浏览器扩大到两个或扩大到蕴含挪动设施会影响工作量。
  • 测试用例的数量一直减少。 随着每次产品更新,涵盖更多功能所需的测试用例数量都会减少。新性能会影响须要从新测试的现有性能;常见的回归测试问题。

  • 公布管道的成熟。团队不心愿仅进行一次回归测试,而是心愿在公布管道的多个阶段运行测试。这有助于为开发人员提供最快的反馈,但同时也须要大量测试。
  • 管理层心愿减少公布数量。为了放弃其最新产品的市场位置,企业心愿确保软件品质并更疾速的迭代产品。

面对测试老本的减少,为了扭转测试不可继续的场面,团队能够引入自动化测试以加重测试人员的反复、不可预测、繁琐的工作。

通过自动化测试能够带来以下益处:

  • 进步生产率:能够高精度执行更多测试,产品功能测试的范畴更广;
  • 疾速反馈:在软件开发生命周期(SDLC)中更快,更早地执行测试时,反馈也能够更快地提供给开发人员;
  • 放慢产品版本迭代:更快的测试执行和间断的反馈循环能够缩短总体 SDLC,并进步公布频率;
  • 老本效率:优化资源后,能够降低成本;
  • 更高的 敏捷性和市场响应能力:较短的公布周期使企业能够更好地响应变动并确定资源的优先级;
  • 升高人为谬误的危险:自动化测试可满足回归测试需要,将人为谬误的危险降到最低;
  • 进步交付品质:高效测试可最大水平地扩充测试范畴,进步产品质量;
  • 更高的工作满意度:因为打消了高度反复的工作,测试人员能够体验到更高的工作满意度。

手动和自动化测试之间的区别

在疾速且间断的产品开发中,手动测试是验证终端用户工作流程的最无效办法。但理论状况是,手工测试并不能齐全做到重测每个性能,继续测试工作中须要编写疾速且频繁运行的自动化测试,找出生产版本中的缺点。

通过以下比照,让咱们来理解测试工作中手工测试与自动化测试之间的区别:

特色 手动测试 自动化测试
准确性和可靠性 精度低,手动测试更容易呈现人为谬误 应用工具和脚本的准确性很高
所需工夫 手动测试比自动化慢,手动运行测试耗时多 自动化运行测试用例的速度显著快于人力资源
投资老本 成本低 初始老本比手动测试高
用法 实用于探索性,可用性和长期测试 实用于回归测试,性能测试,负载测试
体验 首次应用手动测试执行测试用例很顺利,但面对频繁变动的需要,捕捉回归缺点能力无限 能疾速适应代码频繁更改的测试

自动化测试如何与 DevOps 相适应

DevOps 中继续测试是软件产品交付管道中执行自动化测试的过程,其目标是获取无关最新构建或预公布的版本中业务危险的疾速间断反馈。而后,能够应用此信息来确定软件产品是否已筹备好在任何给定工夫通过交付管道进行降级。因为测试提前开始并间断执行,因而缩小了发现和修复缺点所需的工夫和精力, 能够进步交付高质量软件(满足对可承受危险程度的冀望的软件)的速度和频率,并缩小技术累赘。

继续测试包含对 性能需要 非性能需要 的验证,均与自动化测试无关。对于 功能测试 ,继续测试通常波及 单元测试,API 测试,集成测试和零碎测试 非功能性测试 波及诸如 动态代码剖析,安全性测试,性能测试 等实际。

Choerodon 猪齿鱼如何进行自动化测试

Choerodon 猪齿鱼目前反对的自动化测试有:API 测试、性能测试、流量回归测试、UI 测试,容许测试人员通过要害测试信息来实现测试操作,无需编程。

ChoerodonAPI 测试 模块通过集成 Jmeter,实现了 API 用例的增加、归集、治理与执行的性能。其中反对基于接口 URL 或 Swagger 文档疾速编排接口测试用例,而导入或增加 API 测试用例的整个过程免代码编写,技术门槛低,适宜麻利团队中各个角色应用。

Choerodon 性能测试 也是通过集成 Jmeter 测试工具,反对用户在已有的测试工作根底上调整执行参数(线程数、预热时长、循环数)来对系统的各项性能指标进行测试,从而发现性能瓶颈与性能缺点,以便更好地优化零碎或产品的整体性能。

Choerodon 流量回归测试 实用于:批量录制产品界面操作并将失去的用例进行集中管理,以便后续进行批量的回归测试。此性能通过应用 Goreplay 录制产品界面中的操作生成流量文件,而后将其导入 Choerodon 平台生成用例进行治理与执行。

ChoerodonUI 测试 实用于:测试人员通过插件录制 web 利用的界面操作,生成对应的测试用例与步骤;而后便能间接执行对应的测试文件来对界面 UI 操作进行测试。

论断

自动化测试可能进步测试人员的工作效率并且优化测试速度,进步软件产品的准确性和稳定性,代替人工实现各种业务场景,使资源最大化利用,减少软件的信任度。心愿以上对于自动化测试的概念对你有所帮忙。

对于猪齿鱼

Choerodon 猪齿鱼作为开源多云利用麻利全互连技术平台,是基于开源技术的 Kubernetes,Istio,knative,Gitlab,Spring Cloud 来实现本地和云端环境的集成,实现企业多云 / 混合云应用环境的一致性。平台通过提供精益麻利,继续交付,容器环境,微服务,DevOps 等能力来帮忙组织团队来实现软件的生命周期治理,从而转变,更代替地交付更稳固的软件。

更多内容

大家能够通过以下社区路径理解 Choerodon 猪齿鱼文档,最新动静,产品个性:

【Choerodon 官网】

https://choerodon.io/zh/

【汉得开放平台】

https://open.hand-china.com/

【汉得凋谢论坛】

https://openforum.hand-china.com/

也能够退出 Choerodon 猪齿鱼官网社区用户交换群,交换猪齿鱼应用心得,Docker,微服务,K8S,麻利治理等相干实践实际心得,群同步更新版本更新等信息,大家能够加群探讨交换。

①-Choerodon 猪齿鱼官网交换(已满);

②-Choerodon 猪齿鱼官网交换(可加);【微信号发至客服邮箱 choerodon@vip.hand-china.com,经营小伙伴拉您入官网交换群】

欢送退出 Choerodon 猪齿鱼社区,独特为企业数字化服务打造一个凋谢的生态平台。

退出移动版